Insérer une ligne en gardant les formules

  • Initiateur de la discussion Initiateur de la discussion rere67
  • Date de début Date de début

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 !

rere67

XLDnaute Junior
Bonjour,

Je souhaite mettre en place une macro pour insérer une ligne dans un Tableau et en gardant les listes déroulantes et formules de la ligne et que cette ligne soit "vide" (j'ai des éléments jusqu'à la colonne K)

Voici le code que j'ai fait pour le Moment.

Sub InsererLigne()
ActiveSheet.Unprotect Password:=""
ActiveCell.Rows("1:1").EntireRow.Select
Selection.EntireRow.Insert
ActiveCell.Offset(-1, 9).Range("A1:K1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:K3"), Type:= _
xlFillDefault
ActiveCell.Offset(1, -9).Range("A1").Select
ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Merci pour votre aide
 
Bonjour rere67, Philippe,
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Application.ScreenUpdating = False
Target.EntireRow.Insert
On Error Resume Next
With Target(-1).EntireRow
  .Copy .Resize(2)
  .Rows(2).SpecialCells(xlCellTypeConstants) = ""
End With
End Sub
Ce code insère une ligne entière au-dessus de la cellule où l'on fait un double-clic.

Copie-colle la ligne du dessus et efface les constantes.

Fonctionne dans toute la feuille, qu'il y ait ou non un tableau Excel.

A+
 
Bonjour rere67, Philippe, le forum,

Un code plus général et mieux adapté au tableau Excel s'il y en a un :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Application.ScreenUpdating = False
On Error Resume Next
With ListObjects(1).Range.Offset(1)
  If Intersect(Target(1).EntireRow, .Cells) Is Nothing Then
    Target(1).EntireRow.Insert
  Else
    Target(1).EntireRow.Insert
    ListObjects(1).Resize .Rows(0).Resize(.Rows.Count) 'redimensionnement du tableau
    Exit Sub
  End If
End With
With Target(-1, 1).EntireRow
  .Copy .Rows(2) 'copier-coller
  .Rows(2).SpecialCells(xlCellTypeConstants) = ""
End With
End Sub
Fichier joint (merci Philippe).

Bon dimanche.
 

Pièces jointes

Dernière édition:
Bonjour tout le monde,

Merci pour vos différents retours et merci job75 pour la macro elle fonctionne du tonnerre !

Effectivement je savais que la facilité était de créer un Tableau Excel qui fait suivre automatiquement les formules mais la configuration de ma base ne me permet pas d'utiliser cette fonctionnalité.

encore merci à vous

A+
 
- 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
17
Affichages
877
Retour