Création de liens hypertextes sous excel lorsque le classeur est en partage.
En effet, lorsque le classeur excel est en partage, la creation de liens hypertextes n'est plus possible. Voici une petite série de code qui permet de créer des liens hypertextes sans devoir basculer en mode protégé.
On utilise pour ce faire, la fonction "=LIEN_HYPRTEXTE()". L'intérêt du code présenté est qu'il ne nécessite aucune autre manoeuvre que celles utilisées normalement. En effet, un simple clic droit sur la cellule sélectionnée fait apparaitre dans le menu déroulant un nouveau tag "Lien hypertexte" non grisé.
Il faudra toutefois créer une feuille supplémentaire que l'on peut cachée et qui reprendra les références pointés par la fonction "LIEN_HYPERTEXTE()".
Source / Exemple :
'Création d'un module
Module 1 :
'Appel de l'explorateur de fichier par API directement sur "comdlg32.dll"
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
'Dans "ThisWorkbook"
Private Sub Workbook_Open()
' A l'ouverture du fichier, création dans le menu excel clic droit d'un
'nouveau libellé "Lien Hypertexte" avec son icone associée.
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
.Caption = "Lien hypertexte"
.BeginGroup = True
.FaceId = 1576
.OnAction = "Feuil7.CommandButton1_Click"
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'A la fermeture du fichier, on élimine les libellés crées auparavants.
Application.CommandBars("Cell").Reset
End Sub
Dans la feuille
Sub C_Lien()
Dim q_Tot As String
Dim q_chem As String
Dim q_Fich As String
q_Tot = Application.GetOpenFileName()
If q_Tot = "Faux" Then Exit Sub
q_chem = CurDir(q_Tot)
q_Fich = Dir(q_Tot)
Sheets("Suivi général liens cachés").Cells(ActiveCell.Row, ActiveCell.Column) = q_Tot
Sheets("Suivi général liens cachés").Cells(ActiveCell.Row, ActiveCell.Column + 150) = q_Fich
ActiveCell.Formula = "=HYPERLINK('Suivi général lien'!RC,'Suivi général lien'!RC[150])"
End Sub
Conclusion :
Il est bien entendu possible d'améliorer les macros, le but ici étant simplement de donner un petit apperçu d'une solution acceptable pour la création de ces Liens Hypertextes lorsque le classeur est en partage, et sourtout de ne pas incommoder le profanne qui ne verra au final aucun changement par rapport a son utilisation habituelle de création de ces liens en classeur non partagés.
Bon amusement.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.