VBA insérer ligne, recopier formule
Fermé
laduche31
-
14 nov. 2011 à 16:12
Exceleuse Messages postés 8 Date d'inscription vendredi 13 mai 2016 Statut Membre Dernière intervention 23 mai 2016 - 20 mai 2016 à 16:35
Exceleuse Messages postés 8 Date d'inscription vendredi 13 mai 2016 Statut Membre Dernière intervention 23 mai 2016 - 20 mai 2016 à 16:35
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 une vidéo sur powerpoint - Guide
- Insérer signature word - Guide
- Formule somme excel colonne - Guide
- Excel retour à la ligne dans une formule - Guide
7 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 nov. 2011 à 16:28
14 nov. 2011 à 16:28
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.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 nov. 2011 à 17:05
14 nov. 2011 à 17:05
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 nov. 2011 à 18:19
14 nov. 2011 à 18:19
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 nov. 2011 à 12:03
15 nov. 2011 à 12:03
De rien, au plaisir de te relire sur le Forum
20 mai 2016 à 16:35
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 !