Accueil > Forum > > > > acceder a un dossier de fichier excel avec une macro
acceder a un dossier de fichier excel avec une macro
vendredi 5 octobre 2007 à 17:37:19 |
acceder a un dossier de fichier excel avec une macro

secourma
|
Bonjour j'ai fait une macro qui permet d'executer une procedure bien determinée. y a t-il moyen que ma macro peurra acceder a un dossier sur mon disque dur, ce dossier contient une liste de fichier excel, pour que la macro sera executer sur tout les fichiers du dossier. j'en ai vraiment besoin je vous remercie par avance de votre aide
|
|
lundi 8 octobre 2007 à 12:58:25 |
Re : acceder a un dossier de fichier excel avec une macro

secourma
|
y a personne pour m'aider ? je perds pas espoir . je vous laisse mon email si qq'1 veut me contacter : secourma@yahoo.frMerci
|
|
mardi 23 octobre 2007 à 15:58:44 |
Re : acceder a un dossier de fichier excel avec une macro

caco64
|
Il est tout à fait possible d'ouvrir et de fermer tous les fichiers excel d'un répertoire donné et d'appliquer des procédures sur le fichier ouvert. Il faudrait que tu précises ce que tu veux faire exactement.
La haine aveugle n'est pas sourde
|
|
mercredi 24 octobre 2007 à 19:46:29 |
Re : acceder a un dossier de fichier excel avec une macro

secourma
|
merci pour l'interet que vous avez accorder a ma demande
j'explique mon probleme: sur le reseau il y a un repertoire qui contient contient un des sous repertoirs, et chaque sous repertoire contient des fichiers excels, je veux que ma macro parcours tous ces fichiers et les enregeistrer en format texte, e puis a la fin les concatener pour avoir un seul fichier texte resultat.
si vous avez une idée, faites le moi savoir
je vous remercie par avance
|
|
mercredi 24 octobre 2007 à 20:33:23 |
Re : acceder a un dossier de fichier excel avec une macro

caco64
|
Si ta macro réussit bien à enregistrer le fichier excel au format texte, ce qui ne me paraît pas le plus simple, alors ce n'est pas très difficile de réaliser cette opération sur tous les fichiers excel contenus dans des répertoires. donne-moi le code que tu utilises pour un fichier donné et j'essaierai de te le modifier pour ce que tu souhaites faire.
La haine aveugle n'est pas sourde
|
|
jeudi 25 octobre 2007 à 13:21:06 |
Re : acceder a un dossier de fichier excel avec une macro

secourma
|
Bonjour cacao64, et merci pour ton suivi,
Voici mon code qui permet d'ouvrir un fichier excel, et de parcourir toutes les feuilles du classeur et les enregeistrer en format texte.
Dim shtWorksheet As Worksheet Dim monfichier As String
Workbooks.Open "nom du fichier"
For Each shtWorksheet In ActiveWorkbook.Worksheets shtWorksheet.Activate Nomfeuille = shtWorksheet.Name ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & Nomfeuille & ".txt", FileFormat:=xlTextWindows
Next shtWorksheet
ActiveWorkbook.Close savechanges:=Fals
ce qui me reste maintenant c'est acceder a un repertoire situé sur le reseau, et de prcourir tt les sousrepertoires qui contiennet a leur tours des fichiers excel, et puis executer mon code sur chaque fichier.
Merci
|
|
vendredi 26 octobre 2007 à 21:14:46 |
Re : acceder a un dossier de fichier excel avec une macro

