VBA insérer ligne, recopier formule
laduche31
-
Exceleuse Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Exceleuse Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche une macro qui me permettrais d'insérer une ligne après la dernière ligne qui a une valeur < à 999 en colonne A.
De plus, j'aimerai que cette ligne recopie les formules (uniquement les formules, pas les données) de la ligne du dessus.
Merci grandement par avance!
Cordialement,
Adrien
je cherche une macro qui me permettrais d'insérer une ligne après la dernière ligne qui a une valeur < à 999 en colonne A.
De plus, j'aimerai que cette ligne recopie les formules (uniquement les formules, pas les données) de la ligne du dessus.
Merci grandement par avance!
Cordialement,
Adrien
A voir également:
- VBA insérer ligne, recopier formule
- Formule si et - Guide
- Insérer video powerpoint - Guide
- Formule somme excel ligne - Guide
- Partager photos en ligne - Guide
- Insérer signature word - Guide
7 réponses
Insère une ligne au-dessus de la cellule active en copiant les formules de la ligne précédente :
Sub InsertARow() ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.Offset(-1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1) On Error Resume Next ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + _ xlTextValues + _ xlLogical + _ xlErrors).ClearContents End Sub
Bonjour Patrice et merci pour ta réponse.
Une partie de ton code m'intéresse, cependant mon objectif final est de repérer la dernière ligne ayant une valeur inférieur à 999 dans la première colonne et d'insérer une ligne en suivant.
Une partie de ton code m'intéresse, cependant mon objectif final est de repérer la dernière ligne ayant une valeur inférieur à 999 dans la première colonne et d'insérer une ligne en suivant.
Essaies ce code :
Sub InsertARow() Dim cel As Range Set cel = Cells(Rows.Count, 1).End(xlUp) Do While Not cel.Value < 999 If cel.Row = 2 Then Exit Sub Set cel = cel.Offset(-1) Loop cel.EntireRow.Insert Shift:=xlDown Set cel = cel.Offset(-2) cel.EntireRow.Copy Cells(cel.Row + 1, 1) On Error Resume Next cel.Offset(1).EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + _ xlTextValues + xlLogical + xlErrors).ClearContents End Sub
Ton code m'insères avant la dernière ligne, mais en cherchant je devrais dans ton code je devrais pouvoir adapter ça, merci beaucoup Patrice et bonne soirée!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Décidément, aujourd'hui j'ai tendance à lire en travers !
Voici le code modifié :
Décidément, aujourd'hui j'ai tendance à lire en travers !
Voici le code modifié :
Sub InsertARow() Dim cel As Range Set cel = Cells(Rows.Count, 1).End(xlUp) Do While Not cel.Value < 999 If cel.Row = 2 Then Exit Sub Set cel = cel.Offset(-1) Loop cel.Offset(1).EntireRow.Insert Shift:=xlDown cel.EntireRow.Copy Cells(cel.Row + 1, 1) On Error Resume Next cel.Offset(1).EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + _ xlTextValues + xlLogical + xlErrors).ClearContents End Sub
Et bien moi, le code m'a bien servi, ça a fonctionné du premier coup pour ce que je voulais !
Je voulais juste dire merci même si le topic date !
Bonne journée !