Insertion ligne selon contenu de la cellule

Bonsoir à tous,

Je débute en VBA (et en programmation d'ailleurs)

Depuis un bon moment je bute sur le problème suivant : dans la colonne 1 je voudrais insérer une ligne chaque fois que je rencontre "toto" : mais le code ci-dessous m'insère la ligne toujours au même endroit (1ére position de toto).

Pourriez vous m'aider ?

Merci

A1 1

A2 2

A3 3

A4 4

A5 5

A6 toto

A7 7

A8 8

A9 toto

13 10

14 11

15 12

Sub recherche()
Dim c As Range
Range("A1:A20").Select
Set c = Columns(1).Find("toto", , , xlPart)
If c Is Nothing Then Exit Sub
c.EntireRow.Select
Selection.Insert shift:=xlDown
ActiveCell.Offset(2, 0).Activate
Set c = Columns(1).Find("toto", , , xlPart)[color=#BF0000]
 ' j'ai aussi essayé avec Selection.FindNext(After:=ActiveCell).Activate [/color] SANS SUCCES
c.EntireRow.Select
Selection.Insert shift:=xlDown
End Sub

Bonsoir,

proposition de correction

Sub recherche()
    Dim c As Range, pr as Range
    Set pr = Range("A1")
    While True
        Set c = Columns(1).Find("toto", after:=pr, lookat:=xlPart)
        If c Is Nothing Or c.Row < pr.Row Then Exit Sub
        Rows(c.Row).Insert shift:=xlDown
        Set pr = c.Offset(1, 0)
    Wend
End Sub

Je viens de tester, Super ça fonctionne (même si je ne comprends pas forcément tout...) Ca viendra en son temps, du moins je l'espère et ça m'explique surtout la raison pour laquelle j'ai passé autant de temps en vain.

Merci pour ton aide et ta réactivité

Bonne soirée

Rechercher des sujets similaires à "insertion ligne contenu"