XL 2019 Inserer une ligne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

netparty

XLDnaute Occasionnel
Bonjour à tous
Je viens vers vous pour avoir votre aide
J'aimerais dans mon fichier avoir la possibilité d’insérer une ligne et de recopier les formules de la ligne supérieur et ne garder que les formules.

J'ai essayé ce code :

VB:
Sub Inserer_Ligne()
 If MsgBox("Copier la ligne n°" & Target.Row, vbYesNo) = vbYes Then
        Rows(Target.Row).Copy
        Rows(Target.Row).Insert Shift:=xlDown
        Rows(Target.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
    End If
End Sub

Mais j'ai un messages d'erreur

Merci d'avance pour votre aide
 

Pièces jointes

Bonsoir netparty,
VB:
Sub Inserer_Ligne()
If MsgBox("Copier la ligne n°" & ActiveCell.Row & " ?", vbYesNo) = vbYes Then
    Rows(ActiveCell.Row).Copy
    Rows(ActiveCell.Row).Insert Shift:=xlDown
    Application.CutCopyMode = 0
    On Error Resume Next 'si aucune SpecialCell
    Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
A+
 
Bonsoir netparty,
VB:
Sub Inserer_Ligne()
If MsgBox("Copier la ligne n°" & ActiveCell.Row & " ?", vbYesNo) = vbYes Then
    Rows(ActiveCell.Row).Copy
    Rows(ActiveCell.Row).Insert Shift:=xlDown
    Application.CutCopyMode = 0
    On Error Resume Next 'si aucune SpecialCell
    Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
A+
Bonjour @job75

Merci pour ton code.

Par la même occasion est-il possible d'avoir la possibilité de choisir le nombres de lignes que je voudrais ajouter

Bonne journée
 
Bonjour netparty, Cousinhub, le forum,
Par la même occasion est-il possible d'avoir la possibilité de choisir le nombres de lignes que je voudrais ajouter
Bien sur :
VB:
Sub Inserer_Ligne()
Dim n
n = Val(Application.InputBox("Nombre de lignes à insérer :"))
If n Then
    On Error Resume Next
    Application.CutCopyMode = 0
    Rows(ActiveCell.Row).Resize(n).Copy
    Rows(ActiveCell.Row).Insert
    Application.CutCopyMode = 0
    Rows(ActiveCell.Row).Resize(n).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
A+
 
Dernière édition:
Bonjour netparty, Cousinhub, le forum,

Bien sur :
VB:
Sub Inserer_Ligne()
Dim n
n = Val(Application.InputBox("Nombre de lignes à insérer :"))
If n Then
    On Error Resume Next
    Application.CutCopyMode = 0
    Rows(ActiveCell.Row).Resize(n).Copy
    Rows(ActiveCell.Row).Insert
    Application.CutCopyMode = 0
    Rows(ActiveCell.Row).Resize(n).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
A+
Bonjour @job75

J'ai testé le code.
Si je choisi d’insérer une seule ligne cela fonctionne mais si je demande plusieurs lignes alors elle ne sont pas insérées à la bonne place.

Je joint mon fichier pour que tu voie ou celle-ci se sont insérées.

Merci
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
146
Réponses
1
Affichages
322
Réponses
3
Affichages
460
Retour