Inversion jour et mois lors du transfert textbox vers feuille
Bonjour à tous,
Voilà je suis face à un nouveau problème, dans un UF j'indique une date depuis un calendrier. Celle-ci est écrite un un textbox pour que l'utilisateur puisse vérifier la date sélectionnée.
A la suite de ça, l'utilisateur clique un un bouton pour injecter cette date dans une cellule spécifique du tableau.
Mon problème c'est que le format sélectionné dans le calendrier est : jj/mm/aaaa et dans la feuille les jour et mois s'inverse : mm/jj/aaaa.
J'ai essayé d'ajouter une ligne de code pour forcer le format des cellules et même de le faire à la main, mais rien n'y fait ...
Voici le code pour le calendrier :
Private Sub calendrier_DateClick(ByVal DateClicked As Date)
Dim DateSelect As Date
DateSelect = DateClicked
Formulaire.datemanuelle.Value = DateSelect
Unload Me
End Subet celui où je clique pour injecter dans ma feuille :
Public Sub ajout_Click()
Dim derlign As Integer, cellule As Range, memoiredate As String
derlign = Sheets("BDD").Range("B" & Rows.Count).End(xlUp).Row + 1
memoiredate = datemanuelle
MsgBox memoiredate 'Pour tester la mémoire
If MsgBox("Entrer ces données ?", vbYesNo, "Demande de validation") = vbYes Then
Sheets("BDD").Select
Range("B" & derlign) = 1.Value
Range("C" & derlign) = datemanuelle.Value 'Là où est écrit la date (toujours correct ici)
Range("D" & derlign) = comm.Value
Range("H" & derlign).Offset(, 1).Hyperlinks.Add Range("H" & derlign), Address:=strFichier
Range("F" & derlign) = personne.Value
Range("G" & derlign) = Fourn.Value
If 2.Value = True Then
Range("A" & derlign) = "2"
End If
If 3.Value = True Then
Range("A" & derlign) = "3"
End If
If 4.Value = True Then
Range("A" & derlign) = "4"
End If
If 5.Value = True Then
Range("A" & derlign) = "5"
End If
If oui.Value = True Then
Range("E" & derlign) = "Oui"
End If
If non.Value = True Then
Range("E" & derlign) = "Non"
End If
If datedujour = True Then
Range("C" & derlign) = Date
End If
For Each cellule In Union(Range("A" & derlign & ":C" & derlign), Range("E" & derlign & ":H" & derlign))
If cellule = "" Then
MsgBox "Un élément n'est pas renseigné !", vbOKOnly + vbCritical, "Donnée manquante"
Sheets("BDD").Select
Range("A" & derlign, "I" & derlign) = ""
Exit For
Else
End If
Next cellule
ThisWorkbook.Save
Unload Me
Formulaire.Show
End If
End SubJ'espère que c'est clair
En vous remerciant
Bonjour BrunoM45,
Effectivement je viens de le faire ça fonctionne ! j'ai écrit :
Range("C" & derlign) = Format(datemanuelle.Value, "mm/dd/yyyy")Cependant je ne comprends pas pourquoi il y a cette inversion
J'avais déjà utilisé ce code mais je l'avais écrit
Range("C" & derlign) = Format(datemanuelle.Value, "dd/mm/yyyy")Du coup mon problème y était toujours.
Je te remercie de m'avoir aidé
Re, de rien pour l'aide
Normalement, cette simple ligne devrait fonctionner
Range("C" & derlign).Value = CDate(datemanuelle.value)Après c'est un format de cellule correcte qu'il faut faire
A+
Bonjour,
Cdate prend en charge les paramètres régionaux !
Il faut toujours utiliser les dates au format international !
Range("A1")=format(la date,"YYYY-MM-DD")@BrunoM45 : J'ai essayé ton code, effectivement ça fonctionne aussi ! Merci ton ton aide ça m'a permis d'avancer dans mon programme et aussi dans mes connaissances du VBA ! A une prochaine sur le forum !
@dysorthographie : D'accord je comprends mieux la différence entre les 2. Je te remercie