web-dev-qa-db-fra.com

Comment convertir une colonne d'URL de texte en liens hypertexte actifs dans Excel?

J'ai une colonne dans Excel, dans laquelle j'ai toutes les valeurs d'URL de site Web. Ma question est que je veux transformer les valeurs d'URL en liens actifs. Il y a environ 200 entrées dans cette colonne avec des URL différentes dans toutes les cellules. Est-il possible de créer des hyperliens actifs vers toutes les cellules sans écrire de macro?.

250
developer

Si vous ne souhaitez pas créer de macro et tant qu'une colonne supplémentaire ne vous dérange pas, créez simplement une nouvelle colonne à côté de votre colonne d'URL.

Dans la nouvelle colonne, entrez la formule =HYPERLINK(A1) (en remplaçant A1 par la cellule de votre choix). Ensuite, copiez la formule sur le reste des 200 entrées.

NOTE: Cette solution ne fonctionne pas si la cellule A1 contient une chaîne de plus de 255 caractères. Il en résulte une erreur #VALUE!

298
hawbsl

Créez la macro comme ici:

Dans le menu Outils de Microsoft Excel, pointez sur Macro, puis cliquez sur Visual Basic Editor. Dans le menu Insertion, cliquez sur Module. Copiez et collez ce code dans la fenêtre de code du module. Il se nommera automatiquement HyperAdd.

Sub HyperAdd()

    'Converts each text hyperlink selected into a working hyperlink

    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell

End Sub

Lorsque vous avez terminé de coller votre macro, cliquez sur Fermer et retourner à Microsoft Excel dans le menu Fichier.

Sélectionnez ensuite les cellules requises, cliquez sur macro et cliquez sur Exécuter.

NOTE Ne sélectionnez PAS la colonne entière! Sélectionnez UNIQUEMENT les cellules que vous souhaitez modifier en liens cliquables. Sinon, vous vous retrouverez dans une boucle sans fin et vous devrez redémarrer Excel! Terminé!

84
Steve Keenan

Voici un moyen que j'ai trouvé. Je suis sur un Mac utilisant Excel 2011. Si la colonne B contenait les valeurs de texte que vous souhaitez utiliser comme liens hypertexte, insérez cette formule dans la cellule C1 (ou D1 ou peu importe, tant qu'il s'agit d'une colonne libre): =HYPERLINK(B1,B1) This insérera un lien hypertexte avec l'emplacement en tant que texte du lien et le "nom convivial" en tant que texte du lien. Si vous avez une autre colonne qui a un nom convivial pour chaque lien, vous pouvez également l'utiliser. Ensuite, vous pouvez masquer la colonne de texte si vous ne voulez pas la voir.

Si vous avez une liste d'identifiants de quelque chose et que les URL sont toutes http://website.com/folder/ID, telles que:

A1  | B1
101 | http://website.com/folder/101
102 | http://website.com/folder/102
103 | http://website.com/folder/103
104 | http://website.com/folder/104

vous pouvez utiliser quelque chose comme =HYPERLINK("http://website.com/folder/"&A1,A1) et vous n'avez pas besoin de la liste des URL. C'était ma situation et a bien fonctionné.

Selon ce message: http://excelhints.com/2007/06/12/hyperlink-formula-in-Excel/ cette méthode fonctionnera également dans Excel 2007.

23
Marty

