Différence dans les dates

Bonjour le forum,

Malgrès que tous les paramètres soient corrects la date que j'essaye de placer en "dd/mm/yyyy" se place en mm/dd/yyyy"

Voici les paramètres introduits :

Dans le code :

'Date IN auto
Me.TextBox1.Value = Format(Date, "dd/mm/yyyy")

Ce que cela donne dans le formulaire :

datein

Le code d'introduction dans le sheet :

'Bouton insérer
Private Sub CommandButton3_Click()
    Dim Ligne As Integer
    Dim I As Integer
    Dim ctrls As Variant
    Dim wsModele As Worksheet
    Dim wsOverview As Worksheet
    Dim Wb As Workbook
    Dim shtName As String
    Dim Wbe As Workbook

    ' Renseigner l'onglet "PN request overview"
        If MsgBox("Are you sure you want to INSERT this data?", vbYesNo, "Request for confirmation") = vbYes Then 'condition : si oui au message

    ' le déverrouiiler
        Sheets("PN request overview").Unprotect ""
        Set Wbe = ThisWorkbook

        ' Permet de se positionner sur la dernière ligne de tableau NON VIDE
        Ligne = Sheets("PN request overview").Range("a65536").End(xlUp).Row + 1

        ctrls = Array(Me.TextBox1, _
                        Me.ComboBox2, _
                        Me.TextBox2, _
                        Me.TextBox3, _
                        Me.ComboBox10, _
                        Me.ComboBox6, _
                        Me.ComboBox7, _
                        Me.TextBox5, _
                        Me.ComboBox3, _
                        Me.TextBox6, _
                        Me.TextBox7, _
                        Me.TextBox10)

        For I = 1 To 12
             ws.Cells(Ligne, I) = ctrls(I - 1).Value
             ws.Cells(Ligne, 8).NumberFormat = "@"
        Next I
    End If

    ' Créer un lien hypertexte sur la Cells(Ligne, 3) avec la valeur de la Textbox2
    Set wsOverview = ThisWorkbook.Sheets("PN request overview")
    wsOverview.Hyperlinks.Add Anchor:=wsOverview.Cells(Ligne, 3), Address:="", SubAddress:=TextBox2.Value & "!A1", TextToDisplay:=TextBox2.Value

    ' Créer un nouvel onglet sur la base du modèle
    Set wsModele = ThisWorkbook.Sheets("Template PN request")
    wsModele.Visible = True
    wsModele.Copy , Worksheets(Worksheets.Count)
    Sheets("Template PN request (2)").Move after:=Worksheets(4)
    Set ws = Worksheets("Template PN request (2)")
    ws.Name = TextBox2.Value ' Remplacez "TextBox2" par le nom de votre TextBox
    wsModele.Visible = xlSheetVeryHidden

    ' Trie les données par date la plus récente dans la colonne A
    Sheets("PN request overview").Range("A3:L" & Ligne).Sort Key1:=Sheets("PN request overview").Range("A3"), Order1:=xlDescending, Header:=xlNo

    ' Le re-vérouiller
        'ActiveWorkbook = Wbe.Select
        Sheets("PN request overview").Protect Password:=""

    Sheets("PN request overview").Activate
    Unload Me ' Vide et ferme l'Userform ( formulaire)
    UserForm1.Show
End Sub

Ce que cela donne dans le sheet :

sheet

Le format de date sélectionné pour la cellule :

format

Pouvez-vous m'expliquer et m'aiguiller vers une solution svp.

Les autres date introduites en dessous de la date d'exemple ont été introduite manuellement.

Et je ne peux pas changer la config d'excel car il y as d'autres utilisateur de ce fichier...

Merci d'avance

Bonjour,

Vous pouvez essayer d'utiliser la valeur TextBox1.Text au lieu de .Value, et effectuer une séparation sur la string des "/" pour retrouver jour/mois/an et créer une nouvelle date à partir de cela.

Bonjour saboh12617,

