VBA - Problème compatibilité variable
Bonjour à tous,
J'ai un petit problème de compatibilité de variable comme je l'annonce dans le titre et étant débutant en VBA, je suis complétement perdu
Le but de la macro est de copier une extraction de chiffre d'affaire vers une autre feuil afin de les ranger par date. Pour ce faire, j'utilise une variable qui me permet de corréler la date de l'extraction du CA avec une suite de date sur une autre feuil, jusque la tout va bien 8).
J'ai ensuite voulu créer une InputBox pour que l'utilisateur n'oublie pas de rentrer la bonne date. Et c'est la que ca se complique, puisque les 2 variables fonctionnent indépendamment l'une de l'autre mais pas quand elles sont mises bout à bout
Voici la macro :
Sub Macro3()
Dim Madate As String
Madate = InputBox("Insert date in format dd/mm/yy", "User date", Format(Now(), "dd/mm/yy"))
If IsDate(Madate) Then
Madate = Format(CDate(Madate), "dd/mm/yy")
MsgBox Madate
Else
MsgBox "Wrong date format"
End If
Range("B1").Value = Madate
Range("D2:F2").Select
Selection.Copy
Dim i As Integer
Range("D2:F2").Select
Selection.Copy
Sheets("feuil1").Select
i = Application.WorksheetFunction.Match(Sheets("Feuil2").Range("B1"), Sheets("Feuil1").Range("A:A"), 0)
Range("A" & i).Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Select
Application.CutCopyMode = False
End SubJe vous joins bien évidemment le fichier,
Merci d'avance,
Erwan
Bonjour Skadowche, bonjour le forum,
Il semblerait que le format des dates ne soit pas le même. Dans ce cas, Pour éviter toute confusion je transforme la date en entier long avec DateSerial. Plus d'équivoque et/ou d'inversion jour/mois, plus de problème de format...
Le code modifié :
Sub Macro3()
Dim Madate As String
Dim MDS As Long
Dim TV As Variant
Dim I As Integer
Dim MS As Long
Madate = InputBox("Insert date in format dd/mm/yy", "User date", Format(Now(), "dd/mm/yy"))
If IsDate(Madate) Then
Madate = Format(CDate(Madate), "dd/mm/yy")
MsgBox Madate
Else
MsgBox "Wrong date format"
Exit Sub
End If
MDS = DateSerial(Year(Madate), Month(Madate), Day((Madate)))
Sheets("Feuil2").Range("B1").Value = Madate
TV = Worksheets("Feuil1").Range("A1").CurrentRegion
For I = 2 To UBound(TV, 1)
DS = DateSerial(Year(TV(I, 1)), Month(TV(I, 1)), Day(TV(I, 1)))
If DS = MDS Then
Sheets("Feuil2").Range("D2:F2").Copy
Sheets("Feuil1").Cells(I, 2).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Exit For
End If
Next I
End SubSuper, tout fonctionne ! Merci beaucoup
Bonne journée