Microsoft 365 VBA - copie de différents tableaux dans un classeur

AlexiaC

XLDnaute Junior
Bonsoir forum!

Question probablement niaiseuse, mais est-ce que c'est possible d'utiliser un code vba pour programmer des copies de tableaux provenant de différents dossiers dans un seul et même fichier qui n'est pas dans l'un de ces dossiers? Je m'explique : je suis gestionnaire, chaque employé a une feuille de temps dans son dossier personnel, mais j'aimerais rapatrier chaque tableau récapitulatif de leurs heures dans un seul classeur Excel, à des fins de calculs de paie. Malheureusement, étant donné la sensibilité de la donnée, je ne peux pas me permettre de la poster dans le forum.
Je précise que, même si je débute, je parviens à importer l'un des tableaux récapitulatifs sans problème dans le fichier de destination en autant que les deux classeurs soient dans le même dossier, avec le code ci-dessous que j'ai trouvé online. Mais y a-t-il un moyen d'ajouter un bout de code quelque part pour qu'il "comprenne" que les classeurs sont à différents endroits dans le serveur informatique??

Merci mille fois de votre temps!

Sub ExtractionAC()

Dim NCS As String 'Nom du classeur source
Dim CD As Workbook 'Nom du classeur de destination
Dim CS As Workbook 'Classeur source
Dim OD As Worksheet 'Onglet de destination
Dim CA As String 'Chemin d'accueil

'FDT_AC = "FDT_2021-2022_AC.xlsx" 'nom du classeur source + extension

Set CD = ThisWorkbook 'Classeur de destination
Set OD = CD.Worksheets("Feuil1") 'onglet de destination dans la feuille de destination
CA = "[Chemin d'accès + extension]" 'Définition du chemin d'accès

Set CS = Workbooks("FDT_2021-2022_AC.xlsx") 'Définition du classeur source (erreur si classeur non ouvert)

Set CS = Application.Workbooks.Open(CA) 'Définition du classeur source en l'ouvrant

CS.Worksheets(2).Range("a34:Z60").Copy OD.Range("d2") 'Copie de la plage utilisée du deuxième onglet du classeur source

End Sub
 
Dernière édition:
Solution
Bonjour et bienvenu sur le forum,

Oui, c'est possible, mais la macro ne pourra deviner où sont les différents classeurs à compulser.
Faites une liste de tous ces dossiers/fichiers dans une feuille du classeur destination.
Sans données confidentielle, faites nous un classeur exemple, en précisant s'il faut importer chaque plage de cellules source dans une feuille différente ou sur la même feuille.

Sans macro c'est faisable également par PowerQuery (inclus dans votre version excel). Là également, il vous faudra une liste des chemins vers les fichiers, ou le chemin vers le répertoire parent de tous les dossiers et les noms de fichier.

Cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour et bienvenu sur le forum,

Oui, c'est possible, mais la macro ne pourra deviner où sont les différents classeurs à compulser.
Faites une liste de tous ces dossiers/fichiers dans une feuille du classeur destination.
Sans données confidentielle, faites nous un classeur exemple, en précisant s'il faut importer chaque plage de cellules source dans une feuille différente ou sur la même feuille.

Sans macro c'est faisable également par PowerQuery (inclus dans votre version excel). Là également, il vous faudra une liste des chemins vers les fichiers, ou le chemin vers le répertoire parent de tous les dossiers et les noms de fichier.

Cordialement
 

AlexiaC

XLDnaute Junior
Bonjour et bienvenu sur le forum,

Oui, c'est possible, mais la macro ne pourra deviner où sont les différents classeurs à compulser.
Faites une liste de tous ces dossiers/fichiers dans une feuille du classeur destination.
Sans données confidentielle, faites nous un classeur exemple, en précisant s'il faut importer chaque plage de cellules source dans une feuille différente ou sur la même feuille.

Sans macro c'est faisable également par PowerQuery (inclus dans votre version excel). Là également, il vous faudra une liste des chemins vers les fichiers, ou le chemin vers le répertoire parent de tous les dossiers et les noms de fichier.

Cordialement
Merci beaucoup pour votre réponse, je vais regarder le tout de plus près demain soir pour vous faire parvenir un exemple, je serai à l'extérieur de mon bureau aujourd'hui et demain (gestionnaire, mais aussi biologiste! ;)) je n'avais pas pensé au PowerQuery!

J'adore le VBA je trouve que les possibilités sont infinies et
Bonjour,

Avec Microsoft 365, tu peux utiliser Power query qui est capable de récupérer un tableau dans un classeur fermé et sera plus souple qu'une macro.
Cordialement.
Merci beaucoup Goube, je n'avais pas pensé au Power Query... je vais essayer de tester ça si je vois que c'est trop difficile en macro pour la débutante que je suis! :)
 

AlexiaC

XLDnaute Junior
Bonjour et bienvenu sur le forum,

Oui, c'est possible, mais la macro ne pourra deviner où sont les différents classeurs à compulser.
Faites une liste de tous ces dossiers/fichiers dans une feuille du classeur destination.
Sans données confidentielle, faites nous un classeur exemple, en précisant s'il faut importer chaque plage de cellules source dans une feuille différente ou sur la même feuille.

Sans macro c'est faisable également par PowerQuery (inclus dans votre version excel). Là également, il vous faudra une liste des chemins vers les fichiers, ou le chemin vers le répertoire parent de tous les dossiers et les noms de fichier.

Cordialement
 

Discussions similaires

Réponses
9
Affichages
317

Statistiques des forums

Discussions
314 732
Messages
2 112 284
Membres
111 497
dernier inscrit
cerber08