Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Dupliquer ma derniere ligne

  • Initiateur de la discussion Initiateur de la discussion Sophie11
  • 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 !

Sophie11

XLDnaute Occasionnel
Bonjour, comment faire pour dupliquer ("tirer") ma derniere ligne par exemple chaque jour je crée une ligne, j'ai des valeurs contenant des formule de la ligne 3 à 50 comment faire pour créer une macro qui créera ma ligne 51?

Merci d'avance 🙂🙂😛
 
Re : Dupliquer ma derniere ligne

Bonjour Sophie,

Si la colonne A est la colonne de référence (celle dont la dernière cellule remplie est toujours sur la dernière ligne du tableau) :

Code:
Sub AjouteLigne()
Dim lig As Long
lig = Range("A65536").End(xlUp).Row + 1
If lig < 4 Then Exit Sub
Rows(lig - 1).Copy Rows(lig)
On Error Resume Next
Rows(lig).SpecialCells(xlCellTypeConstants).ClearContents
End Sub

A+
 
Re : Dupliquer ma derniere ligne

Re,

Puisqu'il y a des formules, peut-être vaut-il mieux rechercher la dernière cellule où il y a une formule :

Code:
Sub AjouteLigne()
Dim ref As Range, lig As Long
Set ref = Cells.Find("=*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
On Error Resume Next
lig = ref.Row + 1
If lig < 4 Then Exit Sub
Rows(lig - 1).Copy Rows(lig)
Rows(lig).SpecialCells(xlCellTypeConstants).ClearContents
End Sub

A+
 
Re : Dupliquer ma derniere ligne

Nickel Merci job75 mais il faut savoir que certaine de mes cellule contiennent simplement des valeurs...
Donc j'ai repris :

Sub ligne()
Dim lig As Long
lig = Range("A65536").End(xlUp).Row + 1
If lig < 4 Then Exit Sub
Rows(lig - 1).Copy Rows(lig)
On Error Resume Next
End Sub


Par contre j'ai une cellule avec une fonction qui me donne la date "=today()"
donc si je la duplique je vais avoir la meme date sur toutes les lignes, je pensais à remplacer toute les formules de ma précedente ligne par leur resultat (value), si quelqu'un a une idée???
 
Re : Dupliquer ma derniere ligne

Bonjour Sophie,

il faut savoir que certaine de mes cellule contiennent simplement des valeurs...

J'avais bien pensé à ça, et sur une nouvelle ligne il me semblait qu'il fallait les effacer (remise à zéro) par :

Code:
Rows(lig).SpecialCells(xlCellTypeConstants).ClearContents

Mais si vous voulez les laisser, à vous de voir...

(...) je pensais à remplacer toute les formules de ma précedente ligne par leur resultat (value), si quelqu'un a une idée???

Ben comme ça il n'y aura plus de formules du tout, pas très cohérent tout ça 🙄

A+
 
Re : Dupliquer ma derniere ligne

>Ben comme ça il n'y aura plus de formules du tout, pas très cohérent tout ça
Si 🙂 par exemple on utilise le code ci-dessus qui va dupliquer ma ligne avec les formules et ensuite on indique à la macro que la ligne du dessus ne soit plus qu'en valeur mais la ligne dupliquer contient tjrs les formules 😉
Tu vois ce que je veux dire? 😎

Aussi quelqu'un pourrait m'expliquer à la signification de cette ligne de code
If lig < 4 Then Exit Sub

merci beaucoup!!!! 😛😛🙂😱
 
Re : Dupliquer ma derniere ligne

Re,

Mettez donc en fin de macro (après création de la nouvelle ligne) :

Rows(lig - 1) = Rows(lig - 1).Value

Pour :

If lig < 4 Then Exit Sub

ce code sert au début : quand il n'y a pas de lignes créées après la ligne 2 => la copie ne se fait pas.

A+
 
Dernière édition:
- 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
6
Affichages
329
Réponses
5
Affichages
171
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
312
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…