Copier des cellules d'une feuille à une autre VBA

Résolu
HEMIYELY Messages postés 71 Statut Membre -  
michel_m Messages postés 18903 Statut Contributeur -
Bonjour,
Je vous présente mon problème.
Je souhaite copier des cellules d'une feuille à une autre avec le code suivant :

Sub UpdateRealProduc()
'1. Copy data
Worksheets("Quick Update").Range("C15:F20").Copy

'2. Paste data
Worksheets("Farm ID").Range("D102:G107").PasteSpecial

End Sub

Ce code fonctionne.
Seulement mon problème est que je veux supprimer ou ajouter des lignes dans la feuille ou les cellules sont coller (dans la feuille "FarmID"). Comment mes données peuvent être copier au bon endroit si j'ajoute des lignes ?

Merci d'avance pour votre réponse.
A voir également:

3 réponses

cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,

Rechercher un mot qui ne change pas dans une ligne

Voir ceci pour faire une recherche dans une colonne:

https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel

Ensuite quand tu te serviras de cet exemple, pour trouver le numéro de ligne c'est :

Trouve.Row

au lieu de
Trouve.Address


ensuite en ayant cette ligne il suffit d'ajouter ou de diminuer tes lignes dans ton code


0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

il faut récupérer la dernière ligne non vide colonne D de la feuille but et coller la copie à la ligne suivante
Sub UpdateRealProduc()
Dim derli As Long
' dernière ligne non vide colonne D feuille "Farm ID"
derli = Sheets("Farm ID").Range("D" & Rows.Count).End(xlUp).Row
' Copy data  feuille "Quick Update""C15:F20" > feuille "Farm ID" "D & derli+1
Sheets("Quick Update").Range("C15:F20").Copy Sheets("Farm ID").Range("D" & derli)
End Sub

Cdlmnt
0
HEMIYELY Messages postés 71 Statut Membre
 
Bonjour,
Merci pour votre réponse.
Cette solution ne fonctionne pas pour mon cas car je souhaite que les valeurs copiées/Collées soient remplacées à chaque fois que j'utilise la macro. Or dans le code que vous m'avez donné, les valeurs sont copiées les unes à la suite des autres.
0
michel_m Messages postés 18903 Statut Contributeur 3 317
 
Bonjour à tous

Tu nommes D102:G107 "cible" (par exemple) en enlevant les dollars devant les numéros de lignes

=FarmId!$D102:$G107

et tu modifies ton code
2. Paste data
Worksheets("Farm ID").Range("cible").PasteSpecial

Apropos
Pourquoi "pastespecial" ?



0