bonne idée, mais ca ne fonctionne pas

Bonjour,

Si vous faites

' séparation du texte en date
arrSplit = Split(Me.TextBox1.Text, "/")
dte = DateSerial(arrSplit(2), arrSplit(1), arrSplit(0))

' en nommant votre cellule cible rngDate (<=> ws.Cells(Ligne, I) il me semble)
rngDate.NumberFormat = "dd/mm/yyyy"
rngDate.Value = dte

Etes vous sur que cela ne fonctionne pas ?

Je pense avoir trouvé la solution, selectionner toutes les cellules du sheet et mettre au format de date que je désire... Je test plus loin et vois si cela fonctionne

Désole mais je ne vois pas ce que vous voulez dire...

Voici le fichier (le mot de passe est juste mis pour la forme, pas de mot de passe)

Pourriez-vous implémenter votre solution dans le userform

2 svp

Désolé votre fichier plante pour moi quand je lance l'Userform, et votre fichier est assez complexe. Je laisse quelqu'un d'autre vous aiguiller en attendant de trouver une solution.

Daccord, merci quand même d'avoir pris le temps d'y regarder .

Après quelque essais j'ai une solution temporaire :

J'ai inversé le jour et mois dans la date automatique du formulaire et elle se met correctement dans la fichier. J'investiguerai plus tard pour une meilleure solution...

Bonjour Heavy_B

Il faut envoyer la date au format Long pour être certain du bon format

For I = 1 To 12
  If IsDate(ctrls(I - 1)) Then
    ws.Cells(Ligne, I).Value = CLng(DateValue(ctrls(I - 1)))
  Else
    ws.Cells(Ligne, I).Value = ctrls(I - 1).Value
  End If
Next I

A+

re,

ook goeie middag,

quelque modifs dans le commandbutton3 de userform1

Bonjour JExcel2fr,

je vais essayer cela, merci

Goeie middag BsAlv,

Nederlandstalig België of Nederlands?

Ik ben een Waal die in Wallonië woont, maar getrouwd is met een Vlaamse vrouw en ik werk in Brussel voor een Nederlands bedrijf. Bedankt voor de code.

Je vais y regarder cet après-midi et posterai le résultat.

re, West-Vlaanderen, près de la côte (Furnes)

Du même côté de la belgique que moi donc (Mons)

Bonjour, au pire sans utiliser de boucle ..For i to ...

Vous alimentez vos cellules une par une ; ce qui permet d'indiquer le format.

ws.Cells(Ligne, 1).value=Format(CDate(TextBox1.Value), "mm/dd/yyyy")
ws.Cells(Ligne, 2).value=combobox2.value

.....

Magnifique,

merci à vous tous pour la solution, cela fonctionne à la perfection.

je vais regarder pour implémenter cela aussi dans mes sheet car je suis obligé de faire aussi une manipulation qui ne me plais pas...

'Double click colonne G (Date "Accepted")
     If Target.Column = 7 Then

      Sheets("Rejected deliveries overview").Unprotect "MDP"
     Set Wbe = ThisWorkbook

        Target.Value = Format(Date, "mm/dd/yyyy"): Cancel = True
        Target.Offset(0, -2).Value = "Accepted"

        'Le re - vérouiller
        Sheets("Rejected deliveries overview").Protect Password:="MDP"

     End If
    

Bonjour le forum,

Bête question, mais quand je met

 Target.Value = Format(Date, "dd/mm/yyyy")

ou quand je met

 Target.Value = Date

le résultat est le même,

ma question est la suivante, mise à part le formatage de la date, quelle est la différence ?

Bonjour, pour moi mise à part le formatage de la date aucune différence.

Après quelque test je pense que le format pris en compte est le format par défaut en excel de l'utilisateur.

Ais-je raison? Ce qui solutionne mon souci en grande partie...

En effet je dirai de la Langue installée par défaut dans les options excel

Rechercher des sujets similaires à "difference dates"