Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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
1. Désolé
2. En effet sauf que je n'ai pas de solution sur l'un des forums et que sur l'autre, je n'ai pas de réponse depuis 1 an. Je ne pense pas que ce soit gênant, si ?
 

Pièces jointes

  • Modele.xlsm
    13.3 KB · Affichages: 56

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.
 

primokorn

XLDnaute Nouveau
J'ai utilisé cette méthode :
• Nommer mon fichier de travail
Code:
MonFichier = ActiveWorkbook.Name
• Et je mets ceci à la fin de chaque ouverture de fichier source
Code:
Workbooks(MonFichier).Activate

Problème résolu !
 

Discussions similaires

T
Réponses
2
Affichages
2 K
Timide
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…