Macro pour insérer une ligne

Bonjour,

Je voudrais faire une macro assez simple, je suis sur que la question a dû être posée plus d'une fois mais je n'ai pas trouvé. Je veux une macro qui me permet d'insérer une ligne qui contient mon texte entre 2 cellules, là ou je met mon curseur. Aussi il faudrait garder la mise en forme car j'ai une ligne vide une fois sur deux.

Du coup j'ai fait un enregistrement de macro qui me donne ça :

Sub ins_not()
'
' ins_not Macro
'

'
    Rows("20:20").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("K5:M5").Select
    Selection.Copy
    Range("A21").Select
    ActiveSheet.Paste
End Sub

Ça fonctionne mais... ça insère toujours au même endroit, logique. J'ai essayé de modifier le code mais je n'arrive pas à trouver le moyen de dire que ça doit se faire là ou est mon curseur.

Merci d'avance

Bonjour,

La ligne s’insère à l'endroit de la souris , une seule ligne à la fois

Sub Ligne()
    ActiveCell.Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown
End Sub

Le code se trouve dans le classeur du fichier : Workbook

Amicalement

Pierrot

422classeur1-ec00.xlsm (16.35 Ko)

Bonjour rec00, Cappe Pierre,

Je veux une macro qui me permet d'insérer une ligne qui contient mon texte entre 2 cellules

Avec un double-clique sur la ligne que tu veux copier :

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Rows(Target.Row).Copy
    Rows(Target.Row).Insert Shift:=xlDown

End Sub

Cordialement,

Bonjour,

Merci pour vos réponse ! J'ai testé et ça ne semble pas adapté pour ce que je cherche. Est-il possible de modifier mon code pour changer le Rows("20:20").Select pour dire que c'est à l'endroit ou est placer le pointeur et idem pour Range("A21").Select ? C'est Selection.Insert pour dire l'endroit où est mon curseur ?

J"apporte ma contribution à la discution :

Sub ins_not()
'
' ins_not Macro
'
Dim x As String
'

    x = ActiveCell.Address

    Range(x).Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Range("K5:M5").Select
    'Ici : est-ce une information fixe ou variable ?

    Selection.Copy

    Range(x).Select
    ActiveCell.PasteSpecial

End Sub

Bonjour rubidium68,

Oui c'est une information fixe ! J'ai testé ton code ça fonctionne bien, c'est ce que je veux, merci beaucoup ! Par contre il n'y a que la première colonne qui est décalé vers le bas, je vais voir pour éditer ça

C'est bon, j'ai remplacé Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove par ActiveCell.EntireRow.Insert Shift:=xlDown

Merci, problème résolu

Rechercher des sujets similaires à "macro inserer ligne"