Copier coller entre 2 classeurs

bonjour,

malgré un temps certain passé à essayer plusieurs solution, je bute sur un copier coller entre 2 classeurs. Peut-être je passe à côté de qqchose d'évident, ou mon classeur a une particularité qui fait que ce que je vois sur le forums n'aboutit pas.

j'ai nommé mes classeurs source et destination. Le code Vba code est dans source, sous le répertoire Vba feuil1 .

Extrait du code ci-dessous

Workbooks.Open (destination)

Sheets("IPWW").Select

' un boucle pour identifier la première colonne vide qui recevra les nouvelles données à collere

For col = 2 To 10000 '

bu = Worksheets("IPWW").Cells(5, col).Value

If Worksheets("IPWW").Cells(5, col).Value = "" Then Exit For

Next col

MsgBox (col)

' ligne d'instruction compacte qui devrait permettre le copier-coller, en ECHEC

'Workbooks(source).Worksheets("export").Range("data_to_export").Copy_'

'Workbooks(destination).Worksheets("IPWW").Range((Cells(5, col), Cells(80, col)).

' donc j'ai essayé en plus décomposé, au moins pour chercher ce qui coince

Windows(source).Activate

Sheets("export").Select

Sheets("export").Range("data_to_export").Copy ' copier réussi !!

Workbooks(destination).Activate 'ECHEC avec aussi bien Windows () .Activate ou Workbooks () . activate ???

Sheets("IPWW").Select

j'espère que quelqu'un pourra m'aider à détecter ce qui bloque

D'avance merci

Cordialement

Michel

Bonjour Michel,

Ce que tu donnes comme information est trop succinct pour que l'on puisse t'apporter de l'aide.

Peux-tu fournir les 2 classeurs en question (ou une version édulcorée) ?

bonjour GVialles,

je comprends, il faut que je crée la version de classeur édulcorée ... et que j'y retrouve la difficulté

Cordialement

Michel

j'ai trouvé la solution, je partage ici mon expérience.

Mon erreur vient de la gestion des noms de classeur, qui n'est pas homogène:

  • destination est le chemin complet du classeur destination
  • source est juste le nom de classeur = ThisWorkbook.Name
ça ne se comporte pas pareil pour activer/sélecter, du coup je m'y perdais

la solution est de définir des variables de type Workbook, wb_source et wb_destination, et on arrive a un code aussi simple qu'il devrait être:

wb_source.Sheets("export").Range("data_to_export").Copy

wb_destin.Worksheets("IPWW").Range("AM5").PasteSpecial Paste:=xlPasteValues

Rechercher des sujets similaires à "copier coller entre classeurs"