Insérer une ligne et la grouper à la précédente

Bonjour Forum !

J’utilise fréquemment une macro qui insère une nouvelle ligne (avec formules et formats prêts à l’emploi), qui est la copie d’une ligne masquée (et merci encore à ceux qui m'avaient aidé pour sa mise au point).

Sub Insérer_Ligne_dito_ligne_1_compris_formules_et_formats()

Dim LG As Integer
    LG = ActiveCell.Row
    Rows(1).Copy
        With Rows(LG)
         .Rows.Insert
         .Offset(-1, 0).Hidden = False
        End With
    Application.CutCopyMode = False
End Sub

J’aimerais ajouter un raffinement supplémentaire.

J’aimerais que, une fois la ligne insérée, elle soit groupée à la ligne située immédiatement au-dessous, mais je ne sais pas comment bidouiller le code.

Quelqu’un peut-il m’aider ?

Merci !

Bonjour,

elle soit groupée à la ligne située immédiatement au-dessous

Que veux-tu dire par grouper ? Grouper via données /Groupe ou fusionner des lignes ?

Merci pour ta réponse.

Dans Excel 2003 c'est : menu Données > Grouper et créer un plan > Grouper

Re,

Code à essayer

Sub Insérer_Ligne_dito_ligne_1_compris_formules_et_formats()
Dim LG As Integer
    LG = ActiveCell.Row
    Rows(1).Copy
        With Rows(LG)
         .Rows.Insert
         .Offset(-1, 0).Hidden = False
        End With
     on error resume next
    Cells(LG, 0).Rows.Group
    Application.CutCopyMode = False
End Sub

Attention que si tu insères juste en regard de la cellule se trouvant au niveau de repère de groupe (signe + ou -)

Amicalement

Merci pour ta réponse.

Malheureusement je n'arrive pas à faire fonctionner le code que tu proposes : la ligne créée ne se groupe pas...

De mon côté, en bidouillant et avec l'aide du Forum, j'ai mis au point ce code, qui marche chez moi :

Sub Insérer_Ligne_dito_ligne_1_et_grouper()

Dim LG As Integer
    LG = ActiveCell.Row
    Rows(1).Copy
        With Rows(LG)
         .Rows.Insert
         .Offset(-1, 0).Hidden = False
        End With

   Range("A" & (ActiveCell.Row - 1)).EntireRow.Select
   Selection.Rows.Group

Range("A" & (ActiveCell.Row + 1)).EntireRow.Select
Range("A" & ActiveCell.Row).Select

Application.CutCopyMode = False

End Sub

En revanche, ça ouvre sur un autre problème, que j'ai traité dans un autre topic :

https://forum.excel-pratique.com/excel/pb-modification-de-formules-a-l-insertion-de-lignes-t25720.html

Si tu pouvais m'aider aussi sur celui-là, ce serait cool !

En tous cas, merci pour ton code.

Re,

Sans fichier par facile de voir ton souci

Le code que tu proposes devrait pouvoir fonctionner comme ceci

Sub Insérer_Ligne_dito_ligne_1_et_grouper()

Dim LG As Integer
    LG = ActiveCell.Row
    Rows(1).Copy
        With Rows(LG)
         .Rows.Insert
         .Offset(-1, 0).Hidden = False
        End With

   Range("A" & (ActiveCell.Row - 1)).EntireRow.Rows.Group

'Range("A" & (ActiveCell.Row + 1)).EntireRow.Select --> Dan : je ne vois pas l'utilité de cette instruction
'Range("A" & ActiveCell.Row).Select --> Dan :pas d'utilité non plus

Application.CutCopyMode = False
End Sub

Si ok, n'oublie de cloturer le fl

Amicalement

Bingo ! Ça marche. Merci !!!

(et tu as donc raison sur les lignes de code inutlies).

Rechercher des sujets similaires à "inserer ligne grouper precedente"