[vba] copier dans un fichier excel non ouvert

couc67 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
couc67 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. couc67 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  2. couc67 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
     
    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