Boucle For qui ne s'arrête jamais

Bonjour à tous.

Suite au message qu'à envoyé néo_033, j'ai cherché à faire une boucle sur plusieurs lignes et de définir une couleur différente dès qu'une ligne est différente de celle d'au dessus.

J'arrive à obtenir une couleur différente dès que ma cellule est différente de celle d'au dessus mais la boucle ne s'arrête jamais.

Elle effectue donc la boucle correctement, mais repart à 0 dès qu'elle à en théorie finie.

Pourriez vous m'expliquer pourquoi et ce qu'il faut que je modifie.

Merci.

For i = 2 To 43
Dim contrat As String
Dim cpt%

contrat = Cells(i, 2).Value
    If contrat = Range("B" & i - 1).Value Then
    Range("A" & i - 1, "L" & i - 1).Select
    Selection.Copy
    Cells(i, 1).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

    Else
    cpt = cpt + 1
    If cpt = 48 Then
    cpt = 4
    End If
    With Range("A" & i, "L" & i)
        .Cells.Interior.ColorIndex = cpt + 5
    End With

    End If
    Next i
    End Sub
    

Bonsoir,

Cherche un peu, tu va trouver !

Pour t'aider :

mets un point d'arrêt en marge du "Next i"

et surveille le "i" en passant le curseur dessus,

çà t'indique la ligne en cours

Amicalement

Claude

Lol.

Alors ça, c'est pas cool comme réponse ! 8)

Je ne sais même pas ce que c'est qu'un point d'arrêt même si je me doute de son utilité.

Bon, je vais chercher un peu et puis je valide le message.

Heuu, par contre, si je ne trouve pas par moi même, tu voudrai bien me donner la solution tout de même.

Attends un peu quand même. Ca à l'air facile... même si tu viens de me parler en chinois.

Merci pour l'indice.

Bonjour,

j'ai essayé ton code et la boucle s'arrête à la ligne 43, ce qui me semble logique à première vu.

  • Quand au juste veux-tu que ta boucle s'arrête?
  • Est-ce que c'est le résultat qui ne te convient pas, peut-être est-ce le traitement dans la boucle qui cloche.
  • Est-ce que ton problème peut venir d'ailleur.
  • Ton code complet ?

re,

Je viens de tester,

ton code fonctionne parfaitement

seule remarque, mais qui ne provoque pas la boucle sans fin :

ajouter

Dim i As Integer ou Dim i%

la macro s'arrête bien à la ligne 43

Claude

Bon sang, mais quel imbécile je fais !

J'avais commencé mon code avec une saisie modifiable sur une ligne. En gros j'ai gardé mon code avec au début:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Forcément, lorsque la dernière cellule du code était chargée, la feuille considérait que la sélection venait de changer et la boucle se répétait.

Ca faisait deux heures que j'étais dessus et je cherchais un problème sur le code en lui-même

En tout cas, merci à vous deux car si vous ne m'aviez pas dit que le code fonctionnait de votre coté, je serais encore dessus.

Rechercher des sujets similaires à "boucle qui arrete"