Copier des cellules d'une feuille à une autre VBA [Résolu/Fermé]

Signaler
Messages postés
44
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
11 janvier 2021
-
Messages postés
16431
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 avril 2021
-
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

Messages postés
7333
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
622
Bonjour,

Rechercher un mot qui ne change pas dans une ligne

Voir ceci pour faire une recherche dans une colonne:

https://www.commentcamarche.net/faq/36886-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


Messages postés
9703
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 avril 2021
2 080
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
Messages postés
44
Date d'inscription
mercredi 10 mai 2017
Statut
Membre
Dernière intervention
11 janvier 2021

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.
Messages postés
16431
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 avril 2021
3 161
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" ?