Insertion d'une ligne selon valeur d'une cellule

Bonjour,

Je cherche à débugger mon code mais je tourne en rond. Voici le résultat attendu :

lorsque l'utilisateur sélectionne, dans le tableau à la colonne I "mesures à poursuivre", il faudrait ajouter une ligne en dessous et y copier les valeurs des colonnes B et C uniquement.

Voici un exemple de résultat attendu

image

J'ai tenté plusieurs techniques mais chaque fois j'ai comme une boucle infinie qui se déclenche.

Je joins à mon message mon fichier excel et un grand merci d'avance pour votre analyse.

Bonjour burzcairwen, bonjour le forum,

Ton exemple ne contient aucune donnée !? Comment veux-tu que l'on teste...

Tu veux que ça agisse quand l'utilisateur sélectionne ou quand il choisit ?

Bonjour ThauTheme,

Le fichier n'a pas besoin de données.
L'action d'ajouter une ligne doit se faire uniquement lorsque l'utilisateur enregistre de nouvelles données et, arrivé à la colonne I (résultat du bilan) choisit l'option "mesures à poursuivre".
Merci++

Voici le fichier avec des données. J'ai ajouté la ligne 5 (initialement c'était la ligne 4) cela a bien ajouter une ligne en dessus (je préférerait en dessous) et je bloque sur la suite (copier-coller valeur B5 et C5

sur B4 et C4)

Bonjour

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

Bonjour le fil, bonjour le forum,

Je poste quand même malgré la réponse de GMB que je salue au passage...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim LI As Integer 'déclare la variable LI (LIgne)

Set O = Worksheets("page 1") 'définit l'onglet O
If Target.Row > 2 And Target.Column = 9 Then 'condition 1 : si la changement a lieu dans une ligne supérieure à 2 et la colonne 9 (=> colonne I)
    If Target.Value = "mesures à poursuivre" Then 'condition 2 : si la cible vaut "mesures à poursuivre"
        LI = Target.Row 'définit la ligne LI
        O.Rows(LI).Copy 'copie la ligne LI de l'onglet O
        O.Rows(LI + 1).Insert 'insère la ligne copiée une ligne en dessous
        'récupère les valeur des cellules Bet C de LI dans les cellule B et C de LI + 1
        O.Cells(LI + 1, "B").Resize(1, 2).Value = O.Cells(LI, "B").Resize(1, 2).Value
        Application.CutCopyMode = False 'supprime le clignotement lié au copier/collé
    End If 'fin de la condition 2
End If 'fin de la condition 1
End Sub

[Édition]

La proposition de GMB est meilleure...

Hello GMB et ThauTheme,

vous être trop bon. ça fonctionne parfaitement, merci beaucoup.

ThauTheme, entre-temps j'avais trouvé une variante que tu avais proposé à Céline et je m'en suis inspirée. Je vais m'inspirer de vos 2 codes.

Rechercher des sujets similaires à "insertion ligne valeur"