Insérer une ligne avec condition

Bonjour,

Je débute en VBA et j'ai quelques difficultés pour effectuer une boucle.

à partir de la colonne B8 j'ai des numéros trier par ordre croissant allant de 11000 jusqu'à 99000.

Je souhaiterais insérer 1 lignes entre 2 lignes lorsque par exemple une cellule aléatoire comme B16 contient 11025 et B17 contient 12003 autrement dit dès que les 2 premiers chiffres sont différents.

J'ai commencé un code mais il me permet d'insérer une ligne seulement si la cellule précédente est différente or je veux qu'elle s'insère seulement si les 2 premiers chiffres sont différents. Est-ce que quelqu'un aurait une solution ?

Sub boucle_inserer()

With Sheets("_MEF")

dernligne = Range("B" & Rows.Count).End(xlUp).Row

For i = dernligne To 8 Step -1

If .Cells(i, 2) <> .Cells(i - 1, 2) Then

.Cells(i, 2).EntireRow.Insert

End If

Next i

End With

End Sub

Amicalement,

ML88

bonjour

essaie ce code

Public Sub test()
ligne = 1
While Cells(ligne, 2) <> ""
While Left(Str(Cells(ligne, 2)), 3) = Left(Str(Cells(ligne + 1, 2)), 3)
ligne = ligne + 1
Wend
insere_ligne (ligne + 1)
ligne = ligne + 2
Wend
End Sub

Sub insere_ligne(ligne As Integer)
Rows(ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Bonjour ML88, le forum,

Peut-être ainsi....

Sub boucle_inserer()
 Dim dernligne As Long, i As Long
  With Sheets("_MEF")
   dernligne = .Range("B" & Rows.Count).End(xlUp).Row
    For i = dernligne To 9 Step -1
     If Left(.Cells(i, 2), 2) <> Left(.Cells(i - 1, 2), 2) Then .Rows(i).EntireRow.Insert
    Next i
  End With
End Sub

Cordialement,

C'était ça super merci je découvre "left" qui va bien me servir pour la suite.

Merci

Rechercher des sujets similaires à "inserer ligne condition"