Merci pour votre réponse à tous les 2
Dan, je ne sais pas pourquoi mais ton code tourne sans que rien ne se passe ...
Sinon du coup j'ai réussi à faire ce code :
Sub sauter_une_ligne()
Dim x As Variant
Dim y As Variant
Dim WR As Worksheet
Set WR = ThisWorkbook.Worksheets("Requete Nomenclatures CLEM")
With WR
For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
If .Cells(x, 2).Value <> .Cells(x - 1, 2).Value Then
Rows(x ).Insert Shift:=xlDown
End If
Next x
End With
End Sub
En fait c'était ce bout de code qui me plantait avant : If .Cells(x, 2).Value <> .Cells.Offset(-1, 0).Value Then.
Mais sinon le problème avec mon code c'est qu'il insère bien une ligne, sauf qu'après forcément la ligne juste au-dessus sera toujours différente de celle de dessous vu qu'il a inséré une ligne.
Du coup il m’insère des lignes sans fin ^^
Je pense qu'il faudrait que je mette une condition pour que lorsqu'il y a une ligne "vide" entre les 2 il ne la prenne pas en compte mais je ne suis pas encore assez calée pour faire ça.
Curulis57, c'est effectivement pour quoi ce genre de boucle doit s'effectuer de bas en haut, bien vu ! je m'en suis rendu compte quand mon code m'a mis 15 000 lignes
Ton code marche nickel,
je ne comprends pas trop cette partie par contre :
If WorksheetFunction.CountBlank(Range("B2:B" & iRowB)) > 0 Then
Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Peux-tu m'expliquer ?
Merci,
Cleiiim