Bonsoir,
Novice sur VBA, j'ai un petit problème, si vous pouvez m'aider.
J’ai un tableau de plusieurs colonne où la première nous indique la période, qui doit être sous le format YYYY_MM (exp : 2007_02 ou 2007_11)
Je voudrai savoir si on pouvais créer une macro qui me permettrait de repérer les lignes dont les périodes ne sont pas sous ses formats ( exp : 200_03 ou 2007_134) , pour les modifier par la suite ou les supprimer.
merci d'avance
cordialement
Pour parcourir la colonne, pas de problème tu devrais savoir faire. Pour savoir quoi faire quand une date bonne ou mauvaise est détectée, je te laisse ce soin.
Voyons donc la détection :
Je te propose pour chaque date, de vérifier les 7 caractères, les uns après les autres. Dès qu'une erreur est détectée, la date n'est pas ok.
Code :
Function VerifYYYY_MM(s As String) As Boolean
' // Vérification du format YYYY_MM
Dim c As String
Dim i As Integer
VerifDate = False
' // D'abord, on vérifie qu'on a le format 9999_99
For i = 1 To 7
c = Mid(s & "XXXXXXX", i, 1)
Select Case i
Case 1, 2, 3, 4, 6, 7: If c < "0" Or c > "9" Then Exit Function
Case 5: If c <> "_" Then Exit Function
End Select
Next
' // Puis on vérifie que la première partie est une année comprise entre 2000 et 2008
i = CInt(Mid(s, 1, 4))
If 2000 > i Or i > 2008 Then Exit Function
' // Et que la seconde est un mois.
i = CInt(Mid(s, 6, 2))
If 0 > i Or i > 12 Then Exit Function
VerifDate = True
End Function
Je te demande juste de comprendre pourquoi j'ai ajouté "XXXXXXX".
Bonsoir,
je te remercie pour ton aide, mais j'ai essayé mais ça marche pas, je ais si ça va vient de moi ou du code.
qunt j'éxécute la formule ça me met tout le temps "faux"
merci