[vba] copier dans un fichier excel non ouvert

Fermé
couc67 Messages postés 50 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 21 avril 2011 - 12 avril 2011 à 14:54
couc67 Messages postés 50 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 21 avril 2011 - 13 avril 2011 à 09:48
Bonjour,

J'ai une macro qui me permet de calculer des résultats à partir de nolmbreuses données, et j'aimerais copier ces données dans un autre fichier, sans avoir besoin de l'ouvrir.
Ce fichier regrouperais uniquement les résultats importants que calcul ma macro.
J'ai le code suivant, mais il bloque sur la ligne d'activation de l'autre fichier :


'copier données de la feuille 4 du fichier source
FL4.Range("A2:I" & DerniereLigneColor).Copy
'activer fichier de regroupement des resultats et coller dans l'onglet "détails"
Windows("K:\*******\***********\Livraisons_XXXX.xls").Activate <-- bloque ici
Sheets("Détails").Select
Cells(2, 1).Paste

'copier les données de la feuille 3 du fichier source
Windows("K:\*******\***********\YYYY.xls").Activate
FL3.Range(Cells(DerniereLigne2, 5), Cells(DerniereLigne2, 7)).Copy
'coller dans l'onglet du fichier de regroupement des résultats dans l'onglet "Moyenne par quinzaine"
Windows("K:\*******\***********\Livraisons_XXXX.xls").Activate
Sheets("Moyenne par quinzaine").Select
Cells(DerniereLigne2, 5).Paste


Une petite idée pourquoi ca ne fonctionne pas ?
Merci d'avance pour votre aide

3 réponses

couc67 Messages postés 50 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 21 avril 2011
12 avril 2011 à 17:08
Rebonjour,

j'ai simplifié le code, mais la ligne
Set FDest = Workbooks("K:\*******\***********\XXXXXXXX.xls")
ne passe toujours pas... je ne sais pas comment faire fonctionner, c'est pas faute d'avoir fait un tas de posts...

code :

Dim FPrem As Workbook, FDest As Workbook
Set FDest = Workbooks("K:\*******\***********\XXXXXXXX.xls")
Set FPrem = ThisWorkbook
FPrem.FL4.Range("A2:I" & DerniereLigneColor).Copy _
FDest.Sheets("Détails").Range("A2")
FPrem.FL3.Range(Cells(DerniereLigne2, 5), Cells(DerniereLigne2, 7)).Copy _
FDest.Sheets("Moyenne par quinzaine").Cells(DerniereLigne2, 5)

FL4 et FL3 sont definis de la manière suivante :
Set FL3 = Worksheets("Feuil3")
Set FL4 = Worksheets("Feuil4")
0
Utilisateur anonyme
12 avril 2011 à 19:15
Bonjour,

Des informations et exemples ici :
https://silkyroad.developpez.com/VBA/ClasseursFermes/#LIV-B

Cdt

Lupin
0
couc67 Messages postés 50 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 21 avril 2011
13 avril 2011 à 09:48
Merci !

Je vais tenter par cette méthode. C'est un peu l'usine à gaze, il n'y a rien de plus simple ? :)

je souhaiterais enregistrer un range(cells(1,1), cells(1,4)) par exemple dans la cellule cells(X, 7) avec X variable bien sûr, sinon c'est pas marrant :)

Dans le code du lien, sur la commande

Cd.CommandText = "SELECT * FROM [Feuil1$G30:G30]"

comment peut on utiliser la même chose mais pour une cellule variable ?

merci d'avance !!
0