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

Liens hypertexte

FAB²

XLDnaute Nouveau
Bonjour,

et merci par avance à tous ceux qui prendront le temps de m'aider.

Mon besoin est le suivant.
j'ai plusieurs fichiers Excel répartis dans différents répertoires et un fichier qui récapitule certaines données.
Ce fichier de synthèse contient :
- dans la colonne A les liens hypertexte pointant vers chacuns des fichiers de détails (\\DMP\TOTO\REP1\Reporting\Projet aaaa.xls)
- dans la colonne B un nom d'onglet (Reporting Synthèse)
- dans la colonne C l'adresse de la cellule (K3)

et je souhaiterais que la colonne D contienne une formule me remontant des informations du fichier de détail et calculée depuis la chaine de caractére des colonnes A, B, C (='\\DMP\TOTO\REP1\Reporting\[Projet aaaa.xls]Reporting Synthèse'!$K$3)

Comment faire?
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Liens hypertexte

Bonjour FAB2 (Fabien ? Fabienne ?)

D'abord une ou deux macros évènementielles dans le code de la feuille (clic droit sur l'onglet et Visualiser le code), la 1ère si l'on modifie une cellule des colonnes A:C, la 2ème si l'on sélectionne une cellule des colonnes A: D :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:C")) Is Nothing Then Exit Sub
Call Calcul(Target)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A:D")) Is Nothing Then Exit Sub
Call Calcul(Target)
End Sub

Ces 2 macros déclanchent une 3ème macro (à placer dans un module) qui calcule (en entrant d'abord une formule) la cellule correspondante de la colonne D :

Code:
Sub Calcul(Target As Range)
Dim lig As Long, chemin$, onglet$, cel$, bar As Integer
On Error Resume Next
lig = Target.Row
chemin = Range("A" & lig)
onglet = Range("B" & lig)
cel = Range("C" & lig)
bar = InStrRev(chemin, "\") 'position de la dernière barre
chemin = Left(chemin, bar) & "[" & Right(chemin, Len(chemin) - bar) & "]"
With Range("D" & lig)
.Formula = "='" & chemin & onglet & "'!" & cel 'entre la formule en colonne D
.Value = .Value 'ne conserve que la valeur
End With
End Sub

On pourrait en plus utiliser une macro Workbook_Activate pour faire calculer toute la colonne D quand le classeur est activé. Je pourrai la faire si ça vous intéresse.

A+
 
Dernière édition:

Discussions similaires

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