Changer localisation fichier dans macro

Bonjour,

J'ai cree pour mon entreprise un certains nombre de fichiers excel qui fonctionnent tous les uns en rapport avec les autres (Interfaces utilisateur/ base de donnees externe aux fichiers/ autre fichier pour analyser les donnees etc...).

Ceux-ci sont tous situes actuelement dans le meme dossier qu'on peut trouver sous:

U:\TPM\CLOSURES\Caplinie Linienbericht\produktion\2013

Les fichiers vont se remplir et s'alourdir au fur et a mesure du temps et donc les fichiers seront donc plus long a fonctionner.

Pour "eviter" ce probleme, un nouveau dossier sera cree chaque annee avec les meme fichiers (encore vides):

U:\TPM\CLOSURES\Caplinie Linienbericht\produktion\2014 / 2015 etc

Dans tous mes fichiers je fais appel aux differents classeurs en interaction en les nommant de cette facon:

Public Const workbook_name As String = "Z08_Linienführer.xlsm"
Public Const location_database As String = "U:\TPM\CLOSURES\Caplinie\Linienbericht\produktion\2013\Schichtfuhrer\Datenbank_Linienführer.xlsx"

Changer manuelement la localisation de tous les fichiers me prend moins de 5min. Mais vu que je ne compte pas travailler 50 ans dans cette entreprise, il faudrait qu'une personne ne connaissant rien en programmation puisse changer la localisation de la base de donnees ecrite dans chaque fichier en un click.

avez vous une idee?

Bonjour

A tester

Dans la procédure Workbook_Open

Private Sub Workbook_Open()
  location_database = "U:\TPM\CLOSURES\Caplinie\Linienbericht\produktion\"& Year(Date) &"\Schichtfuhrer\Datenbank_Linienführer.xlsx"
End Sub

Et dans un module standard il faut modifier la déclaration de tes variables

Public Const workbook_name As String = "Z08_Linienführer.xlsm"
Public location_database As String

Je pense que ton idee marcherait parfaitement.

Le seul gros soucis est que si on ne cree pas ce nouveau dossier le 31 decembre a minuit, il y aura un laps de temps durant lequel les fichiers seront inutilisables...

N'est il pas possible de creer une macro qui parcourt tous les fichiers excel d'un dossier (et si possible de ses sous-dossiers) pour modifier l'emplacement de la base de donnees dans les macros?

Au pire je peux inserer le lien de la base de donnees dans une cellule identique dans chaque fichier. Cette cellule pourrait donc etre facilement modifiable. Qu'en pensez vous?

Finalement j'ai trouve une solution "toute bete" en utilisant ce que tu proposais:

utiliser le chemin du fichier ouvert en l'appelant par son nom pour trouver ou se trouvera la base de donnees. Comme cela quelque soit le nom du dossier ou son emplacement, cela ne posera pas de probleme pour la suite.

Dans la procédure Workbook_Open:

Dim position As Integer
location_database = Workbooks(ActiveWorkbook.Name).Path

location_database = StrReverse(location_database)
position = InStr(1, location_database, "\")
location_database = Mid(location_database, position)
location_database = StrReverse(location_database)

location_database = location_database & "Schichtfuhrer\Datenbank_Linienführer.xlsx"

et reutiliser ce que tu disais dans un module standard

Public Const workbook_name As String = "Z08_Linienführer.xlsm"
Public location_database As String
Rechercher des sujets similaires à "changer localisation fichier macro"