Eric a un classeur partagé qui contient une base de données de quelque 3 500 enregistrements. Deux des cellules de chaque enregistrement contiennent une adresse e-mail et une URL. Lorsqu’un nouvel enregistrement est ajouté à la base de données, l’adresse de messagerie et l’URL s’affichent sous forme de texte normal au lieu de liens hypertexte. Pour en faire des liens hypertexte, Eric doit annuler le partage du classeur, apporter la modification, puis repartager le classeur. Eric se demande s’il existe, peut-être, un moyen plus simple de gérer cette situation.

Tout simplement, l’ajout et la modification de liens hypertexte ne sont pas autorisés lors de l’utilisation d’un classeur partagé. Le moyen le plus simple consiste à placer les liens dans des cellules séparées sous forme de texte, puis à utiliser la formule HYPERLINK pour référencer ces cellules.

Par exemple, si l’URL est entrée dans la cellule E2, vous pouvez utiliser la formule suivante dans une autre cellule:

=HYPERLINK(E2, E2)

Le premier argument de cette formule concerne la cellule qui contient l’adresse et le second argument concerne le texte à afficher pour le lien hypertexte. Cette approche nécessite deux colonnes supplémentaires (pour les formules HYPERLINK) mais ne nécessitera pas l’annulation du partage et le transfert du classeur.

La seule autre option consiste à créer une macro qui peut automatiser le processus d’annulation du partage et de transfert du classeur. La macro suivante le fera et convertira tout ce qui se trouve dans la cellule sélectionnée en un lien hypertexte.

Sub AddHyperlink()

Dim cell As Range

Application.DisplayAlerts = False

' Unshare the Workbook     If ActiveWorkbook.MultiUserEditing Then         ActiveWorkbook.ExclusiveAccess     End If

' Change address in cell to a hyperlink.

If ActiveCell = "" Then         ActiveCell.Hyperlinks.Delete     Else         For Each cell In Intersect(Selection, _           Selection.SpecialCells(xlConstants, xlTextValues))

With Worksheets(1)

.Hyperlinks.Add Anchor:=cell, _                   Address:=cell.Value, _                   ScreenTip:=cell.Value, _                   TextToDisplay:=cell.Value             End With         Next cell     End If

' Reshare the Workbook     If Not ActiveWorkbook.MultiUserEditing Then         ActiveWorkbook.SaveAs _           Filename:=ActiveWorkbook.FullName, _           AccessMode:=xlShared     End If End Sub

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (3155) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Converting_to_Hyperlinks_in_a_Shared_Workbook [Conversion en hyperliens dans un classeur partagé].