Gros soucis avec "workbooks".....!

Résolu
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013 - 30 nov. 2013 à 19:23
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 1 déc. 2013 à 17:29
tout d'abord, je suis un "primo"-débutant en VBA.
J'essaye de faire une macro (depuis plusieurs jours!!) qui me parait assez simple,
mais ça bloque sur le "workbooks.Open DossierFactures" avec en réponse: "erreur d'exécution '1004' et 'Fact-Gab-1.xlsx' introuvable!
Voici la macro:

Sub EssaiSynth()
ChDir "M:\MARC\Facture-Gab\Fact-Synth\"
DossierFactures = Dir("M:\MARC\Facture-Gab\Fact-Synth\*.xlsx")
'M: est un disque dur externe

Workbooks.Open DossierFactures

Do While Len(DossierFactures) > 0
MsgBox DossierFactures
Workbooks(DossierFactures).Close
DossierFactures = Dir
Loop

End Sub

Je ne comprend pas où est le problème. Aidez-moi!!!
Merci à tous.

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 nov. 2013 à 19:47
Bonjour,
Le seul nom de fichier ne suffit pas à l'ouvrir.
Workbooks.Open DossierFactures 
devrait être
Workbooks.Open  "M:\MARC\Facture-Gab\Fact-Synth\" & DossierFactures

Mais je ne comprends pas vraiment, car :
DossierFactures = Dir("M:\MARC\Facture-Gab\Fact-Synth\*.xlsx") 
fait que DossierFactures sera le premier fichier d'extension xlsx trouvé dans le dossier concerné !
que vient alors faire ensuite ceci :
Do While Len(DossierFactures) > 0
MsgBox DossierFactures
Workbooks(DossierFactures).Close
DossierFactures = Dir
Loop
qui tendrait à fermer tous les classeurs ouverts alors que tuy n'en as ouvert qu'un seul dans le dossier concerné ?
Je ne comprends pas, là ...
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
Modifié par Philippe-thuin le 1/12/2013 à 14:40
Merci, "workbooks" fonctionne de cette façon.
Il s'agit là d'une petite macro qui me sert de test afin de vérifier si tous les "*.xlsx" sont lu et le classeur fermé automatiquement après la boucle.
La macro finale sera plus complexe puisque je voudrais obtenir un tableau "Synthèse" de tous les fichiers .xlsx dans ce genre:.
Trimestre 1


TOTAL des Factures: 0,00 0,00 0,00
HT TVA TTC
Factures du Trimestre
Nom-File Société
.xlsx Nom 0,00 0,00 0,00
0