Boucle dans boucle

Bonjour,

J'aurai besoin d'une boucle qui incremente de 1 une variable a chaque fois que la valeur d'une cellule à sa gauche est differente de celle de la ligne precedente donc pour l'instant j'avais fait une macro qui fonctionnait bien, à savoir :

Sub Recodif()

Dim lign As Long, lignL As Long, k As Long
ThisWorkbook.Sheets(1).Activate
lignL = Cells(Rows.Count, 6).End(xlUp).Row
k = 3
    For lign = 23 To lignL
            If Sheets(1).Cells(lign, 5) <> Sheets(1).Cells(lign - 1, 5) Then
            k = k + 1
            Cells(lign, 7) = k
            Else
            Cells(lign, 7) = k
            End If
    Next lign
End Sub

Sauf que maintenant je voudrais que ma variable k repasse à 1 à chaque fois qu'une des colonnes precedente contiennent la lettre "F", j'ai essayé ça mais ça ne me donne pas le resultat voulu:

Sub Recodif()

Dim lign As Long, lignL As Long, k As Integer
ThisWorkbook.Sheets(1).Activate
lignL = Cells(Rows.Count, 6).End(xlUp).Row
k = 0
    For lign = 2 To lignL
            If Sheets(1).Cells(lign, 7) <> Sheets(1).Cells(lign - 1, 7) & Sheets(1).Cells(lign, 5) = "F" Then
            k = 1
            Cells(lign, 9) = k
            Else
            If Sheets(1).Cells(lign, 7) <> Sheets(1).Cells(lign - 1, 7) Then
            k = k + 1
            Cells(lign, 9) = k
            Else
            Cells(lign, 9) = k
            End If
            End If
    Next lign
End Sub
11b.xlsm (63.88 Ko)

Voici le fichier sur lequel je travaille, merci beaucoup de m'avoir lu et merci d'avance pour toute potentielle aide.

Bonne journée !!

Bonjour Anastasiya,

Vous nous parlez de colonne, mais votre code teste la ligne précédente

Difficile de comprendre dans ces conditions ce que vous souhaitez, même avec le fichier

Si vous avez bien confondu ligne/colonne voici un code qui pourrait marcher

Sub Recodif()
  Dim lign As Long, lignL As Long, k As Integer
  ThisWorkbook.Sheets(1).Activate
  lignL = Cells(Rows.Count, 6).End(xlUp).Row
  k = 0
  For lign = 2 To lignL
    If Sheets(1).Range("G" & lign) <> Sheets(1).Range("G" & lign) Then
      ' Vérifier si la ligne précédente n'est pas un "F"
      If Sheets(1).Range("E" & lign - 1) = "F" Then
        k = 1
      Else
        k = k + 1
      End If
      Cells(lign, 9) = k
    End If
  Next lign
End Sub

@+

Rechercher des sujets similaires à "boucle"