[Boucle + Test] Pourquoi ma macro ne marche plus?

Bonjour à tous,

Je bosse sur une petite macro assez simple pour facilité la vie à des collègues. Elle marchait encore lundi... Mais aujourd'hui, non rien à faire, elle ne veut pas. J'aimerais bien comprendre....

Je vous poste mon code :

Sub Workbook_Open()

''Je déclare mes variables

Dim i As Integer
Dim c As Integer

''Je sélectionne mon onglet

Sheets("Tableau_de_relevé").Select

'je donne des valeurs à mes variables

i = 1
c = Range("A1048576").End(xlUp).Row

''Je lance ma boucle et mon test

For i = 1 To c

''La colonne A contient déjà des dates

If Cells(i, 1) = Date Then

Range(Cells(i, 1), Cells(i, 15)).Interior.ColorIndex = 4

End If

i = i + 1

Next i

End Sub

Après multiples relectures je ne comprends pas mon erreur, dotant plus qu'elle marchait hier...

Merci d'avance pour votre aide,

PS : Désolé pour le double poste... Je n'arrive pas à en supprimer un....

Bonsoir,

qu'est-ce qui ne va plus ?

je trouve le i=i+1 très suspect dans une boucle for i=1 to c, next i

Bas justement je ne sais pas ce qui ne va plus...

Lors de l'ouverture de mon fichier le debug ne me dit rien du tout.... J'ai tenté de copier le code dans un module et de le lancer après ouverture du fichier, mais rien a y faire ma ligne ne veut pas se colorier! Et excel me renvoie aucun message d'erreur.

Je précise que je suis un grand débutant mais déjà un grand passionné.

Le "i=i+1" n'est pas nécessaire pour que le test se fasse sur les lignes d'en dessous pour les autres boucles?

le mieux est que tu nous mettes ton fichier et le résultat attendu.

A n'en plus rien comprendre.

J'arrive au bureau, je fais du menage sur le fichier pour le publier.... Je le réouvre et hop ça marche... (fichier voir en pièce jointe)

L'objectif est : la ligne de la date du jour doit se mettre en couleur, "c'est ici que tu fais la saisie."

Si vous avez des conseils pour optimiser le code, je prends, bien volontier.

Merci

Bonjour,

Ce n'est pas bien de créer des messages en double mais c'est encore moins bien de ne pas lire les réponses qui t'ont été apportées.

L'incrémentation se fait automatiquement dans la boucle For ... Next, tu ne dois pas rajouter i=i+1

Avec le code actuel, tu trouveras la date un jour sur deux.

Pour mieux comprendre, tu peux faire ce test et regarder le résultat dans la fenêtre Execution.

Sub test()
Dim i As Integer
For i = 1 To 10
    Debug.Print i
    i = i + 1
Next i
End Sub

A+

Bonjour Frangi,

Comme je l'ai déjà dis Mea Culpa pour le double poste.

J'ai bien lu les réponses apportées et je n'avais pas compris que je devais impérativement retirer le "i = i +1". H2So4 m'a effectivement expliqué que c'était "suspect", mais le pourquoi m'intéressait d'autant plus.

Ton explication est très clair. Je te remercie. Mon apprentissage avance! Et en grande partie grâce à vous, membres du forum .

Bonne journée et au plaisir,

Rechercher des sujets similaires à "boucle test pourquoi macro marche"