Bonjour je suis actuellement sur une macro ou je dois effectuer differents controles sur plusieurs données. Je suis débutant en VBA mais j'ai déjà trouvé quelques pistes, je vous demande conseil pour ce que je n'ai pas trouver ou que je n'arrive pas à utiliser. Merci.
Tous d'abord j'ai deux colonnes (E et F) avec des dates, la premiere avec les dates de début (obligatoire) et la deuxieme les dates de fin (facultatif). Je dois controler que les dates de debut sont non vide et que le format des dates est respecter (A peu près reussi)
Par contre je n'arrive pas à trouver le moyen de dire : Si la date de fin (sur la colonne F donc à droite) est remplie alors la date de début doit etre inférieure ou égale à la date de fin.
Merci
Tous d'abord j'ai deux colonnes (E et F) avec des dates, la premiere avec les dates de début (obligatoire) et la deuxieme les dates de fin (facultatif). Je dois controler que les dates de debut sont non vide et que le format des dates est respecter (A peu près reussi)
Code:
Sub TestDate()
Dim rg As Range
Dim bValid As Boolean
'on commence au début de la liste de date
Set rg = ActiveSheet.Range("E1")
bValid = True 'vrai par défaut, date format valide
Do Until IsEmpty(rg) 'on suppose qu'il n'y a pas de lignes vides
'vérifier si c'est une date valide ou non
If Not IsDate(rg) Then
rg.Interior.ColorIndex = 3 'en rouge
bValid = False 'on met à faux
End If
'vérifier si la date ne correspond pas au mois
On Error Resume Next
If bValid Then 'si format date valide alors
If Month(rg) <> ActiveSheet.Range("H1") And _
Year(rg) <> ActiveSheet.Range("J1") Then
rg.Interior.ColorIndex = 6 'en jaune
End If
End If
bValid = True
Set rg = rg.Offset(1, 0)
Loop
End Sub
Par contre je n'arrive pas à trouver le moyen de dire : Si la date de fin (sur la colonne F donc à droite) est remplie alors la date de début doit etre inférieure ou égale à la date de fin.
Merci