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 Sub

et 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 Sub

J'espère que c'est clair

En vous remerciant

Bonjour AZQW

Il faut utiliser la fonction CDate() ou Format()

A+

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

Rechercher des sujets similaires à "inversion jour mois lors transfert textbox feuille"