XL 2010 [Résolu] Ouvrir plusieurs fichiers ayant des variables en un seul clic

primokorn

XLDnaute Nouveau
Bonjour,

Depuis des mois, je galère à trouver une solution à mon problème. Je précise tout de suite, c'est Excel 2012 à mon boulot donc impossible d'installer des modules complémentaires.

Voilà l'histoire
icon_smile.gif


Mon fichier va chercher des données dans différents fichiers sources. Le chemin d'accès de ces fichiers sources changent tous les mois.
Pour rendre mon fichier final dynamique, j'utilise :
• la formule LIEN_HYPERTEXTE avec des variables (une cellule pour le mois U1 et une autre pour l'année T2)
Exemple : =LIEN_HYPERTEXTE("\\serveur\secteurs\Daf\40_Filiales\Reporting Mensuel\8 pages\Réel FY"&T2&"\"&TEXTE(U1;"00")&" FY"&T2&"\Reporting package IBERICA "&TEXTE(U1;"00")&".FY"&T2&".xlsm";"RP Espagne")

• la formule INDIRECT également avec des variables
Exemple : =INDIRECT("'\\serveur\secteurs\Daf\Dcb\BASE FIN\Consolidation\FY"&$T$2&"\"&TEXTE($U$1;"00")&" FY"&$T$2&"\Livrables\P&L\[P&L réél brut FY "&$T$2&" "&TEXTE($U$1;"00")&".xls]"&TEXTE($U$1;"00")&"'!$"&B$1&"$"&$S4&"";VRAI)
B1 étant une référence pour la colonne et S4 pour la ligne dans les fichiers source

Sans module complémentaire, je n'ai pas d'autre choix que d'ouvrir chaque fichier source (LIEN_HYPERTEXTE) pour que mes formules INDIRECT fonctionnent. Dans le cas contraire, j'obtiens un beau #REF!

Ayant une bonne dizaine de fichiers source à ouvrir (qui ne sont pas forcément dans les mêmes dossiers), je voudrais rassembler tous les LIEN_HYPERTEXTE dans un seul bouton/macro/code. Un clic et toutes les sources s'ouvrent.

J'espère avoir été clair, j'ajoute un fichier joint pour l'exemple.
Un grand merci par avance !
 
Dernière édition:

primokorn

XLDnaute Nouveau
J'ai fini par réussir mais partiellement. J'ai posé la question à 3 endroits différents alors je poste aussi mes trouvailles...

Ce code VBA me permet d'ouvrir tous mes fichiers en une seule fois :
Code:
Sub open_links()
'
' open_links Macro
'

'
' Ouverture P&L brut
  Range("A1").Select
  Workbooks.Open Filename:= _
  "\\serveur\Daf\Dcb\BASE FIN\Consolidation\FY" & Right(Range("T2"), 2) & "\" & Right(Range("U1"), 2) & " FY" & Right(Range("T2"), 2) & "\Livrables\P&L\P&L réél brut FY " & Right(Range("T2"), 2) & " " & Right(Range("U1"), 2) & ".xls" _
  , UpdateLinks:=0
  ActiveWindow.Visible = False
  Windows("P&L réél brut FY " & Right(Range("T2"), 2) & " " & Right(Range("U1"), 2) & ".xls").Visible = True
  Windows("Septembre.xlsm").Activate
' Ouverture RP Y
  Workbooks.Open Filename:= _
  "\\serveur\Daf\40_Filiales\Reporting Mensuel\8 pages\Réel FY" & Right(Range("T2"), 2) & "\" & Right(Range("U1"), 2) & " FY" & Right(Range("T2"), 2) & "\Reporting package filialeX " & Right(Range("U1"), 2) & ".FY" & Right(Range("T2"), 2) & ".xls" _
  , UpdateLinks:=0
  ActiveWindow.Visible = False
  Windows("Reporting package filialeX " & Right(Range("U1"), 2) & ".FY" & Right(Range("T2"), 2) & ".xls").Visible = True
  Windows("Septembre.xlsm").Activate
' etc avec les autres fichiers
' T2 c'est l'année et U1 le mois
End Sub
Ce code ouvre les fichiers et les laissent ouverts. On peut les ouvrir tout en les masquant en supprimant les 2 dernières lignes de chaque partie soit Windows("..........").Visible = True et Windows ("......").Activate

En gardant ce code, je voudrais que la ligne Windows(".........").Activate soit dynamique.
Actuellement, mon fichier de travail c'est September.xlsm mais ça sera Octobre.xlsm le mois prochain.
Si les fichiers que j'ouvre en automatique sont visibles, alors la macro doit repasser obligatoirement par mon fichier de travail pour pouvoir ouvrir les fichiers restants.

Merci.
 

Discussions similaires

T
Réponses
2
Affichages
2 K
Timide
T

Statistiques des forums

Discussions
315 093
Messages
2 116 132
Membres
112 667
dernier inscrit
foyoman