Insérer une ligne à chaque changement de valeur

Bonjour à tous,

Je bataille avec un code sur VBA qui me permet d'insérer une nouvelle ligne à chaque changement de texte ( uniquement entre "GEN" et "CBL") sur la colonne N, dans une feuille spécifique "Feuil1" , donc même si je me trouve dans une autre feuille la macro devrait fonctionner, une fois la ligne est ajoutée, je voudrais que toutes les formules de la ligne avant s'étendre automatiquement sur la nouvelle ligne insérée. Merci d'avance

Ci-joint mon fichier

76classeur15.zip (539.64 Ko)

Bonjour Adnane,

  • Dans quel but veux tu ajouter cette ligne ? est-ce un problème de lisibilité ? ou pour ajouter des données (que l'on peut faire en fin de tableau puis trier).
  • Pour que les formules soient aussi répétées sur cette nouvelle ligne (si tant est que c'est utile), une solution est de passer les données en tableau excel structuré.
  • Ce n'est pas que je ne veuille pas répondre, mais je crains qu'ensuite cela occasionne plus de difficultés, et j'aime bin comprendre la finalité de ce que je fais

Je voudrais insérer une nouvelle ligne pour faire les mises à jours du mon tableau qui est lié avec un autre fichier, donc je vous ai expliqué mon besoin est de créer une macro qui permet d'ajouter une nouvelle ligne sur la colonne N à condition que le texte des cellules se change "GEN" en"CBL" puis étendre la formule de la ligne précédente sur la nouvelle ligne insérée. Merci pour votre réactivité

Sub inserer()
    Range("N1").Select
    Set cel = Columns("N:N").Find(What:="CBL", After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
    If Not cel Is Nothing Then
        cel.Select
        ligne = cel.Row
        MsgBox "trouvé en ligne " & ligne
        Rows(cel.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        MsgBox "ligne ajoutée"
        Range("A" & ligne + 1 & ":N" & ligne + 1).Copy Destination:=Range("A" & ligne)
        MsgBox "formule recopiée"
    End If
End Sub

mais je ne vois pas où tu veux en venir, néanmoins j'ai essayé de le faire en suivant ta recette

Je vous remercie pour votre réponse, la macro fonctionne très bien, mais juste après l’insertion de la nouvelle, je voudrais glisser les formules de la ligne précédente sur la nouvelle ligne ajoutée. Merci pour votre réactivité.

J'avais pris les valeurs de la ligne suivante

donc change cette ligne

Range("A" & ligne + 1 & ":N" & ligne + 1).Copy Destination:=Range("A" & ligne)

par

Range("A" & ligne - 1 & ":N" & ligne - 1).Copy Destination:=Range("A" & ligne)

Je vous remercie de votre aide, la macro fonctionne parfaitement comme je voulais.

Rechercher des sujets similaires à "inserer ligne chaque changement valeur"