caco64
|
Salut,
comme je l'avais prédit, la difficulté ne concerne pas le la recherche des fichiers excel dans des répertoires, mais bien l'enregistrement des fichiers au format txt. Et ce d'autant plus que lors de l'exécution de la macro, le fichier excel qui lui est associé reste le classeur actif ; et tout autre classeur ouvert ne peut être activé...
J'ai donc pas mal galéré pour modifier le code et le rendre compatible.
J'ajoute que le code fonctionne bien chez moi mais il reste encore largement améliorable notamment dans la gestion des erreurs. En particulier, il ne gère pas le cas ou un fichier texte du même nom (d'un enregistrement précédent) existe déjà, donc prévois de rajouter la suppression des fichiers existants avant d'enregistrer.
Et surtout, il ne faut surtout pas qu'un fichier à enregistrer soit ouvert, sinon ça m... aussi (il faut aller dans le gestionnaire des tâches pour virer les processus excel en trop).
Je t'envoie le code dans un message suivant.
La haine aveugle n'est pas sourde
|
|
vendredi 26 octobre 2007 à 21:19:49 |
Re : acceder a un dossier de fichier excel avec une macro

caco64
|
C'est bien sûr la sub "lanc_proc" qui lance la procédure
Sub lanc_proc() Call accede_reseau("C:\test") 'Call accede_reseau("\\gauss\test") End Sub
Sub accede_reseau(chemin As String) Dim fs 'filesystemobject Dim fr 'répertoire recherché sur le réseau Dim fr_c 'collection des sous-répertoires du répertoire Dim fr_1 '1 sous-réperoire de cette collection Dim ff_c 'collection des fichiers du répertoire Dim ff_1 '1 fichier de cette collection Dim typ_fich As String Dim nom_fich_adresse As String, nom_fich_nom As String
Set fs = CreateObject("Scripting.FileSystemObject") Set fr = fs.GetFolder(chemin) Set fr_c = fr.subfolders Set ff_c = fr.Files For Each ff_1 In ff_c typ_fich = Right(ff_1.Name, 3) If typ_fich = "xls" Then nom_fich_nom = ff_1.Name nom_fich_adresse = fr.Path & "\" & nom_fich_nom Call sauve_format_txt(nom_fich_adresse, nom_fich_nom) End If Next For Each fr_1 In fr_c Call accede_reseau(fr_1.Path) Next End Sub
Sub sauve_format_txt(monfichieradresse As String, monfichiernom As String)
Dim xlapp As Excel.Application Dim classeur_a_enr As Workbook Dim feuille_a_enr As Worksheet Dim nb_feuil As Long Dim Nomfeuille As String Dim adr_enr As String
Set xlapp = New Excel.Application Set classeur_a_enr = xlapp.Workbooks.Open(monfichieradresse) nb_feuil = classeur_a_enr.Worksheets.Count For i = 1 To nb_feuil If i <> 1 Then Set classeur_a_enr = xlapp.Workbooks.Open(monfichieradresse) End If Set feuille_a_enr = classeur_a_enr.Sheets(i) Nomfeuille = feuille_a_enr.Name adr_enr = classeur_a_enr.Path & "\" _ & Left(monfichiernom, Len(monfichiernom) - 4) _ & "_" & Nomfeuille & ".txt" feuille_a_enr.SaveAs Filename:=adr_enr, FileFormat:=20 'feuille_a_enr.SaveAs Filename:=adr_enr, FileFormat:=xlText Set feuille_a_enr = Nothing classeur_a_enr.Close savechanges:=False Set classeur_a_enr = Nothing Next i Set xlapp = Nothing End Sub
La haine aveugle n'est pas sourde
|
|
samedi 27 octobre 2007 à 23:02:28 |
Re : acceder a un dossier de fichier excel avec une macro

secourma
|
Merci beaucoup caco64 pour l'effort que vous avez fait, c'est tres gentil de votre part. votre code marche bien, j'ai fais qq petites rectifications pour qu'il prend en consideration les autres format excel a part le "xls". si non, j'ai remarqué que l'execution prend un peu de temps. y a t-il moyen de le rendre plus rapide pendant l'execution ? merci
|
|
dimanche 28 octobre 2007 à 00:45:50 |
Re : acceder a un dossier de fichier excel avec une macro

