Arrêt du code dès la première cellule vide rencontrée

AreYouBush

XLDnaute Junior
Bonsoir le forum,

J'ai ce code :
Code:
Private Sub Workbook_Open()
Dim Cel As Range, s As String
With Sheets("Bdd")
s = "Attention!! Faire demande ou renouvellement de passeport pour :"
For Each Cel In Range("D2:" & Range("D2").End(xlDown).Address)
    If Cel.Value - 6000 <= Date Then
        s = s & vbCr & Cel.Offset(0, -1) & " " & Cel.Offset(0, -3)
    End If
Next Cel
If Left(s, 1) <> ":" Then MsgBox s
End With
End Sub
qui me renvois la liste des personnes devant refaire leur passeport à 60 jours (la j'ai mis 6000 pour le test) de l'expiration de celui-ci.
Le hic est que dans ma colonne il y a des cellules non renseignées, et que le code me renvoi que les personnels avant la première cellule vide rencontré et fait l'impasse sur les autres.

Que faudrait il rajouter ou corriger dans le code pour qu'il ne s’arrête pas a la première cellule vide?

Ci-joint un fichier épuré, ne pas faire attention aux erreurs vu que j'ai effacé la plupart du contenu.

Merci d'avance. Bisou
 

Pièces jointes

  • BaseV2.xls
    151 KB · Affichages: 39
  • BaseV2.xls
    151 KB · Affichages: 44
  • BaseV2.xls
    151 KB · Affichages: 44

david84

XLDnaute Barbatruc
Re : Arrêt du code dès la première cellule vide rencontrée

Bonsoir,
à tester :
Code:
Private Sub Workbook_Open()
Dim Cel As Range, s As String
With Sheets("Bdd")
s = "Attention!! Faire demande ou renouvellement de passeport pour :"
For Each Cel In Range("D2:" & Range("D" & Rows.Count).End(xlUp).Address)
    If Cel.Value - 6000 <= Date And Cel.Value <> "" Then
        s = s & vbCr & Cel.Offset(0, -1) & " " & Cel.Offset(0, -3)
    End If
Next Cel
If Left(s, 1) <> ":" Then MsgBox s
End With
End Sub
A+
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
331

Statistiques des forums

Discussions
312 307
Messages
2 087 097
Membres
103 468
dernier inscrit
TRINITY