Générer un lien hypertexte via macro (presque résolu).. Ca y'est [Résolu/Fermé]

Signaler
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
-
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
-
Bonjour la communauté
Je souhaite générer un lien hypertexte par macro suivant la modification d'une cellule.
J'ai ce code qui fait ce que je veux mais qui m'oblige à 2 petites manip supplémentaires

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim lien As String
lien = Worksheets("Enregistrements").Cells(4, 2).Value
If Target.Address = "$B$4" Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="\\serveur\Répertoire1" & lien & ".docx"
End If

End Sub

1° manip supplémentaire:
L'événement Worksheet_SelectionChange me place "\\serveur\Répertoire1\.docx" dans la cellule de destination. A la limite c'est normal au vu de l'événement appelé, mais avec l'événement Worksheet_Change, il semblerait que la macro ne fonctionne pas. Mon lien se génère sur la cellule que je sélectionne en suite.
Il faut donc que je rentre une valeur dans ma case B4 pour compléter mon lien hypertexte.
A partir de la, 2° manip supplémentaire:
sortir de la cellule B4 et la sélectionner à nouveau pour que le lien final soit actif soit \\serveur\Répertoire1\mon fichier

Au bout du bout du bout, je parviens à un résultat qui me permet de faire ce que je veux, à savoir accéder au fichier que j'aurais précisé dans la cellule B4 et je vivrais avec si je n'ai pas de réponse, mais connaîtriez vous le moyen de m'éviter ces 2 manipulations intermédiaires?

Merci de votre intérêt à mon problème.
Cordialement

1 réponse

Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
122
Re-Bonjour
Bon en bidouillant un peu, j'ai réduit le nb de manip à 1
Comme je me doutais que mon pb venais du fait que j'utilisais le target.address sur la cellule que je modifias, j'ai modifié mon code comme suit:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim lien As String
lien = Worksheets("Enregistrements").Cells(4, 2).Value

If Target.Address = "$B$5" Then
Range("B4").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="\\FER\ENGS\03 - Administratif\DEVIATIONS\" & lien & ".docx"
End If

End Sub
Et en continuant de bidouiller, en rajoutant
Range("C4").select
avant le 'End if', je supprime ma manip supplémentaire.

Bon ok, en travaillant un peu avant de me précipiter vers vous, je n'aurais pas eu besoin de ce post, mais au moins il pourra servir à quelq'un d'autre.