Erreur d'exécution '13' : Incompatibilité de type

Bonjour à tous,

Je réalise un fichier Excel me récapitulant des tâches ainsi que les dates d'échéance pour la réalisation de ces tâches. Je souhaite créer un programme qui affiche un message à chaque ouverture du fichier indiquant les jours restant.

Cependant lors de l'exécution du programme il y a le message d'erreur suivant qui s'affiche : "Erreur d'exécution '13' : Incompatibilité de type" et qui m'indique une erreur sur une ligne (Ligne 7). Je ne vois pas quelle est l'erreur c'est pour ça que je demande votre aide.

Voici le programme (ainsi que mon fichier en pièce jointe) :

Private Sub Workbook_Open()

Dim Cel As Range

Dim Ecart As Long

Dim Msg As String

With Worksheets("Fiche")

For Each Cel In .Range("E20:E" & .Range("A" & Rows.Count).End(xlUp).Row)

If DateDiff("d", Now, Cel.Value) < 0 Then

Ecart = 0

Else

Ecart = DateDiff("d", Now, Cel.Value)

End If

Select Case Ecart

Case 1 To 60

Msg = Msg & "La phase" & Cel.Offset(0, -1) & "arrive à échéance dans" & Cel.Offset(0, 1) & "jours." & Chr(10)

Case 0

Msg = Msg & "La phase" & Cel.Offset(0, -1) & "a atteint ou dépassé l'échéance." & Chr(10)

End Select

Next Cel

MsgBox (Msg)

End With

End Sub

Vous en remerciant par avance

10fiche-travaux3.xlsm (18.67 Ko)

Bonjour anthomssn,

Remplace :

For Each Cel In .Range("E20:E" & .Range("A" & Rows.Count).End(xlUp).Row)

Par :

For Each Cel In .Range("E" & .Range("A" & Rows.Count).End(xlUp).Row)

Cordialement,

Bonjour tout le monde,

remplace

For Each Cel In .Range("E20:E" & .Range("A" & Rows.Count).End(xlUp).Row)

Par

For Each Cel In .Range("E20:E" & .Range("E" & Rows.Count).End(xlUp).Row)

Bonne journée

Bonjour,

Merci pour la réponse !

Le programme n'indique pas de message d'erreur, cependant il ne fonctionne pas comme je le souhaite.

A l'ouverture du fichier il m'indique "La phasea atteint..." et prend donc en compte une seule cellule, pas les autres et n'indique pas le nom de la phase. (Image en fichier joint).

Cordialement.

capture

Salut anthomssn,

voir mon message en haut!

Bonjour tout le monde,

remplace

For Each Cel In .Range("E20:E" & .Range("A" & Rows.Count).End(xlUp).Row)

Par

For Each Cel In .Range("E20:E" & .Range("E" & Rows.Count).End(xlUp).Row)

Bonne journée

Bonjour,

Ca fonctionne ! Merci beaucoup !

Par contre dans mon message il n'indique pas le nom de la phase

Cordialement,

Au temps pour moi !

Ca fonctionne !

Merci beaucoup pour vos réponses.

Bonne journée

si chez moi il me montre le nom de la phase

salaw
Rechercher des sujets similaires à "erreur execution incompatibilite type"