macro lien hypertexte et fermetrure

H

heather

Guest
bonjour à tous, un petit probleme de macro

dans un classeur nommé 'sommaire general'
j'ai une image avec un lien hypertexte qui pointe
vers un classeur nommé 'pilotage manager'

je souhaite réaliser une macro qui :

lorsque je clique sur l'image
execute le lien hypertexte
ouvre le classeur 'pilotage manager'
et enregiste et ferme le classeur 'sommaire general'

j'ai réalisé cette macro qui ne fonctionne pas merci par avance pour votre aide

Selection.ShapeRange.Item(1).Hyperlink.Follow NewWindow:=False, AddHistory _
:=True
ActiveWorkbook.Select
Range('A1').Select
Windows('Sommaire général.xls').Activate
Range('A1').Select
ActiveWorkbook.Close savechanges:=True
 
V

visiteur

Guest
bonjour heater

LienHypertexte

Excel 2000 : il est possible de créer un raccourci ou un lien hypertexte qui ouvre un autre document stocké

sur votre disque dur, un serveur réseau, sur un réseau Intranet ou sur Internet.
Lorsque vous cliquez sur la cellule contenant la fonction LIEN_HYPERTEXTE, Microsoft Excel ouvre le

fichier stocké à l'adresse 'emplacement_lien'.

Pour ce faire, il suffit de saisir la formule suivante :
=LIEN_HYPERTEXTE(emplacement_lien;nom_convivial)
L'argument nom_convivial représente le texte de renvoi ou la valeur numérique qui s'affiche dans la cellule.

Le contenu de la cellule est affiché en bleu et souligné.

Si vous ne spécifiez pas l'argument nom_convivial, la cellule affiche l'argument emplacement_lien comme

texte de renvoi.
Les deux arguments doivent être entre guillemets.

Il est possible de créer des liens hypertextes en appliquant la formule suivante :
=LIEN_HYPERTEXTE(', 'Cliquez ici pour afficher le rapport')
Cet exemple ouvre la feuille de calcul Rapport 'budget.xls' stockée sur Internet à l'adresse

'www.entreprise.fr/rapport' et affiche le texte 'Cliquez ici pour afficher le rapport'.

L'exemple suivant crée un lien hypertexte vers la cellule F10 dans la feuille de calcul 'Annuel' du classeur

Rapport 'budget.xls', lequel est stocké sur Internet à l'adresse 'www.entreprise.fr/rapport'.
La cellule de la feuille de calcul contenant le lien hypertexte affiche le contenu de la cellule D1 comme texte

de renvoi :
=LIEN_HYPERTEXTE('[http://www.entreprise.fr/rapport/budget.xls]Annuel!F10', D1)

creer un lien hypertexte paar macro.
Sheets('Feuil1').Hyperlinks.Add Anchor:=Sheets('Feuil1').Range('A1'), Address:='', SubAddress:= _
MyValue.Name & '!A1', TextToDisplay:='lien créé'
 

natbru

XLDnaute Occasionnel
Bonjour Heather,

Essaie avec ca :
Code:
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Windows('Sommaire générale.xls').Activate
    ActiveWorkbook.Close savechanges:=True

Ca fonctionne lorsque tu te places sur la cellule contenant ton lien hypertexte et que tu exécute la macro.

Il faudrait la placer dans le code de la feuille et en faire une macro évenementielle mais là, ca sors de mes compétences et je passe le relais à quelque de plus expérimenté que moi...

Bon courage.
 

Dan

XLDnaute Barbatruc
Bonjour Heather,

Une chose que je comprends pas c'est pourquoi tu utilises une macro pour cela puisque tu peux

soit avoir le lien hypertexte est en dessous de ton image et via menu / insertion / lien hypertexte tu peux facilement atteindre ton classeur.

Soit tu cliques droite sur ton image et tu chosis l'option lien hypertexte pour définir le fichier à atteindre.

:)
 
H

heather

Guest
je te remercie pour ton interet sur mon probleme de macro

en fait les liens hypertextes existent déjà selon la procedure que tu indiques.

Simplement j'ai constituté un ensemble de classeurs reliés par des liens hypertextes et mon probleme est qu'il est génant d'avoir de nombreux classeurs ouverts simultanements que je dois fermer manuelement

Je souhaite automatiser le fait que dés que je clic sur un lien pour passer à un autre classeur
celui se suvegarde et se ferme automatiquement
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir heather, visiteur, natbru, Dan,

Si tu mets ton lien directement dans une cellule (plutôt que sur un Shape), tu obtiendras facilement ce que tu cherches à faire en utilisant la procédure évènementielle suivante dans le module de code de l'objet ThisWorkbook :

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
      ThisWorkbook.Close SaveChanges:=True
End Sub
Attention toutefois, par cette procédure, un clic sur n'importe quel lien entrainera d'office la fermeture du classeur en cours. Il conviendra donc certainement d'adapter cette procédure en conséquence... Tu peux, par exemple, utiliser 'Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)' dans le module de code de la feuille concernée pour restreindre l'effet aux liens contenus dans cette feuille uniquement...

Cordialement,
 

Discussions similaires

Réponses
21
Affichages
1 K