Bonjour,
J'ai créer une boucle sur une plage de données (H1:I25) pour laquelle les valeurs sont des dates de contrôle technique (H1:H25) et de contrôle anti-pollution (I1:I25) pour un parc automobile.
Je souhaite comparer les valeurs des deux cellules sur chaque ligne afin d'éviter d'afficher deux fois mon message d'alerte sur le même véhicule, à savoir que lorsque la date des deux cellules sont identiques sur la même ligne, je ne souhaite afficher qu'un message d'alerte sur la première colonne (contrôle technique) et non avoir deux messages sur les deux dates.
J'espère être suffisamment clair pour que vous puissiez me comprendre et je vous livre mon premier code qui m'affiche deux messages lorsque les dates sont identiques :
Y a-t-il un moyen d'imbriquer ces deux boucles pour n'en faire qu'une ? Ou existe-t-il une autre solution à mon problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub auto_open() Dim Cellule As Variant Dim cellule1 As Variant Application.ScreenUpdating = False 'Pour chaque date de la colonne H For Each Cellule In Range("H2:H25") 'Si une date est inférieure à celle d'aujourd'hui ou arrive à échéance dans 30 jours 'alors affiche le texte de la cellule correspondante s'affiche comme alerte If Cellule <= Date + 30 And Cellule <> "" _ Then MsgBox "Attention : le contrôle technique du véhicule " & (Cellule.Offset(0, -5).Value) & " - " & (Cellule.Offset(0, -4).Value) _ & " arrive à échéance le " & (Cellule.Offset(0, 0).Value) & " !", vbExclamation, "Message d'alerte C.T." Next For Each cellule1 In Range("I2:I25") If cellule1 <= Date + 30 And cellule1 <> "" _ Then MsgBox "Attention : le contrôle anti-pollution annuel du véhicule " & (cellule1.Offset(0, -6).Value) & " - " & (cellule1.Offset(0, -5).Value) _ & " arrive à échéance le " & (cellule1.Offset(0, 0).Value) & " !", vbExclamation, "Message d'alerte Contrôle anti-pollution annuel" Next Application.ScreenUpdating = True 'Facultatif End Sub
Merci d'avance pour votre aide.
Cordialement.
Partager