Inversion du jour et du mois dans une date sous VBA
Bonjour à tous,
J'ai remarqué la chose suivante, j'ai une zone d'encodage de date et lorsque celle-ci est inférieure au 12 du mois par exemple le 04/03/2017 ma forme prend la date et la transfère dans une colonne mais pour une raison que j'ignore, elle la transpose en faisant 03/04/2017 or cela fausse ma zone qui extrait le mois et dès lors l'ensemble de mon fichier.
J'ai tout contrôlé au niveau Windows et également excel pour les paramètres régionaux, mais là je sèche.
Je mets mon fichier à disposition si quelqu'un à une idée je suis preneur.
J'ai testé 4-5 solutions et là je sèche lamentablement.....
Mon code sur le format est le suivant.
Et j'utilise ceci pour copier et coller
Dim marep As Long
Dim lignesuivante As Long
Sheets("feuil1").Activate
lignesuivante = Application.WorksheetFunction. _
CountA(Range("a:a")) + 1
Cells(lignesuivante, 1) = TextBox1.Text
Cells(lignesuivante, 2) = "Recettes"
Cells(lignesuivante, 3) = TextBox2.Text
Cells(lignesuivante, 4) = TextBox3.Text
Cells(lignesuivante, 5) = saisiedate.Value
Cells(lignesuivante, 6) = saisiedate2.Value
Cells(lignesuivante, 7) = TextBox4.Value
Cells(lignesuivante, 8) = "ESPECES"
lignesuivante = Application.WorksheetFunction. _
CountA(Range("a:a")) + 1
Cells(lignesuivante, 1) = TextBox1.Text
Cells(lignesuivante, 2) = "Recettes"
Cells(lignesuivante, 3) = TextBox2.Text
Cells(lignesuivante, 4) = TextBox3.Text
Cells(lignesuivante, 5) = saisiedate.Value
Cells(lignesuivante, 6) = saisiedate2.Value
Cells(lignesuivante, 7) = TextBox5.Value
Cells(lignesuivante, 8) = "CB"
Sheets("menu").Activate
marep = MsgBox("Cette facture est elle payée immediatement?", vbYesNo)
If marep = vbYes Then
Sheets("livre banque").Activate
lignesuivante = Application.WorksheetFunction. _
CountA(Range("a:a")) + 1
Cells(lignesuivante, 1) = TextBox1.Text
Cells(lignesuivante, 2) = "Recettes"
Cells(lignesuivante, 3) = TextBox2.Text
Cells(lignesuivante, 4) = TextBox3.Text
Cells(lignesuivante, 6) = TextBox4.Value
Cells(lignesuivante, 7) = "ESPECES"
lignesuivante = Application.WorksheetFunction. _
CountA(Range("a:a")) + 1
Cells(lignesuivante, 1) = TextBox1.Text
Cells(lignesuivante, 2) = "Recettes"
Cells(lignesuivante, 3) = TextBox2.Text
Cells(lignesuivante, 4) = TextBox3.Text
Cells(lignesuivante, 6) = TextBox5.Value
Cells(lignesuivante, 7) = "CB"
Sheets("feuil1").Select
Selection.AutoFilter Field:=2, Criteria1:="recettes"
Columns("A:H").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("feuil2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:H11796").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("livre recettes").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("feuil2").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("feuil1").Select
Selection.AutoFilter Field:=2, Criteria1:="achats"
Cells.Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("feuil2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:H7330").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("livre achats").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("feuil1").Select
Selection.AutoFilter Field:=2
Range("A2").Select
Sheets("feuil2").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("menu").Select
Sheets("menu").Activate
Unload UserForm1
Else
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Now, "dd/MM/yyyy")
End Sub
Bonjour et bienvenue sur le forum
Essaie en modifiant ainsi les instructions concernant les dates :
Cells(lignesuivante, 1) = CDate(TextBox1)
…
Cells(lignesuivante, 5) = CDate(saisiedate)
Cells(lignesuivante, 6) = CDate(saisiedate2)
…Au lieu de :
Cells(lignesuivante, 1) = TextBox1.Text
...
Cells(lignesuivante, 5) = saisiedate.Value
Cells(lignesuivante, 6) = saisiedate2.Value
...Bye !
Génial, c'est excellent et dire que j'ai séché comme une brelle....
Un super merci