[Excel] Changer le chemin d'accès dans macro
Badabo^O
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour bonjour !
Voilà en fait j'utilise excel depuis pas si longtemps et j'ai commencé à me servir des macros : Waaaaaa c'est magique ! Et oui ça paraît facile quand on n'a pas à coder... Sauf que j'ai un petit souci.
Je vous explique d'abord le principe de mes macros :
Ma première macro permet d'ouvrir 17 fichiers situés dans le répertoire au dessus du fichier excel actuellement ouvert.
Ma deuxième permet de modifier des cellules dans chacun des 17 fichiers ouverts et ma troisième ferme tous les fichiers :)
Jusque là tout marche bien quand j'ai tout initié.
Mais le problème vient que je suis en réseau dans une entreprise, de ce fait il faut pouvoir faire cette opération dans chacun des postes, et cette opération s'effectue à partir de 70 dossiers différents.
En gros j'ai besoin de pouvoir ouvrir de n'importe quel poste dans n'importe quel dossier ces 17 fichiers à l'aide de la macro :)
Sauf que tout marche bien du poste que j'occupe, mais lorsque je bouge, le répertoire reste le même (dans le code) et j'ai besoin de savoir comment changer le répertoire en partant de celui du fichier ouvert^^
L'autre problème est que je ne comprends rien au langage utilisé sur Excel (j'ai fait pas mal de C cette année) et que surtout je n'ai pas le temps de m'y pencher !
Je vous montre mon code, je dois en fait passer de ce chemin d'accès à celui du répertoire au dessus du fichier ouvert puis re rentrer dans une autre dossier, je pensais pouvoir utiliser les "..\" mais ça ne marche pas ici..
Merci énormément pour l'aide que vous pouvez m'apporter :)
ps: désolé pour la lisibilité, apparemment on ne peut pas sauter d'espaces...
Voilà en fait j'utilise excel depuis pas si longtemps et j'ai commencé à me servir des macros : Waaaaaa c'est magique ! Et oui ça paraît facile quand on n'a pas à coder... Sauf que j'ai un petit souci.
Je vous explique d'abord le principe de mes macros :
Ma première macro permet d'ouvrir 17 fichiers situés dans le répertoire au dessus du fichier excel actuellement ouvert.
Ma deuxième permet de modifier des cellules dans chacun des 17 fichiers ouverts et ma troisième ferme tous les fichiers :)
Jusque là tout marche bien quand j'ai tout initié.
Mais le problème vient que je suis en réseau dans une entreprise, de ce fait il faut pouvoir faire cette opération dans chacun des postes, et cette opération s'effectue à partir de 70 dossiers différents.
En gros j'ai besoin de pouvoir ouvrir de n'importe quel poste dans n'importe quel dossier ces 17 fichiers à l'aide de la macro :)
Sauf que tout marche bien du poste que j'occupe, mais lorsque je bouge, le répertoire reste le même (dans le code) et j'ai besoin de savoir comment changer le répertoire en partant de celui du fichier ouvert^^
L'autre problème est que je ne comprends rien au langage utilisé sur Excel (j'ai fait pas mal de C cette année) et que surtout je n'ai pas le temps de m'y pencher !
Je vous montre mon code, je dois en fait passer de ce chemin d'accès à celui du répertoire au dessus du fichier ouvert puis re rentrer dans une autre dossier, je pensais pouvoir utiliser les "..\" mais ça ne marche pas ici..
Merci énormément pour l'aide que vous pouvez m'apporter :)
ps: désolé pour la lisibilité, apparemment on ne peut pas sauter d'espaces...
Sub OuvertureFichiers()
'
' OuvertureFichiers Macro
' Ouverture des fichiers
'
'
Sheets("Connaissance générale").Select
Workbooks.Open Filename:= _
"../Pack PE V3.0 Outils Phase 2\A2.2 - Quest éthique et comportement du dirigeant.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 2\A2.3 - Analyse matricielle des risques.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 2\B2.1 - Tests de procédures.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 2\A2.1 - Quest analyse risque ano significative CPE.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 3\B3.2 - Planification de la mission.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 3\B3.1 - Quest seuils signification.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\A4.1 - Feuilles des variations par cycles.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\B4.2.1 - Traitement confirmation des comptes fournisseurs.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\B4.2.2 - Traitement confirmation des comptes clients.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\B4.3 - Quest Inventaire physique.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\B4.4 - Feuilles de travail.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 4\B4.5 - Ratios clés.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 5\A5.1 - Quest de fin de mission.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 5\A5.3 - Note de synthese complementaire.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 5\B5.1 - Quest Controle de l'annexe.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 5\B5.3 - Quest preparation rapport comptes annuels.xls"
Workbooks.Open Filename:= _
"Z:\Blabla\CAC\Documentation\Pack PE V3\Pack PE v3.0 juin 2012\Pack PE V3.0 Outils Phase 5\B5.7 - MAJ du dossier permanent.xls"
End Sub
// deuxième macro pour la fermeture
Sub FermetureFichiers()
'
' FermetureFichiers Macro
' Fermeture des fichiers
'
'
Application.WindowState = xlMinimized
Windows("B4.5 - Ratios clés.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B4.4 - Feuilles de travail.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B4.3 - Quest Inventaire physique.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B4.2.2 - Traitement confirmation des comptes clients.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B4.2.1 - Traitement confirmation des comptes fournisseurs.xls"). _
Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A4.1 - Feuilles des variations par cycles.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B3.1 - Quest seuils signification.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B3.2 - Planification de la mission.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A2.1 - Quest analyse risque ano significative CPE.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B2.1 - Tests de procédures.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A2.3 - Analyse matricielle des risques.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A2.2 - Quest éthique et comportement du dirigeant.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A5.1 - Quest de fin de mission.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("A5.3 - Note de synthese complementaire.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B5.1 - Quest Controle de l'annexe.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B5.3 - Quest preparation rapport comptes annuels.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("B5.7 - MAJ du dossier permanent.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
A voir également:
- [Excel] Changer le chemin d'accès dans macro
- Changer dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Acces rapide - Guide
3 réponses
Bonjour,
Oula!
Quel code!
Il y a certainement plus simple, mais voici ce que je te proposes.
En supposant que tes 17 fichiers aient le même nom sur chaque machine de ton réseau, tu peux :
1- choisir le répertoire ou sont enregistrés ces fichiers,
2- les ouvrir un par un
3- faire les modifs
4- enregistrer et fermer un par un
Regarde ce code :
Par contre, pour l'instant, il faut systématiquement relancer la macro pour faire les fichiers contenus ailleurs.
On verra cela par la suite.
Pour l'instant regarde et teste cette macro.
Oula!
Quel code!
Il y a certainement plus simple, mais voici ce que je te proposes.
En supposant que tes 17 fichiers aient le même nom sur chaque machine de ton réseau, tu peux :
1- choisir le répertoire ou sont enregistrés ces fichiers,
2- les ouvrir un par un
3- faire les modifs
4- enregistrer et fermer un par un
Regarde ce code :
Option Explicit
Sub MaProcedure()
Dim racine As String
Dim NomsFichiers(), i As Byte
'La variable NomsFichiers va stocker... les noms des fichiers à manipuler
NomsFichiers = Array("A2.2 - Quest éthique et comportement du dirigeant.xls", _
"A2.3 - Analyse matricielle des risques.xls", _
"B2.1 - Tests de procédures.xls", _
"A2.1 - Quest analyse risque ano significative CPE.xls", _
"B3.2 - Planification de la mission.xls", _
"B3.1 - Quest seuils signification.xls", _
"A4.1 - Feuilles des variations par cycles.xls", _
"B4.2.1 - Traitement confirmation des comptes fournisseurs.xls", _
"B4.2.2 - Traitement confirmation des comptes clients.xls", _
"B4.3 - Quest Inventaire physique.xls", _
"B4.4 - Feuilles de travail.xls", _
"B4.5 - Ratios clés.xls", _
"A5.1 - Quest de fin de mission.xls", _
"A5.3 - Note de synthese complementaire.xls", _
"B5.1 - Quest Controle de l'annexe.xls", _
"B5.3 - Quest preparation rapport comptes annuels.xls", _
"B5.7 - MAJ du dossier permanent.xls")
racine = ChoixDossier()
If racine = "" Then Exit Sub
'ICI ON VA BOUCLER SUR LES NOMS DES FICHIERS
For i = 0 To UBound(NomsFichiers)
'on ouvre un premier fichier
Workbooks.Open Filename:=racine & "\" & NomsFichiers
'--------------------------------------------------------------
'
'ICI TON CODE DE MODIFS DE CELLULES
'
'--------------------------------------------------------------
'enregistre et ferme
ActiveWorkbook.Save
ActiveWindow.Close
'fichier suivant
Next
End Sub
Function ChoixDossier()
'Sources :
'http://www.excel-downloads.com/forum/126930-vba-liste-dossiers-et-sous-dossiers-dun-dosssier.html
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Répertoire?")
End If
End Function
Par contre, pour l'instant, il faut systématiquement relancer la macro pour faire les fichiers contenus ailleurs.
On verra cela par la suite.
Pour l'instant regarde et teste cette macro.
Déjà merci beaucoup de la réponse et du temps que tu as pu passé :)
J'ai un peu de mal à tout comprendre mais bon^^
Mon problème c'est que le répertoire change à chaque fois que je change de dossier (70 dossiers différents)
Donc ce que je me demandais, c'était s'il existait comme répertoire en VBA, un répertoire qui permette d'aller dans le dossier du dessus donc à la racine en gros de ce dossier : Par exemple j'ai un fichier Z:\\blabla\bla\fichier1.xls
et je voudrais aller dans Z:\\blabla\bla\fichier2.xls
C'est pour ça que j'avais pensé à utiliser la convention "..\" qui ne marche pas ici^^
Sinon j'ai pas tout compris dans ton code, à quel endroit choisit-on le répertoire où il va aller chercher les fichiers ?
Et on choisit le répertoire de chaque fichier? ou on relance la macro pour chaque fichier?^^
En tout cas merci beaucoup j'vais tester voir si j'arrive à mettre ça en place :)
PS: ce code je ne l'ai pas fait moi même, je l'ai récupéré de la macro que j'avais enregistrée en faisant les manips moi même donc c'est sûr qu'il n'est pas très beau :p
J'ai un peu de mal à tout comprendre mais bon^^
Mon problème c'est que le répertoire change à chaque fois que je change de dossier (70 dossiers différents)
Donc ce que je me demandais, c'était s'il existait comme répertoire en VBA, un répertoire qui permette d'aller dans le dossier du dessus donc à la racine en gros de ce dossier : Par exemple j'ai un fichier Z:\\blabla\bla\fichier1.xls
et je voudrais aller dans Z:\\blabla\bla\fichier2.xls
C'est pour ça que j'avais pensé à utiliser la convention "..\" qui ne marche pas ici^^
Sinon j'ai pas tout compris dans ton code, à quel endroit choisit-on le répertoire où il va aller chercher les fichiers ?
Et on choisit le répertoire de chaque fichier? ou on relance la macro pour chaque fichier?^^
En tout cas merci beaucoup j'vais tester voir si j'arrive à mettre ça en place :)
PS: ce code je ne l'ai pas fait moi même, je l'ai récupéré de la macro que j'avais enregistrée en faisant les manips moi même donc c'est sûr qu'il n'est pas très beau :p