[Résolu]Besoin d'une correction pour code VBA

Mad

XLDnaute Nouveau
Bonjour,

j'ai besoin de votre aide,
A l'ouverture de mon classeur, j'ai mon code qui s’exécute afin de trouver dans la colonne L toute les dates + 3 ans qui sont inférieur ou égale à aujourd'hui.
Ceci pour contrôler les validité des certificats.

VB:
Dim Cel As Range
Dim iRow As Integer
iRow = Range("L" & Rows.Count).End(xlUp).Row
For Each Cel In Range("L3:L" & iRow)
    If Date >= DateAdd("yyyy", 3, Cel.Value) Then
         MsgBox Cel.Offset(0, -9) & " " & Cel.Offset(0, -8) & " " & "a son certificat périmé", vbExclamation
    End If
Next
End Sub

Tout va bien il rempli sa fonction mais à la fin il me sort :
Erreur d'exécution '13': Incompatibilité de type
Mais je n'arrive pas à trouver mon erreur.
Si quelqu'un peut m'aider à trouver mon erreur.
Merci.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Remplace ton code par celui-ci
(Chez moi, plus d'erreur)
VB:
Dim Cel As Range, iRow&,Périmés$
iRow = Range("L" & Rows.Count).End(xlUp).Row
For Each Cel In Range("L3:L" & iRow)
If Len(Cel) > 0 Then
    If Date >= DateAdd("yyyy", 3, Cel.Value) Then
         Périmés = Périmés & vbTab & UCase(Cells(Cel.Row, "C")) & " " & Application.Proper(Cells(Cel.Row, "D")) & vbCrLf
    End If
End If
Next
MsgBox "Le certificat des personnes suivantes est périmé:" & vbCrLf & Périmés, vbExclamation, "Péremption Certificat"
 

Mad

XLDnaute Nouveau
Merci beaucoup, ça marche bien et super l'idée d'un seul messagebox pour résumer toutes les péremptions.
C'était le 1er code que j'ai écrit tout seul, sans pompage juste avec la description des fonctions de MSoffice et je vois que finalement j'était vraiment pas loin. même si ça reste un petit échec, je suis quand même content.
Encore merci pour la soluce et l'amélioration.
 

Statistiques des forums

Discussions
312 187
Messages
2 086 024
Membres
103 097
dernier inscrit
Benduch