Ouvrir plusieurs liens hypertextes dynamiques
la cellule A1 du classeur qui contient la macro est sans doute protégée.
Bonjour,
Le fichier qui contient la macro est protégé par un mot de passe pour la modification en général. J'ai donc supprimé cette protection globale puis relancé la macro :
Erreur d'exécution '-2147221014 (800401ea)':
Impossible d'ouvrir le fichier spécifié.
Débogage > Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True est surligné
Bonjour,
Les derniers essais étant restés infructueux, je me permets de relancer ce sujet avec un fichier excel en exemple.
Les 4 liens hypertexte sont les fichiers que je dois ouvrir pour que les formules du bas fonctionnent.
Les choses sont identiques dans les autres onglets de mon fichier original donc ça fait beaucoup de fichiers source à ouvrir...
Merci encore.
Je retente ma chance
Pour résumé :
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.
Un grand merci par avance !
J'ai fini par réussir mais partiellement. Ce code VBA me permet d'ouvrir tous mes fichiers en une seule fois :
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 SubCe 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.
EDIT
J'ai utilisé cette méthode :
• Nommer mon fichier de travail
MonFichier = ActiveWorkbook.Name• Et je mets ceci à la fin de chaque ouverture de fichier source
Workbooks(MonFichier).ActivateProblème résolu !