Problème de conversion de date

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zephir94

XLDnaute Impliqué
Bonjour à tous,

J'ai un soucis pour convertir une date de la forme 11/03/2015 en mercredi 11 mars 2015
Sur certaines dates ça fonctionne mais sur d'autres non, j'ai une erreur d’exécution 9 l'indice n'appartient pas à la sélection

Voici ma programmation :
Code:
Private Sub TextBox1_Change()
 
TextBox1.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
    Valeur = Len(TextBox1)
    If Valeur = 2 Or Valeur = 5 Then
    TextBox1 = TextBox1 & "/"
    
End If
TextBox1.Text = UCase(TextBox1.Text)

End Sub

Private Sub CommandButton1_Click()
j = Array("", "LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE")
m = Array("", "JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")
TextBox2 = TextBox1.Value
TextBox2 = j(Day(TextBox1.Value)) & " " & Day(TextBox1.Value) & " " & m(Month(TextBox1.Value)) & " " & Year(TextBox1.Value)

End Sub

J'ai fais un petit fichier exemple
Merci par avance pour vos aides
 

Pièces jointes

Re : Problème de conversion de date

Bonjour Pierrejean,

Merci pour ta réponse,

J'ai modifié mon code :

Code:
TextBox2 = CDate(TextBox1)
TextBox2 = j(Day(TextBox1.Value)) & " " & Day(TextBox1.Value) & " " & m(Month(TextBox1.Value)) & " " & Year(TextBox1.Value)

j'ai 11/03/2015 = 11/03/2015 mais j'ai la même erreur et je n'arrive pas à obtenir mercredi 11 mars 2015
 
Dernière édition:
Re : Problème de conversion de date

Bonjour zephir94,

Essaie ceci :

PHP:
Private Sub CommandButton1_Click()
TextBox2 = UCase(Format(CDate(TextBox1), "dddd dd mmmm yyyy"))
End Sub

Edit : Oups, grillé par Mister PJ (Hello !) J'avoue avoir galéré... 😱

A+
 
Dernière édition:
Re : Problème de conversion de date

Merci à vous deux,

La solution de ralph45 est impeccable, sauf que je ne dois pas mettre d'accents dans la conversion !
11/08/2015 je dois obtenir : MARDI 11 AOUT 2015 et non MARDI 11 AOÛT 2015
c'est pour cette raison que j'avais défini les variables j et m
Code:
Private Sub CommandButton1_Click()
j = Array("", "LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE")
m = Array("", "JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")
'TextBox2 = TextBox1.Value
'TextBox2 = j(Day(TextBox1.Value)) & " " & Day(TextBox1.Value) & " " & m(Month(TextBox1.Value)) & " " & Year(TextBox1.Value)

TextBox2 = UCase(Format(CDate(TextBox1), "dddd dd mmmm yyyy"))
End Sub

Un grand merci, mais d'ou vient mon erreur dans mon code ?
 
Dernière édition:
Re : Problème de conversion de date

Merci à vous deux,
La solution de ralph45 est impeccable, sauf que je ne dois pas mettre d'accents dans la conversion !
11/08/2015 je dois obtenir : MARDI 11 AOUT 2015 et non MARDI 11 AOÛT 2015
c'est pour cette raison que j'avais défini les variables...

Heu, je ne suis pas le seul à l'avoir proposée... 😉 et encore moins le premier !!
--> Pour ces satanés accents, ajoute donc la fonction SansAccent dans le code...

PHP:
Function SansAccent(texte)
'Définition des variables
    avec = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç_"
    sans = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc "
    tmp = texte
'Boucle de traitement
    For i = 1 To Len(tmp)
        pot = InStr(avec, Mid(tmp, i, 1))
        If pot > 0 Then Mid(tmp, i, 1) = Mid(sans, pot, 1)
    Next i
    If tmp = 0 Then tmp = ""
    Sansaccent = tmp
End Function

Ce qui fait donc :

PHP:
Private Sub CommandButton1_Click()
TextBox2 = SansAccent(UCase(Format(CDate(TextBox1), "dddd dd mmmm yyyy")))
End Sub

A+
 
Dernière édition:
Re : Problème de conversion de date

Merci ralph45 et les autres,

j'ai testé avec ton code et la fonction, ça marche parfaitement un grand merci à toi 😛
mais vois tu ou j'ai une erreur dans mon code ?
 
Dernière édition:
Re : Problème de conversion de date

Re,

A mon humble avis (mes connaissances VBA se dérouillent, mais ne sont pas encore tip-top), cela doit se trouver ici TextBox2 = j(Day(TextBox1.Value)) :

--> OK, tu as déclaré en Array "LUNDI, MARDI, ..." (Texte) pour j, mais aucune table de correspondance ne fait le lien que LUNDI = jour 1, MARDI = jour 2, etc.

A+
 
Re : Problème de conversion de date

j'ai trouvé !

Code:
d1 = TextBox1
On Error Resume Next
If DateValue(d1) = DateSerial(CInt(Right(d1, 4)), CInt(Mid(d1, 4, 2)), CInt(Left(d1, 2))) Then
End If
If Err.Number <> 0 Then
    Err.Clear
    MsgBox "date incorrecte"
Exit Sub
End If
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 VBA insert photos
Réponses
12
Affichages
804
Réponses
2
Affichages
428
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
94
Réponses
3
Affichages
873
Retour