Copier des cellules d'une feuille à une autre VBA

Résolu
HEMIYELY Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   - 6 oct. 2018 à 17:21
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Rechercher un mot qui ne change pas dans une ligne

Voir ceci pour faire une recherche dans une colonne:

https://forums.commentcamarche.sitesdebloques.org/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 10908 Date d'inscription   Statut Membre Dernière intervention   2 432
 
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 61 Date d'inscription   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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