Copier des cellules d'une feuille à une autre VBA

Résolu
HEMIYELY Messages postés 71 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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.

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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