OK, voici une solution idiote, mais je ne peux tout simplement pas comprendre comment obtenir Excel pour évaluer une colonne d’URL en tant que liens hypertexte en bloc.

  1. Créez une formule, ="=hyperlink(""" & A1 & """)"
  2. Glisser vers le bas
  3. Copier la nouvelle colonne de formule
  4. Coller les valeurs spéciales uniquement sur la colonne d'origine
  5. Sélectionnez la colonne, cliquez sur Ctrl-H (pour remplacer), rechercher et remplacer = par = (force en quelque sorte la réévaluation des cellules).
  6. Les cellules doivent maintenant être cliquables en tant que liens hypertexte. Si vous voulez le style bleu/souligné, mettez en surbrillance toutes les cellules et choisissez le style Lien hypertexte.

Le style de lien hypertexte seul ne sera pas converti en liens cliquables, et la boîte de dialogue "Insérer un lien hypertexte" ne semble pas pouvoir utiliser le texte en tant qu'adresse pour un groupe de cellules en bloc. À part ça, F2 et Enter à travers toutes les cellules le feraient, mais c'est fastidieux pour beaucoup de cellules.

18
Indolent Coder

Moyen assez facile pour des listes plutôt courtes:

  1. Double-cliquez sur la case où se trouve l'URL
  2. Entrer

Vous avez votre lien;)

17
user3210679

Si l'ajout d'une colonne supplémentaire avec les hyperliens n'est pas une option, vous pouvez également utiliser un éditeur externe pour placer votre hyperlien dans =hyperlink(" et "), afin d'obtenir =hyperlink("originalCellContent").

Si vous avez Notepad ++, il s'agit d'une recette que vous pouvez utiliser pour effectuer cette opération de manière semi-automatique:

  • Copiez la colonne d'adresses dans Notepad ++
  • En gardant ALT-SHIFT enfoncé, déployez votre curseur du coin supérieur gauche au coin inférieur gauche et tapez =hyperlink(". Ceci ajoute =hyperlink(" au début de chaque entrée.
  • Ouvrir le menu "Remplacer" (Ctrl-H), activez les expressions régulières (ALT-G), et remplacez $ (fin de ligne) par "\). Ceci ajoute un guillemet fermé et une parenthèse fermée (à échapper avec \ lorsque les expressions régulières sont activées) à la fin de chaque ligne.
  • Collez les données dans Excel. En pratique, copiez simplement les données et sélectionnez la première cellule de la colonne dans laquelle vous souhaitez que les données se retrouvent.
6
Antonio

Cette méthode fonctionne pour moi en utilisant la fonction hyperlien:

=HYPERLINK("http://"&B10,B10)

B10 est la cellule contenant la version texte de l'URL (dans cet exemple).

6
Wasabihound

Avec Excel 2007 sous Windows, j'ai trouvé ces étapes les plus simples.

  1. Sélectionner des cellules avec les URL non actives
  2. Copie
  3. Coller comme hyperlien
5
Clumzoid

J'ai choqué Excel ne l'a pas fait automatiquement alors voici ma solution, je l'espère, serait utile pour les autres,

  1. Copier toute la colonne dans le presse-papier
  2. Ouvrez-le sur votre Chrome ou Firefox

data:text/html,<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

  1. Collez la colonne sur la page que vous venez d'ouvrir sur le navigateur et appuyez sur "Linkify"
  2. Copiez le résultat de l'onglet dans la colonne sur Excel

Au lieu de la deuxième étape, vous pouvez utiliser la page ci-dessous. Tout d’abord, cliquez sur "Exécuter l’extrait de code" puis collez la colonne dessus.

<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>
4
Ebrahim Byagowi

Essaye ça:

= HYPERLINK ("mailto:" & A1, A1)

Remplacez A1 par votre texte de cellule d'adresse e-mail.

Pour moi, je viens de copier toute la colonne contenant les URL au format texte dans une autre application (par exemple, Evernote). Lorsqu'elles y étaient collées, elles devenaient des liens, puis je les copiais dans Excel.

La seule chose à faire ici est de vous assurer que les données que vous copiez sont alignées avec le reste des colonnes.

2
AbuMariam

J'ai trouvé qu'aucune des méthodes ici ne fonctionnait si le lien hypertexte n'incluait pas http: // car ils étaient liés à des emplacements locaux.

Je voulais aussi protéger le script de toute erreur, car les utilisateurs ne pourraient pas le maintenir eux-mêmes et je ne serais pas disponible.

Il ne fonctionnera que sur les cellules de la plage sélectionnée si elles ne contiennent pas de points. Il ne fonctionnera que pour 10 000 cellules.

Sub HyperAdd()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
        If xCell.Formula = "" Or InStr(xCell.Formula, ".") = NotPresent Then
        'Do nothing if the cell is blank or contains no dots
        Else
            If InStr(xCell.Formula, " ") <> 0 Then
                CellsWithSpaces = CellsWithSpaces & ", " & Replace(xCell.Address, "$", "")
                 GoTo Nextxcell
            End If

            If InStr(xCell.Formula, "http") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "http://" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        End If
        i = i + 1
        If i = 10000 Then Exit Sub
Nextxcell:
      Next xCell
    If Not CellsWithSpaces = "" Then
        MsgBox ("Please remove spaces from the following cells:" & CellsWithSpaces)
    End If
Application.ScreenUpdating = True
End Sub
2
Cassiopeia

Vous pouvez insérer la formule =HYPERLINK(<your_cell>,<your_cell>) dans la cellule adjacente et la faire glisser tout en bas. Cela vous donnera une colonne avec tous les liens. Maintenant, vous pouvez sélectionner votre colonne d'origine en cliquant sur l'en-tête, un clic droit et en sélectionnant Hide.

1
th3an0maly

J'ai eu une liste de numéros qui alimentent dans les URL que je veux hotlinked. Par exemple, j'ai la colonne A avec les numéros de question (2595692, 135171) et je veux transformer ces numéros de question en liens dynamiques et afficher uniquement les numéros de question.

J'ai donc construit un hyperlien textuel pointant vers la colonne A et l'ai copié pour tous les numéros de mes questions:

= "= HYPERLINK (" & "" "http" "&" ":" "" & "" & "&" "" // stackoverflow.com/questions/"&A1&""""""""""&A1& ")"