caco64
|
Je suis heureux que tu aies réussi à l'adapter.
Pour ce qui est du temps, je ne suis pas très qualifié pour te répondre précisément. A mon sens, les opérations d'entrée/sortie sont des opérations très consommatrices en temps et là le programme passe son temps à ouvrir et fermer les fichiers excel. Il le fait autant de fois qu'il y a de feuilles à enregistrer en fait, et ça prend donc beaucoup de temps. Mais je n'ai pas trouvé de moyen de faire autrement, puisque la commande savecopyas ne permet pas de sauvegarder au format texte.
Dans le code, la commande Set xlapp = New Excel.Application .... xlapp = nothing est répétée autant de fois qu'il y a de fichiers excel. Cette commande est en fait nécessaire une seule fois. Si elle prend du temps (ce que je n'ai pas testé mais qui est une possibilité), il est alors possible d'en gagner en l'enlevant de la sub sauve_format et en la plaçant dans la sub lanc_proc (au début pour set xlapp et à la fin pour xlapp = nothing).
Après, je ne sais pas ce que tu appelles lent. Je l'ai testé sur un répertoire renfermant une dizaine de fichiers excel et ça ne prenait pas 30s. C'est long pour ce qu'il y a à faire mais ce n'est pas problématique. Donc, soit ton nombre de fichiers à traiter est très volumineux, soit c'est ton temps d'accès au réseau qui est en cause.
Tiens-moi au courant si tu trouves quelque chose.
La haine aveugle n'est pas sourde
|
|
Cette discussion est classée dans : fichier, macro, dossier, excel, acceder
Répondre à ce message
Sujets en rapport avec ce message
macro sur un dossier de fichier excel [ par funkay91 ]
je souhaite appliquer ma macro sur l'ensemble des fichiers .xls de mon dossier C'est dire j'ai un fichier exel dans lequel j'aurai ma macro qui une fo
Macro excel afin de trater un document word [ par frank35 ]
Bonjour, Petite question de débutant : J'ai un fichier word (dont le nom change tous les jours) placer sous la racine c:\ Dans un fichier Excel je so
Pb d'open de fichier dans une macro EXCEL [ par ggsab62 ]
Bonjour,De nouveau je relance ce sujet, car je ne comprends pas à quoi est dûe l'erreur.....Je m'explique, je fais une procédure dans une macro Excel
Pb d'open fichier dans Macro Excel [ par ggsab62 ]
Bonsoir,G un pb de macro :Il me semble que l'instruction Open ne fonctionne pas ....ex :Open "c:\test.txt" For Output As #1 Incroyable !!!!!!m
Problème d'utilisation de macro d'un autre fichier [ par cissou06 ]
BonjourJe travaille sur un projet développé en VBA sous Visio et j'ai besoin d'utiliser des macros qui se trouvent dans un fichier Excel. Dans mon cod
Ouverture/Fermeture Excel [ par takin55 ]
Bonjour à vousje cherche à savoir 2 choses svp : Comment lancer une macro Excel à l'ouverture de ce fichier Excelsans cliquer sur "Voulez vous activer
help!!! transfert de données par macro d'un fichier excel [ par perdida ]
Bonjour,debutante que je suis, je galere enormement pour construire une macro qui effectuerait la manoeuvre suivante:en fait, j'ai un fichier excel de
a l'aide [ par tibogl ]
bonjour , je cree actuellement une macro qui est censé copier des pages entières d'autres fichiers excel et les rapatrier dans le nouveau.cependant lo
Afficher et sélectionner un fichier d'un dossier comme base pour une macro excel [ par yoleputois ]
Bonjour à tous... comme l'indique le titre du forum, chui au bord de la balle dans la tête. J'ai regardé et regardé si je ne trouvais pas une soluss
Macro excel perso.xls et évènement commandButton1_click() [ par annielaf ]
Bonjour à tous, j'ai un petit problème avec une macro. Je veux créer une macro qui s'exécute seulement sur certain type de fichier excel. Jusque l
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|