VBA insérer ligne, recopier formule
laduche31
-
Exceleuse Messages postés 8 Statut Membre -
Exceleuse Messages postés 8 Statut Membre -
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
- Formule somme excel ligne - Guide
- Insérer video powerpoint - 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 !