boucle à l'envers

M

mab

Guest
bonsoir le forum et bonne année à tous

Après avoir buché un bon moment g fini par me décider à vous demander de l'aide.
mon problème est le suivant . Dans le fichier joint, g 2 colonnes B et C qui sont renseignées. Je voudrais insérer 2 ou 3 lignes à chaque fois que l'on rencontre dans la colonne B une cellule renseignée.

j'ai donc écrit une boucle pour insérer des lignes mais je voudrais que la boucle commence par la derniere ligne de la colonne B et là ????

le code que j'ai écrit est le suivant :
Sub ajouterligne()
Dim cellule As Range
For Each cellule In Range("b1:b200")
If cellule <> "" Then

Range(cellule.Offset(1, -1), cellule.Offset(2, 254)).Select
Selection.Insert shift:=xlDown
End If
Next cellule
End Sub
merci pour votre aide et pour le temps que vous consacrez à mon problème

Mab
 

Pièces jointes

  • test.zip
    39.7 KB · Affichages: 21
  • test.zip
    39.7 KB · Affichages: 22
  • test.zip
    39.7 KB · Affichages: 27
L

Lord Nelson

Guest
Salut Mab,

Voici une macro qui devrait convenir :

Dim DerLigne As Long, I As Long
DerLigne = Range("C65536").End(xlUp).Row
For I = DerLigne To 8 Step -1
If Range("B" & CStr(I)).Text <> "" Then
Range("B" & CStr(I + 1)).EntireRow.Insert
'Répéter cette instruction pour ajouter d'autres lignes
'Range("B" & CStr(I + 1)).EntireRow.Insert
End If
Next

Ici, une boucle For I ... Step -1 est préférable à une boucle For Each pour contrôler le sens des opérations (du bas vers le haut de la feuille).

A+
Horatio
 

Discussions similaires

Réponses
12
Affichages
616
Réponses
16
Affichages
565

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2