IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Formatage de chaine


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut Formatage de chaine
    Bonjour,

    Si j'ai cette chaine : Mardi 29 juin 2008
    je la transforme en : 29/06/2008 avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    date_cour = CDate(Mid(Strg, InStr(1, Strg, " ", 1) + 1))
    Par contre, si j'ai cette chaine : Mardi 1er juillet 2008,
    j'ai une erreur (a cause du 1er)

    Peut-on adapter ce code pour qu'il tourne
    pour les deux types de chaines ?

    Merci à vous

  2. #2
    Membre expérimenté Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 19
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    Mardi 1er juillet 2008 n'est pas un format de date valide... donc à part bidouiller le texte pour supprimer les charactères indésirables et ainsi obtenir un format convertible en date, j'vois pas... bon courage.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Oui, j'avais compris cela
    et c'était ma question
    comment bidouiller cette chaine pour la rendre compatible ?

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    A essayer (pas testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Strg_clean = ""
    Cur_pos = InStr(1, Strg, " ", 1) + 1
    Byte_ = Mid(Strg, Cur_pos, 1)
    While Byte_ <> " "
        If Byte_ >= "0" And Byte_ <= "9" Then
         Strg_clean = Strg_clean & Byte_
        End If
        Cur_pos = Cur_pos + 1
        Byte_ = Mid(Strg, Cur_pos, 1)
    Wend
    Strg_clean = Strg_clean & Mid(Strg, Cur_pos)
    date_cour = CDate(Strg_clean)

  5. #5
    Membre expérimenté Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 19
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    c'est du brutal mais ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Cells.Replace What:="1er", Replacement:="01"
        Cells.Replace What:="lundi ", Replacement:=""
        Cells.Replace What:="mardi ", Replacement:=""
        Cells.Replace What:="mercredi ", Replacement:=""
        Cells.Replace What:="jeudi ", Replacement:=""
        Cells.Replace What:="vendredi ", Replacement:=""
        Cells.Replace What:="samedi ", Replacement:=""
        Cells.Replace What:="dimanche ", Replacement:=""
        ActiveCell = CDate(ActiveCell)
    tu me mets tous ça dans une jolie bouclette et le tour est joué

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command1_Click()
     toto = "Mardi 1er juillet 2008"
     titi = Split(toto, " ")
     toto = CDate(Val(titi(1)) & " " & titi(2) & " " & titi(3))
     MsgBox toto 
    End Sub

  7. #7
    Membre expérimenté Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 19
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    respect... Même avec l'aide j'ai du mal à comprendre ce que fait le code...

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour Elcocodrilo,

    Ce n'est pas grand chose :

    Val("223blablabla") = 223
    Le val extrrait ce qu'il y a de numérique devant ===>> donc val("1er") = 1

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir,

    je me suis inspiré de vos codes
    et je suis arrivé a cela qui tourne parfaitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    date_cour = CDate(Mid(Replace(Strg, "1er", "1"), InStr(1, Replace(Strg, "1er", "1"), " ", 1) + 1))
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formatage de chaine avant insertion dans BDD MySQL
    Par kdson dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 18/01/2008, 02h01
  2. [RegEx] Problème de formatage de chaine de caractère
    Par lecra dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 15h17
  3. formatage de chaine
    Par julino dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/02/2007, 18h28
  4. [Tableaux] formatage de chaine
    Par renaud26 dans le forum Langage
    Réponses: 17
    Dernier message: 15/06/2006, 22h44
  5. Formatage du chaine suivant un masque
    Par AlexB59 dans le forum Langage
    Réponses: 1
    Dernier message: 07/02/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo