Copier des cellules d'une feuille à une autre VBA

Résolu/Fermé
HEMIYELY Messages postés 61 Date d'inscription mercredi 10 mai 2017 Statut Membre Dernière intervention 25 janvier 2022 - 5 oct. 2018 à 17:07
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 5 oct. 2018 à 17:19
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 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
5 oct. 2018 à 17:22
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 mercredi 10 mai 2017 Statut Membre Dernière intervention 25 janvier 2022
6 oct. 2018 à 16:19
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 6 oct. 2018 à 17:22
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