[Débutant] Exécuter lien Hypertexte

Bonjour à tous,

Je suis débutant en VBA et j'aimerai créer un bouton qui va ouvrir le lien hypertexte d'une cellule donnée,

Je pense que c'est un sujet très simple mais mes recherches m'ont donné que des sujets plus complexe...

Merci d'avance pour vos réponses,

Bonne journée,

Bonjour Poseydon,

Voici la solution que je propose si admettons le lien est dans la cellule F5

Sub bouton_lien()
Range("F5").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

Macro a affecté à un bouton

j'espère ça répond à ta question

@+

Merci Boshupp pour ta réponse rapide !

Je pense qu'on est pas loin de solution,

J'ai juste une erreur lors de l'exécution (Erreur 9), pour un problème d'indice, mais je ne comprend pas où il y a un indice dans la ligne surlignée..

Merci d'avance,

image image

Re,

Essaie de cette ligne de code :

Selection.Hyperlinks(1).Follow

Enfaite, ton premier programme est bon !

J'ai juste oublié de préciser que le lien était un chemin pour ouvrir un dossier et non pas un lien internet (Pour information, ça fonctionne avec un lien internet). Je te met la version non masquée et épurée de mon excel.

image

Donc cela fonctionne ?

Oublies pas de clôturer le sujet si tu as ta réponse ça pourrait servir à d'autre :)

A+

Bonjour Poseydon

Bonjour à tous deux.

J'ai créé deux liens un par "Insérer/Lien" en A1 et l'autre par "=LIEN_HYPERTEXTE" en B1, le premier fonctionne bien, le deuxième me donne un erreur d'execution 9 avec ou sans parametre à follow

Idem Poseydon

Quand j'ai l'erreur 9 si j'insere la ligne Msgbox Selection.Hyperlinks.Count j'obtiens 0 (zéro)

Edit : La formule LIEN_HYPERTEXTE accepte les liens UNC mais je ne peux pas vérifier , j'ai corriger mon erreur 9 dans LIEN_HYPERTEXTE qui prenait un lien web en ajoutant devant http://

Non ça ne fonctionne pas encore (Désolé je me suis mal exprimé).

Mais oui j'ai le même problème que Scraper, c'est la fonction "LIEN_HYPERTEXTE" qui déconne,

Bien à vous,

Bonjour Scraper

Si ce n'est pas pour apporter une solution, merci de créer votre propre sujet SVP

@Poseidon, un lien intégré dans la fonction LIEN_HYPERTEXTE, n'est pas un lien hypertexte à proprement dit
Il faut récupérer la valeur de la cellule

Edit : ceci dit hyperlinks(.value).Follow ne fonctionne pas non plus

A+

Re Poseydon,

En effet, le lien que j'avais insérer je n'avais pas utilisé la fonction Lien_Hypertexte

Peux tu préciser ce qui fonctionne pas, car de mon côté je ne rencontre aucun soucis

Merci BrunoM45

Je ne manquerais pas d'appliquer tes conseils.

Je viens juste essayer d'aider à la résolution du problème.

J'ai trouvé cela dans une discussion sur le web, les "back-slash" deviennent des "slashs" : dans l'exemple donné le lien est un lien vers un fichier et non vers un dossier

=LIEN_HYPERTEXTE("file:////server1/share1/folder1/folder2/filename.xls")

@Boshupp, j'ai indiqué ce qui n'allait pas

Pour expliciter, s'il faut, Hyperlinks(1) renvoi une erreur 9 car il n'existe pas de lien dans la cellule,
seulement une fonction qui donne un lien

Oui c'est exactement ça @BrunoM45,

Enfaite je récupère le chemin de mon fichier dans une base de donnée avec RECHERCHEV ce qui supprimer le lien hypertexte et c'est pour cette raison que j'ai ajouté LIEN_HYPERTEXTE devant la recherche..

Et effectivement le Hyperlinks(1) ne le détecte pas comme un lien hypertexte...

Donc au lieu de générer des liens avec des formules LIEN_HYPERTEXTE si on veut aussi tester les liens d'une macro VBA avec follow, ne faut t'il pas créer les liens dans les cellules en VBA avec Hyperlinks.Add

Re,

@scraper, non il suffit de tester la cellule

If MaCellule.Hyperlinks.Count = 0 then
Else
Endif

Le GROS avantage de la fonction LIEN_HYPERTEXTE c'est que les liens ne sont jamais cassés

@Poseydon, mieux vaut utiliser l'explorateur Windows pour ouvrir le lien
Sinon vous aurez le même message à mon avis

Shell "explorer.exe " & Range("F5").Value

A+

Re

@BrunoM45

Range("F5").Value me retourne le deuxieme champ du LIEN_HYPERTEXTE soit le texte que l'on veut visualiser et pas forcément le lien à lancer l'explorateur (si fichier sur serveur) ou à lancer dans le browser Internet si URL Web.

Je récupére l'adresse (ici variable link) ainsi

Text = Range("F5").FormulaR1C1
Pos1 = InStr(Text, Chr(34))
pos2 = InStr(Pos1 + 1, Text, Chr(34))
link = Mid(Text, Pos1 + 1, pos2 - Pos1 - 1)

Re,

Effectivement,
j'avais zappé cette subtilité, lorsqu'on met le 2ème paramètre, mais il y a plus ergonomique

  Dim sLien
  sLien = Range("F5").Formula
  sLien = Left(sLien, InStr(1, sLien, ",") - 2)
  sLien = Replace(Mid(sLien, 2), "=HYPERLINK(", "")

A+

Bonjour à tous.

Un de mes vieux fichiers qui utilisait les deux versions de macro.

L' une pour ouvrir des liens ajouté dans une cellule ; l'autre pour ouvrir les liens composées par formule dans une cellule.

Rechercher des sujets similaires à "debutant executer lien hypertexte"