Incrémenter la position d'une copie de ligne

Bonsoir,

je cherche (c'est sûrement très simple pour un connaisseur) à copier une ligne (plage A8:K8) vers une autre ligne (plage A10:K10) à l'aide d'un bouton, mon problème est dans le fait qu'après la première copie,si je modifie les données de la première ligne (plage A8:K8), la macro doit me copier le nouveau contenu vers A11:K11 et ainsi de suite A12:K12,......(bref je ne sais pas incrémenter de manière à copier le nouveau contenu sur une ligne n+1.

Vous allez me dire, pourquoi ne pas rédiger le nouveau contenu dans les lignes qui vont bien (la première ligne me sert de référence car chaque contenu de cellule alimente via un lien des rapports rédigés sous Excel, une fois le rapport alimenté, une macro me supprime les liens en gardant le contenu et j'enregistre le rapport), le nouveau contenu alimentera un autre rapport qui contient les liens permanents et ainsi de suite, la copie successive des lignes me sert de traçabilité des rapports effectués (d'autres calcul sont fait à partir de cette liste).

En espérant que vous pourrez m'aider,

Cordialement,

Tinetmil

Bonsoir Tinetmil, boneoir le forum,

Essaie comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
'définit la cellule de destination DEST (A10 si A10 est vide, sinon la première cellule vide de la colonne A)
Set DEST = IIf(O.Range("A10").Value = "", O.Range("A10"), O.Range("A" & Application.Rows.Count).End(xlUp).Offset(1, 0))
O.Range("A8:K8").Copy DEST 'copie la plage A8:K8 et la colle dans DEST
End Sub

Bonjour ThauThème,

merci pour ta réponse, j'ai une erreur de type "l'indice n'appartient pas à la sélection", j'ai pourtant mis le code dans la feuil9.

Je ne vois pas dans le code le fait que je veuille coller "A8:K18" dans la zone "A10:K10", c'est implicite.

Merci pour ta contribution,

Tinetmil

Sub Macro1()

Dim O As Worksheet 'déclare la variable O (Onglet)

Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set O = Sheets("Feuil9") 'définit l'onglet O (à adapter à ton cas)

'définit la cellule de destination DEST (A10 si A10 est vide, sinon la première cellule vide de la colonne A)

Set DEST = IIf(O.Range("A10").Value = "", O.Range("A10"), O.Range("A:K" & Application.Rows.Count).End(xlUp).Offset(1, 0))

O.Range("A8:K8").Copy DEST 'copie la plage A8:K8 et la colle dans DEST

End Sub

Bonjour Tinetmil, bonjour le forum,

Erreur typique quand le nom de l'onglet dans le code ne correspond pas avec le nom de l'onglet dans le fichier Excel. À vérifier donc Feuil9, peut-être un espace avant ou après...

Autre chose, pour copier une plage source dans une plage destination, l'adresse de la première cellule de la destination suffit...

Set DEST = IIf(O.Range("A10").Value = "", O.Range("A10"), O.Range("A" & Application.Rows.Count).End(xlUp).Offset(1, 0))

Re-bonjour ou plutôt bonsoir ThauThème,

Super ton code fonctionne, en fait j'avais renommer les feuilles Janvier à Décembre (je pensais naïvement que ce n'était qu'une apparence).

Merci beaucoup pour ton aide,

Cordialement,

Tinetmil

Rechercher des sujets similaires à "incrementer position copie ligne"