XL 2010 Macro indiquant le chemin d’un autre fichier dont le nom est variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

echoflo68

XLDnaute Nouveau
Bonjour
Je viens d’écumer les forums et je ne trouve pas de solution à mon problème
J’ai un fichier nommé « coffre ». Dans l’onglet nommé « menu » de ce fichier, j’ai une liste déroulante qui me permet de changer le mois du fichier (chaque mois je crée un nouveau fichier pour le mois en cours )
Le fichier coffre contient une macro qui renvoie à un autre fichier Excel dont le nom est « inventaire - janvier » pour le mois de janvier, « inventaire-février » pour le mois de février ,etc

Donc chaque mois, il faut que je change manuellement le nom du fichier source dans la macro.
je cherche une formule qui permettrait de renvoyer au fichier qui a pour nom « inventaire - mois indiqué dans l’onglet menu »
J’espere que vous pourrez m’aider
 
Solution
Bonjour,
Comme dit : "Dans feuille Menu" signifiait que c'était une formule et non du VBA.

Texte n'est pas reconnu par VBA. Utilisez Format.
De plus vous avez oublié INDEX, ce qui est facheux. En VBA c'est Application.WorksheetFunction.Index.
De plus vous avez gardé les ; en VBA c'est ,
Enfin le format en anglais est mmm-yy et non mmm-aa.

Donc :
Workbooks.Open Filename:= _
"\\spars-fic02\FRABEL-Suivi_Coffre_Glory\Conso - Inventaire - " & Format(Application.WorksheetFunction.Index(Range("af10:af29"), Range("ag10")), "mmm-yy") & ".xlsm"

Je l'ai testé, la syntaxe est bonne.
Bonjour.
Merci de vos retours, mais cela ne correspond pas à ce que je veux faire.
J'avais déjà tenté la solution de sylvanu , mais le problème est que mon fichier "conso -inventaire - mois" est alimenté en décalé. Donc pour mettre à jour mon fichier "coffre" jusqu'au 31 janvier, je devrai attendre le 1er février afin que le tableau "conso-inventaire-janv20" soit alimenté. Du coup la formule "inventaire-"&TEXTE(AUJOURDHUI();"mmm-aa")&"xlsm" renverra au fichier de février au lieu de celui de janvier.
J'ai mis ci-joints mes 2 fichiers.
Chaque mois le fichier "conso-inventaire-..." change de nom: il prend le nom figurant dans le fichier "coffre glory", dans l'onglet menu, liste déroulante "mois"

Merci d'avance pour vos réponses
 

Pièces jointes

Bonsoir,
Si j'ai tout compris :
Dans feuille Menu : ="Inventaire - " &TEXTE(INDEX(AF10:AF29;AG10);"mmm-aa") & ".xlsm"
Récupère le nom du mois dans la liste des mois indexé du mois choisi puis le met sous la bonne forme avec Texte.
 
Bonjour,
j'ai essayé la macro de Sylvanu mais sans succès. Cela me renvoie un message d'erreur "erreur de compilation - Attendu séparateur de liste ou ) " entre af10:ag29
En fait ma macro est comme suit pour ouvrir le fichier en question en indiquant le chemin. Voici ce que j'ai écris et qui me renvoit le message d'erreur


Workbooks.Open Filename:= _
"\\spars-fic02\FRABEL-Suivi_Coffre_Glory\Conso - Inventaire - "&TEXTE(af10:af29;ag10);"mmm-aa")&"xlsm"


Je pense qu'il lui manque un bout pour lui dire où aller chercher le texte, mais je ne sais pas comment l'écrire
 
Bonjour,
Comme dit : "Dans feuille Menu" signifiait que c'était une formule et non du VBA.

Texte n'est pas reconnu par VBA. Utilisez Format.
De plus vous avez oublié INDEX, ce qui est facheux. En VBA c'est Application.WorksheetFunction.Index.
De plus vous avez gardé les ; en VBA c'est ,
Enfin le format en anglais est mmm-yy et non mmm-aa.

Donc :
Workbooks.Open Filename:= _
"\\spars-fic02\FRABEL-Suivi_Coffre_Glory\Conso - Inventaire - " & Format(Application.WorksheetFunction.Index(Range("af10:af29"), Range("ag10")), "mmm-yy") & ".xlsm"

Je l'ai testé, la syntaxe est bonne.
 
Génial. Merci beaucoup Sylvanu, j'ai enfin réussi à faire fonctionner la macro.
Il a juste fallu que je précise l'onglet où se situaient les cellules indexées, la macro s'exécutant dans un autre onglet de celui qui contenait les cellules af10:af29.
Au final, cela a donné cela:

Workbooks.Open Filename:= _
"\\spars-fic02\FRABEL-Suivi_Coffre_Glory\Conso - Inventaire - " & Format(Application.WorksheetFunction.Index(Worksheets("MENU").Range("af10:af29"), Worksheets("MENU").Range("ag10")), "mmm-yy") & ".xlsx"


Merci mille fois encore. Je désespérais de trouver la solution à mon problème
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
572
Réponses
2
Affichages
315
Retour