OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-DOSSIERS

neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 - 17 déc. 2009 à 09:02
papychampi Messages postés 1 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 7 février 2012 - 7 févr. 2012 à 11:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50983-ouvrir-tous-les-fichiers-excel-d-un-dossier-et-de-ses-sous-dossiers

papychampi Messages postés 1 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 7 février 2012
7 févr. 2012 à 11:54
Bonjour, je viens d'utiliser cette macro qui fonctionne très bien seulement je souhaiterais en plus copier des données contenu dans chaque fichier afin de les coller dans un ficher commun.
Je m'explique j'ai plusieurs fichiers dans un dossier ils on tous la même structure (tableau) je souhaiterais grâce à cet macro récupérer les données des tableau contenu dans chaque fichier dans un seul. Etant très très grand débutant en macro quelqu'un pourrait-il venir a mon secours....
heljy Messages postés 5 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 15 juin 2011
2 nov. 2011 à 20:50
Bonjour unforgiven3303,
"Il s'agit d'un code sans prétention mais qui peut rendre de grands services"
Un grand Merci pour ce code qui est peut-être "sans prétention" mais étant donnée la difficulté que j'ai à trouver des infos pratiques sur VBA et surtout sur la gestion de fichiers sous windows, je suis heureux qu'il y ait des gens comme toi qui partage son savoir.
Encore merci à toi et à toute l'équipe qui anime ce site.
max88400 Messages postés 6 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 mai 2011
6 mai 2011 à 20:11
Salut Unforgiven3303,
as-tu jeté un coup d’œil sur mon projet?

Merci d'avance
max88400 Messages postés 6 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 mai 2011
3 mai 2011 à 14:24
Merci Salut Unforgiven3303,
ça fonctionne mais je n'arrive pas à faire ce que je veux.
Ligne 49 ce n'est pas si l’extension est XLS ou XLSX mais si le fichier s'appelle "base de materiel 2011.xlsm"
Ensuite mon problème se pose sur le mode recusrif, je ne suis pas sure que cela soit la bonne solution, car pour chaque fichier trouver l'action n'est pas identique. En effet, je veux que pour le 1er il exécute la macro , pour le seconde la macro 2 ainsi de suite jusqu'à la macro 7.

Merci d'avance
cs_Unforgiven3303 Messages postés 3 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 3 mai 2011
3 mai 2011 à 09:08
Bonjour Max88400,

Pour l'erreur de compilation, dans l'éditeur Visual Basic d'Excel faire "Outils", "Références" puis cocher dans la liste la bibliothèque "Microsoft Scripting Runtime". (voir post plus haut)

Pour ton projet, je jetterai un oeil si j'ai du temps dans la journée.
max88400 Messages postés 6 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 6 mai 2011
2 mai 2011 à 21:02
Salut Unforgiven3303,
j'ai essayer ta macro car c'est à peu pré ce que je veux faire mais lors de la compilation j'ai une erreur qui apparait sur la ligne 37. je site "type défini par l'utilisateur none défini"

Pourrais tu m'aider à résoudre cette erreur et peut-être par la suite m'aider à faire les modif pour que ça colle à mon projet?

Pour info j'ai posé ma question ici en espérant que ça soit au bon endroit...
http://www.vbfrance.com/forum/sujet-MACRO-EXCEL-TROUVER-CLASSEUR-DANS-SOUS-DOSSIER_1517267.aspx

Merci d'avance
cs_Fifin Messages postés 2 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 24 mars 2010
24 mars 2010 à 12:45
Bonjour Unforgiven3303,

Merci pour ton aide! Ça m'a fait réaliser que ces fichiers (même si ce sont des .xls) ont été générés par un autre programme et qu'ils contenaient des séparateurs ; compatibles au format .txt
Du coup, Excel ne peut les sauvegarder tels quels et me demande si je veux garder le même format ou pas quand je les modifie. Bref j'ai changé la ligne 57 en :

ChDir "D:\Delphine\machin"
ActiveWorkbook.SaveAs Filename:="D:\Delphine\machin\' & Fichier & '.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

(le dossier 'machin' est mon dossier test)

Et ô miracle, tout fonctionne! Bon, c'était logique en même temps mais erreur de débutante ;)

Merci beaucoup!
A plus!
cs_Unforgiven3303 Messages postés 3 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 3 mai 2011
24 mars 2010 à 10:37
Bonjour FIFIN,

Pour ton problème, je ne vois qu'une histoire de droit sur les dossiers contenant les classeurs Excel.
Essaye d'ouvrir "manuellement" un des classeurs qui posent problème et tente d'enregistrer pour voir s'il te demande de l'enregistrer ailleurs ou non.
cs_Fifin Messages postés 2 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 24 mars 2010
23 mars 2010 à 18:08
Bonjour!

Je débute complètement sur VB et je rencontre un problème avec ce code. Après avoir enregistré la macro Choisir_fichiers et renseigné la partie où il faut appeler sa macro (Call spearman dans mon cas), je lance le test.
Et problème avec la ligne 57 :
J'ai comme message d'erreur
Erreur d'exécution '1004'
La méthode 'Save' de l'objet '_Workbook' a échoué

Les fichiers excel que je veux traiter ne sont pas en lecture seule et je ne sais vraiment pas d'où vient l'erreur...
matttop Messages postés 6 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 24 mars 2010
19 févr. 2010 à 01:02
OK Merci je vais essayer
cs_Unforgiven3303 Messages postés 3 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 3 mai 2011
18 févr. 2010 à 10:24
Bonjour MATTTOP,

Pour l'erreur de compilation, dans l'éditeur Visual Basic d'Excel faire "Outils", "Références" puis cocher dans la liste la bibliothèque "Microsoft Scripting Runtime".

Pour le nom de la macro, il est possible de changer sans conséquences le nom de la procédure "Choisir_Fichiers()", par contre pour "Ouvrir_fichier()", il faut modifier le nom dans l'appel de la procédure dans "Choisir_fichiers()" (ligne 25) et dans la procédure "Ouvrir_fichier()" (ligne 78) afin que la procédure s'appelle bien elle-même.

Bonne continuation et bon test
matttop Messages postés 6 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 24 mars 2010
18 févr. 2010 à 00:09
La macro je l'appelle bien de mon classeur de macros excel?

Merci
matttop Messages postés 6 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 24 mars 2010
18 févr. 2010 à 00:06
Bonjour je n'arrive pas à faire fonctionner cette source. La ligne 37 échoue à la compilation. J'ai un message d'erreur: Erreur de compilation type défini par l'utilisateur non défini.

J'ai une deuxième question ma macro s'appelle macro1. Pour l'appeler je fais run "macro1"?

Je vais essayer de mieux comprendre ce que je fais en attendant

Merci
karimagra Messages postés 2 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 15:42
salut svp je veux avoir un programme de stockage des produits informatiques et une facture prete qui contien les produits stockes svp aidez moi
neo2k2 Messages postés 126 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 9 novembre 2009 3
17 déc. 2009 à 09:02
Hello,

Sympa ta petite macro mais...

If Nomdossiers Is Nothing Then
' Rien
Else

serait plus simple de faire:

If NOT Nomdossiers Is Nothing Then
' Développement normal

et cfinalement, c'et du VBS, pas du VBA même si on ne voit pas trop de différences...
Rejoignez-nous