Ensuite, je copie - colle cette colonne de liens hypertexte dans une autre colonne.

Vous vous retrouvez avec une colonne de texte qui ressemble à ce qui suit:

= HYPERLINK ("http" & ":" & "// stackoverflow.com/questions/2595692",2595692)

Ensuite, j'ai sélectionné ces éléments collés et exécuté la macro F2Entry qui suit:

Sub F2Enter()
Dim cell As Range
Application.Calculation = xlCalculationManual
For Each cell In Selection
    cell.Activate
    cell = Trim(cell)
Next cell
Application.Calculation = xlCalculationAutomatic
EndSub

J'ai ensuite supprimé la colonne de saisie de texte et la colonne A.

Je me suis retrouvé avec une seule colonne de numéros de questions reliées par un lien dynamique:

2595692

135171

etc.

À votre santé

1
RKO

Placez les URL dans un tableau HTML, chargez la page HTML dans un navigateur, copiez le contenu de cette page, collez-le dans Excel. À ce stade, les URL sont conservées en tant que liens actifs.

La solution a été proposée le http://answers.Microsoft.com/en-us/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-Excel-2008-a- list-of/c5fa2890-acf5-461d-adb5-32480855e11e par (MVP Jim Gordon Mac) [ http://answers.Microsoft.com/en-us/profile/75a2b744-a259-49bb- 8eb1-7db61dae9e78]

J'ai trouvé que ça fonctionnait.

J'ai eu ces URL:

https://Twitter.com/keeseter/status/578350771235872768/photo/1https://instagram.com/p/ys5ASPCDEV/https://igcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpghttps://Twitter.com/ranadotson/status/539485028712189952/photo/1https://instagram.com/p/0OgdvyxMhW/https://instagram.com/p/1nynTiiLSb/

Je les mets dans un fichier HTML (links.html) comme ceci:

<table>
<tr><td><a href="https://Twitter.com/keeseter/status/578350771235872768/photo/1">https://Twitter.com/keeseter/status/578350771235872768/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/ys5ASPCDEV/">https://instagram.com/p/ys5ASPCDEV/</a></td></tr>
<tr><td><a href="https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg">https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg</a></td></tr>
<tr><td><a href="https://Twitter.com/ranadotson/status/539485028712189952/photo/1">https://Twitter.com/ranadotson/status/539485028712189952/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/0OgdvyxMhW/">https://instagram.com/p/0OgdvyxMhW/</a></td></tr>
</table>

Ensuite, j'ai chargé le lien.html dans mon navigateur, copié, collé dans Excel et les liens étaient actifs.

1
Michael Osofsky

Merci Cassiopée pour le code. Je change son code pour travailler avec des adresses locales et apporte de petites modifications à ses conditions. J'ai enlevé les conditions suivantes:

  1. Remplacez http:/ par file:///
  2. Suppression de tout type de conditions d'espace blanc
  3. Modification de l'état de la plage de cellules 10k à 100k

Sub HyperAddForLocalLinks()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
            If InStr(xCell.Formula, "file:///") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "file:///" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        i = i + 1
        If i = 100000 Then Exit Sub
Nextxcell:
      Next xCell
    Application.ScreenUpdating = True
End Sub
1
Junaid

Si vous copiez le contenu du texte dans une nouvelle colonne et utilisez:

=HYPERLINK("http://"&B10,B10) 

sur votre colonne d'origine. Ensuite, utilisez le $ pour la colonne afin que cela ressemble à ceci:

=HYPERLINK("http://"&$B10,$B10)

C'est la seule façon dont cela a fonctionné pour moi sur Excel 2010 sous Windows 7. Vous pouvez copier la formule.

0
vanesaqy

Pour ceux qui débarquent ici avec Excel 2016, vous pouvez simplement mettre en surbrillance la colonne, puis cliquer sur l'onglet Hyperlink situé sur le ruban Home de la zone Styles.

enter image description here

Edit: Malheureusement, cela ne fait que mettre à jour le style de la cellule, pas la fonction.

0
jGroot