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 SubSauf 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
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
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@+