Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 [Résolu] Synthèse de plusieurs classeurs VBA

Spinzi

XLDnaute Impliqué
Bonjour à tous,

je cherche à ramener des infos depuis différents classeurs en 1 seul.
j'ai suivi cette procédure : http://www.info-3000.com/vbvba/syntheseplusieursclasseurs/
mais la macro me renvoie une erreur à ce niveau là :
Code:
Workbooks.Open ClasseurRegional

J'ai bien créé un dossier (ChDir), avec 2 fichiers en .xlsx à l'intérieur.
En effectuant ce test il les trouve bien :
Code:
Sub Test()
NomFichier = Dir("C:\Users\quentin.schultz\Desktop\VBA Stéphanie RH\*.xlsx") ' NomFichier = le premier fichier trouvé : disons Fribourg.xlsx
While Len(NomFichier) > 0 ' La longueur de Fribourg.xlsx est de 13 caractères, donc 13 > 0...
MsgBox NomFichier ' On affiche : Fribourg.xlsx
NomFichier = Dir ' Hop ! On  lit le fichier suivant ! La variable NomFichier contient maintenant, disons, Genève.xlsx
Wend ' Comme la longueur de Genève.xlsx est > 0, on recommence, et ainsi de suite avec lausanne.xlsx et Neuchâtel.xlsx End Sub
End Sub

Pourriez vous m'aider ?

De plus, il faudra que j'aille chercher mon tableau (Used.Rang) dans une feuille masquée mais nommée toujours pareil : Est-ce que cela peut poser souci ?

Voici le code complet :
Code:
Sub Import()

ChDir "C:\Users\quentin.schultz\Desktop\VBA Stéphanie RH"
ClasseurRegional = Dir("C:\Users\quentin.schultz\Desktop\VBA Stéphanie RH\*.xlsx")
While Len(ClasseurRegional) > 0
Workbooks.Open ClasseurRegional
AvantDerniereLigne = ActiveSheet.UsedRange.Rows.Count - 1
Range("A2:B" & AvantDerniereLigne).Copy
Workbooks("Exxtraction.xlsm").Activate
DebutNomFichier = ActiveSheet.UsedRange.Rows.Count + 1
Range("B" & ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Range("A" & DebutNomFichier & ":A" & ActiveSheet.UsedRange.Rows.Count) = ClasseurRegional
Workbooks(ClasseurRegional).Close
ClasseurRegional = Dir
Wend
End Sub

Pour résumer mon besoin :
Tous les mois je reçois des fichiers Excel. Il ne contiennent qu'une seule ligne dont j'ai besoin qui est située sur l'onglet caché "Feuil1".
Tous ces fichiers sont sauvegardés dans un dossier commun et ils ont donc tous le même chemin.

Je souhaite que la macro parcourt tous les fichiers du dossier (sauf le XSLM qui contiendra mon dossier de synthèse "Extraction") et me ramène la ligne n°2 de la feuil1 cachée.
Et qu'elle incrément les résultats les uns en dessous des autres.

Spinzi
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Bonsoir Spinzi,
Je pense que le fichier que je viens de faire est dans ton attente.
Je n'ouvre pas les fichiers et utilise Application.ExecuteExcel4Macro(................
comme si c'était une formule qui va chercher la donnée dans le fichier
Je prends la ligne 2 de colonne 1 à 20 soit de A à T facilement modifiable en macro ceci en Feuil1 même masquée.

Copier mon fichier dans le même dossier que tous les fichiers concernés et cliquer sur le bouton dans la feuille.
La macro à chaque exécution efface tout sauf la ligne1 et remplie et incrémente à chaque fichier d'une ligne
Si besoin de renommer mon fichier il faut aussi modifier en macro.........
Bruno
 

Pièces jointes

  • MonExtraction.xlsm
    18.1 KB · Affichages: 30

Discussions similaires

Réponses
4
Affichages
684
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…