Copie de cellules entre 2 classeurs

fouding69 Messages postés 10 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 24 novembre 2011 - 24 nov. 2011 à 05:28
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 - 24 nov. 2011 à 15:02
Bonjour à tous

Je débute en VBA. J'aimerais tester un code qui me permettrait de réaliser ceci :

Seraient ouverts :
Classeur "TdB" / Feuille "Analyse"
Classeur "CE #Nom" / Feuille "Devis".
#Nom change en fonction du dossierr sur lequel on veut travailler(exemple : "CE MARTIN") mais le nom classeur commencera toujours par "CE"

la macro doit faire :
Copie des cellules A1 et A5 de "CE" feuille "Devis"
Sur la première ligne non vide de "TdB" feuille "Analyse", en A et B (A1 vers Ax et A5 vers Bx).

Je suggère que le code ne fonctionne que si les 2 bons classeurs sont ouverts : "TdB" et un classeur débutant par "CE" (pour éviter de faire un imputbox sur les noms)

ça, ça marche ...

Sub test()

Workbooks("CE MARTIN").Activate
Sheets("Devis").Select
Range("A2").Copy
Workbooks("TdB").Activate
Sheets("Analyse").Select
Range("A1").Select
Sheets("Analyse").Paste


Workbooks("CE MARTIN").Activate
Sheets("Devis").Select
Range("B5").Copy
Workbooks("TdB").Activate
Sheets("Analyse").Select
Range("B1").Select
Sheets("Analyse").Paste

End Sub


Après, il faut que je cherche la dernière ligne non-vide (mon tableau ne dépassera pas les 3000 lignes) avec un truc du genre :
Derligne = Four.Range("A3000").End(xlUp).Row

et je place la variable Derligne dans le range de mon paste .... c'est bien ça ?

Alors après, comment ne faire le "copy" que sur le fichier commençant par "CE", et m'indiquer un msg d'erreur si 2 sont ouvets ("CE Martin" et "CE Dupont")... mystère ...

Merci d'avance pour votre aide.

1 réponse

cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
24 nov. 2011 à 15:02
Bonjour,

test déja ce code et tu aura un bon incice :

For i = 1 To Application.Workbooks.Count
MsgBox Application.Workbooks(i).Name
Next


Ensuite j'imagine que ce n'est pas la dernière non null que tu cherches mais la première null après.

tu peux aussi pour t'aider regarder le message résolu de ce matin

http://www.vbfrance.com/forum/sujet-VBA-EXCEL-FONCTION-COPY-DESTINATION-NE-MARCHE-PAS_1557755.aspx

Bon developpement



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
0