Insérer un lien hypertexte en VBA Excel

Signaler
Messages postés
36
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 mars 2013
-
thomasf007
Messages postés
36
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 mars 2013
-
Bonjour à tous,

J'ai un programme qui permet de m'organiser au boulot sur mes déplacement. Tout s'est bien passé pour ce qui est des dates, nom, pays,ect...
Je souhaiterai insérer dans une cellule dédié à cela, un liens hypertextequi ramène directecment dans le dossier qi a le rapport, les notes de frais, toutes els données koi....
J'ai essayé avec une macro mais je m'en sors pas.
Je souhaiterai lancer ça avec un bouton sur la feuille excel.
Quelqu'un pourrait - il m'aider, m'orienter?

Merci

ThomasF

5 réponses

Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
salut,

ok donc au final ce n'est pas un lien puisque tu le lances depuis un bouton?...

copie ce code dans un module ou dans la feuille de code du classeur :



<hr />
'    OUVRIR UN DOCUMENT / LANCER UN EXECUTABLE
'    http://www.codyx.org/snippet_ouvrir-document-lancer-executable_25.aspx#1548
'    Posté par [ PCPT ] le 05/11/2007
<hr />




Private Declare Function 
ShellExecute 
Lib
"shell32.dll" 
Alias 
"ShellExecuteA" 
(
ByVal 
hwnd 
As Long

ByVal 
lpOperation 
As String
,
ByVal
lpFile
As String
,
ByVal
lpParameters
As String
,
ByVal
lpDirectory
As String
,
ByVal
nShowCmd
As Long
)
As
Long


Public Sub 
StartProcess(
ByVal 
sFile 
As String
,
Optional ByVal
sParameters
As String
= vbNullString)

    ShellExecute 0&, "open", sFile, sParameters, vbNullString, 1&
End Sub





et dans le code du bouton :




StartProcess 
"N:\Mon
dossier"   
'<- ouvre l'explorateur à cette
arborescence







++


Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
36
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 mars 2013

En fait, le bouton est sur la feuille de calcul, il faudriat qu'il ouvre la fenêtre d'exploration à un dossier qui s'appelle "MISSSIONS", et à partir de là, on peut selection, les pays qu'on veut (Dossier egalement). Je souhaiterai qu'une fois l'arborescence trouvé, en faisant valider, il insère dans la cellule sélectionné le lien hypertexte. Comme cela, si on veut consulter quelque chose à telle date, on clik sur le lien et la fenetre s'ouvre avec toute les données approprié.
En fait, c'est comme si on faisait "Insertion" --> "Liens hypertexte" avec la souris. Mais là, j'aimerai le faire avec VBA, après l'ecriture sur les cellules, mon programme reverrouille la feuille.
Donc, si j'insère un liens hypertexte en mode classique, ça me prendre 10 fois + de temps.

Voilà, j'espère que tu as compris.

ThomasF
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
re,

c'est un plus clair en effet : tu veux que le click ouvre une boite de dialogue de recherche de dossier, résultat (chemin) alors mis dans le lien d'une cellule

la partie "boite de dialogue" se trouve ici :



<hr />
'    BOITE DE DIALOGUE POUR CHOISIR UN RÉPERTOIRE
'    http://www.codyx.org/snippet_boite-dialogue-pour-choisir-repertoire_512.aspx#1608
'    Posté par [ us_30 ] le 08/12/2007
<hr />





Function DirOpen() As String
' CHOIX D'UN DOSSIER PAR
VBA

    Dim fd As FileDialog
    Set fd =
Application.FileDialog(msoFileDialogFolderPicker)
    Dim vrtSelectedItem As
Variant
    With fd
        If .Show = -1 Then
            For Each
vrtSelectedItem In .SelectedItems
               
DirOpen = vrtSelectedItem
            Next
vrtSelectedItem
        Else
           
DirOpen = VbNulllString
        End If
    End
With
    Set fd = Nothing
End
Function






par contre ne faisant pas de VBA, je ne sais pas comment créer le LINK
peut-être juste au niveau du format de la cellule, avec alors le retour de la fonction
DirOpen

ci-dessus



Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
bonjour
Si ce que tu veux obtenir par "Insertion/ Lien hypertexte" tu peux aussi l'obtenir via "Insertion / Fonction / =LIEN_HYPERTEXTE(cellule)" tu disposes d'une autre méthode

1ere méthode VBA
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://www.google.fr", TextToDisplay:="google france"

2ème méthode VBA
ActiveSheet.Cells("A1").FormulaR1C1 = "=LIEN_HYPERTEXTE("http://www.google.fr")"

L'adresse du lien hypertexte peut être une url   "file://nom_serveur/nom_ressource/dossier/sous-dossier/fichier"

Une fenêtre explorateur s'ouvrira alors.

La 2ème methode permet aussi de ne pas utiliser VBA , c'est pas plus mal
Messages postés
36
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 mars 2013

Merci de votre aide

ThomasF