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

275

J'ai une colonne dans Excel, dans laquelle j'ai toutes les valeurs d'URL du 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. Existe-t-il un moyen de créer des hyperliens actifs vers toutes les cellules sans écrire de macro.

développeur
la source

Réponses:

314

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

Dans la nouvelle colonne, tapez la formule =HYPERLINK(A1)(en remplaçant A1 par la cellule qui vous intéresse). Copiez ensuite la formule dans le reste des 200 entrées.

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

hawbsl
la source
2
Si ma colonne A contient 200 valeurs de lien, est-il possible d'écrire une formule qui créerait un lien hypertexte entre les 200 valeurs et la réécrirait dans la colonne A, au lieu de créer une nouvelle colonne?
développeur
1
Excellent! La meilleure chose est que cette étape est si simple que je peux transmettre des fichiers CSV à un profane et il peut en générer facilement des URL.
Cardin Lee JH
3
Pour que ce soit une seule colonne, copiez simplement la colonne du lien hypertexte et "collez la valeur" dans la colonne que vous souhaitez conserver.
Mike
1
Cette réponse doit être acceptée, car elle résout la plupart des cas d'utilisation.
Jay
Masquer la colonne brute qui n'est pas un hyperlien
RickAndMSFT
94

Créez la macro comme ici:

Dans le menu Outils dans 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 revenir à Microsoft Excel dans le menu Fichier.

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

REMARQUE Ne sélectionnez PAS toute la colonne! Sélectionnez UNIQUEMENT les cellules que vous souhaitez changer en liens cliquables sinon vous vous retrouverez dans une boucle sans fin et devrez redémarrer Excel! Terminé!

Steve Keenan
la source
2
Ajoutez Dim xCell As Range si vous utilisez l'option explicite. +1 pour une solution qui change la cellule (comme demandé) et fournit le code qui le fait.
Praesagus
Cela a bien fonctionné pour moi, étant donné que j'avais environ 50 000 liens dans une feuille de calcul qui avait besoin d'une mise à jour et que je devais le faire en morceaux ou Excel se planterait.
ATek
2
Pour transformer les adresses e-mail en hyperliens, passez Address:=xCell.FormulaàAddress:="mailto:" & xCell.Formula
Danny Beckett
De plus, pour les URL ne commençant pas par http://cela, il faut ajouter (utilisez la modification ci-dessus, mais remplacez mailto:par http://. Sinon, les hyperliens ne fonctionnent pas.
Danny Beckett
1
Fonctionne très bien. FYI Excel 2016 a une limite de 66 530 hyperliens par feuille de calcul, alors attendez-vous à une éventuelle erreur d'exécution si vous dépassez cela. support.office.com/en-us/article/…
Christopher O'Brien
24

Voici un moyen que j'ai trouvé. Je suis sur un Mac utilisant Excel 2011. Si la colonne B avait les valeurs de texte que vous souhaitez être des liens hypertexte, mettez cette formule dans la cellule C1 (ou D1 ou quoi que ce soit tant qu'il s'agit d'une colonne libre): =HYPERLINK(B1,B1) cela insérera un lien hypertexte avec l'emplacement comme texte du lien et le "nom convivial" comme 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 souhaitez pas la voir.

Si vous avez une liste d'ID de quelque chose, et les URL étaient 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 pourriez utiliser quelque chose comme =HYPERLINK("http://website.com/folder/"&A1,A1)et vous n'auriez pas besoin de la liste des URL. C'était ma situation et cela a bien fonctionné.

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

Marty
la source
Fonctionne sous Windows, Excel 2013 et est une excellente alternative à une colonne supplémentaire.
mdisibio
Pour info, pour Open Office, ce qui précède a donné une erreur mais il semble que = HYPERLINK (C1) fonctionne si on ne lui donne qu'un seul paramètre
tonypdmtr
19

OK, voici une solution hokey, mais je n'arrive pas à comprendre comment obtenir Excel pour évaluer une colonne d'URL en tant que liens hypertexte en vrac.

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

Le style de lien hypertexte seul ne se convertira pas en liens cliquables, et la boîte de dialogue "Insérer un lien hypertexte" ne semble pas utiliser le texte comme adresse pour un groupe de cellules en bloc. Mis à part cela, F2et à Entertravers toutes les cellules le ferait, mais c'est fastidieux pour beaucoup de cellules.

Codeur indolent
la source
3
Il suffit de faire ((HYPERLINK (INDIRECT (ADDRESS (ROW (), COLUMN () + 1)), "Dress" & ROW ())) c'est plus facile
Nick Turner
D'accord, c'est la meilleure réponse qui ne nécessite pas de maintenir 2 colonnes.
mat
+1 Pour le remplacement '=' -> '='. c'est ce que je recherche. Merci.
Développeur
18

Un moyen assez simple pour des listes plutôt courtes:

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

Vous avez votre lien;)

user3210679
la source
14
J'utilise F2 pour modifier une cellule, puis je saisis plusieurs fois pour parcourir rapidement ma liste. Facile. Je vous remercie!
Bryan Ash
1
Cela plus le commentaire sur F2 m'ont juste amené à une colonne de 160 hyperliens en environ une minute. Alors oui, c'est la voie à suivre si la colonne est assez courte.
Trevor Brown
Je ne pense pas que cela puisse être une solution pour quelqu'un avec des centaines de cellules à convertir.
Ma3x
J'ai 287 000 lignes. Pleurer.
thejohnbackes
12

Si l' ajout d'une colonne supplémentaire avec les hyperliens n'est pas une option, l'alternative consiste à utiliser un éditeur externe pour enfermer votre hyperlien dans =hyperlink("et "), afin d'obtenir=hyperlink("originalCellContent")

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

  • Copiez la colonne des adresses dans Notepad ++
  • Maintenez ALT- SHIFTenfoncé, dépliez votre curseur du coin supérieur gauche au coin inférieur gauche et tapez =hyperlink(". Cela s'ajoute =hyperlink("au début de chaque entrée.
  • Ouvrez le menu "Remplacer" ( Ctrl- H), activez les expressions régulières ( ALT- G) et remplacez $(fin de ligne) par "\). Cela ajoute une citation fermée et une parenthèse fermée (qui doit être échappée \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 où vous souhaitez que les données se retrouvent.
Antonio
la source
Très bonne réponse. C'est la seule façon de procéder si vous ne voulez pas de colonnes supplémentaires. La solution peut être utilisée pour tout type d'éditeur ou de langage de programmation (pas seulement Notepad ++). Dans Excel 2010, cela crée des liens cliquables, mais j'ai dû appliquer manuellement le "style de mise en forme de lien hypertexte" pour vraiment les faire ressembler à des liens (c'est-à-dire en bleu souligné).
absurde
Remarque: Cela ne nécessite pas notepad ++ ... juste pour des raisons de clarté, vous pouvez le faire avec n'importe quel éditeur de texte. L'astuce consiste à envelopper chaque ligne avec =hyperlink("__linecontentgoeshere__")... pour ceux qui peuvent être induits en erreur par la mention de notepad ++
dreftymac
@dreftymac Cela donne une recette sur la façon de procéder presque automatiquement, sans modifier ligne par ligne. Il exploite la fonctionnalité Notepad ++ pour étendre le curseur sur plusieurs lignes et prendre en charge les expressions régulières; d'autres éditeurs pourraient avoir des fonctions similaires. Je clarifie au début de ma réponse quel est le résultat escompté, qui devrait éliminer le malentendu.
Antonio
1
// Je clarifie au début de ma réponse quel est le résultat escompté // Merci d'avoir souligné votre point. Je ne critiquais pas votre réponse, je la rendais un peu plus claire pour ceux qui ne savaient peut-être rien sur Notepad ++, et ne se rendaient peut-être pas compte que c'est simplement l'un des nombreux éditeurs de texte qui peuvent faire ce genre de chose. Je sais que vous vous en rendez compte, mais pas tout le monde.
dreftymac
1
Vous pouvez également composer la formule dans Excel avec ="=HYPERLINK("""&A1&""")"(en supposant que l'URL est en A1). Copiez ensuite le résultat dans le Bloc-notes et revenez dans Excel (il pourrait y avoir une meilleure façon). Vous avez maintenant des hyperliens qui fonctionnent - vous pouvez leur appliquer le style d'hyperlien du panneau Styles pour obtenir le bleu souligné. Si vous avez l'étiquette de lien dans la colonne B, vous pouvez utiliser cette formule: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Jonáš Jančařík
7

Cette méthode fonctionne pour moi en utilisant la fonction de lien hypertexte:

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

Où se B10trouve la cellule contenant la version texte de l'URL (dans cet exemple).

Wasabihound
la source
= HYPERLINK ("http: //" & B10, B10) ne fonctionnait pas dans mon Excel 2013, cependant = HYPERLINK ("http: //" & B10) A FAIT.
agibsen
5

Avec Excel 2007 sur Windows, j'ai trouvé ces étapes les plus simples;

  1. Sélectionnez les cellules avec les URL non actives
  2. Copie
  3. Coller en tant que lien hypertexte
Clumzoïde
la source
1
Dans la version ultérieure (j'utilise Office 2011), cela ne fonctionne pas - je reçois simplement un lien hypertexte vers un fichier de bureau (celui-ci), pas vers l'URL affichée dans la cellule. par exemple fichier: // localhost / Users / xxxx / Desktop / Blahblahblah File Name.xlsx - Sheet1! A2
Dannid
4

J'ai choqué qu'Excel ne l'ait pas fait automatiquement, voici donc ma solution, j'espère qu'elle serait utile pour les autres,

  1. Copiez toute la colonne dans le presse-papiers
  2. Ouvrez ceci 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 l'étape deux, vous pouvez utiliser la page ci-dessous, 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>

Ebrahim Byagowi
la source
3

Pour moi, je viens de copier la colonne entière qui contient les URL au format texte dans une autre application (disons Evernote), et quand elles ont été collées, elles sont devenues des liens, puis je les ai recopiées dans Excel.

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

AbuMariam
la source
2

Essaye ça:

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

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

Tech d'urgence informatique
la source
2

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

Je voulais également infaillible le script car les utilisateurs ne pourraient pas le maintenir eux-mêmes et je ne serais pas disponible.

Il ne s'exécutera sur les cellules d'une plage sélectionnée que si elles contiennent un point et aucun espace. Il ne fonctionnera que jusqu'à 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
Cassiopée
la source
1
Merci, cela a fonctionné pour les adresses e-mail dans un document Excel - j'ai essayé quelques autres méthodes différentes, mais c'est celle qui a fonctionné bien que je devais changer le http: // en mailto:
bawpie
2
  1. Créez une nouvelle colonne temporaire d'hyperliens en utilisant la formule = HYPERLINK ()
  2. Copiez cette colonne dans Microsoft Word (copiez dans le presse-papiers uniquement après l'exécution de Word).
  3. Copiez tout dans le nouveau document Word (ctrl + a, puis ctrl + c).
  4. Collez dans Excel, en remplaçant la colonne de texte d'origine. Supprimez la colonne temporaire avec la formule.
Vin
la source
1

Vous pouvez insérer la formule =HYPERLINK(<your_cell>,<your_cell>)dans la cellule adjacente et la faire glisser jusqu'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, cliquez avec le bouton droit et sélectionnez Hide.

th3an0maly
la source
1

Mettez 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 sur 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 (Jim Gordon Mac MVP) [ http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

J'ai trouvé que cela fonctionnait.

J'avais ces URL:

https://twitter.com/keeseter/status/578350771235872768/photo/1 https://instagram.com/p/ys5ASPCDEV/ https://igcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t51 .2885-15 / 10881854_329617847240910_1814142151_n.jpg https://twitter.com/ranadotson/status/539485028712189952/photo/1 https://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 links.html dans mon navigateur, copié, collé dans Excel et les liens étaient actifs.

Michael Osofsky
la source
1

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

  1. Changement http:/ pourfile:///
  2. Suppression de tous les types de conditions d'espace blanc
  3. Modification de la condition de la plage de cellules de 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
Junaid
la source
Fonctionnant parfaitement, j'ai créé ~ 7000 hyperliens en quelques secondes. :) Merci Cassiopée.
Junaid
pourquoi avez-vous défini NotPresent?
Steffen Roller
Je viens de copier le code ci-dessus de la réponse précédente de Cassiopée. Et je l'ai modifié autant que je l'ai compris. Je ne sais donc pas si NotPresent est nécessaire ou non. Mais mon code modifié fonctionne parfaitement bien.
Junaid
1

J'ai eu une liste de numéros qui alimentent les URL que je veux liées. Par exemple, j'ai la colonne A avec les numéros de question (c'est-à-dire 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 créé un lien hypertexte contenant uniquement du texte pointant vers la colonne A et l'ai copié pour tous mes numéros de question:

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

Ensuite, je copie-colle la valeur de cette colonne d'hyperliens de texte vers une autre colonne.

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

= HYPERLIEN ("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 hotlinked:

2595692

135171

etc.

À votre santé

RKO
la source
0

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

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

sur votre colonne d'origine. Utilisez ensuite $la colonne pour qu'elle ressemble à ceci:

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

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

vanesaqy
la source
0

Pour tous ceux qui arrivent ici avec Excel 2016, vous pouvez simplement mettre en surbrillance la colonne, puis cliquer sur l' Hyperlinkonglet situé sur le Homeruban dans la zone Styles.

entrez la description de l'image ici

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

jGroot
la source
3
Cela ne donne que les styles de cellule, ne rend pas l'URL cliquable.
stenlytw
1
Oui, je pensais que c'était une excellente solution, mais cela ne fonctionne pas. Cela me déconcerte vraiment que ce soit aussi difficile.
Dan
Je viens de tester cela et vous deux avez raison; J'ai été dupé par les styles de cellule.
jGroot
@jGroot - C'est exactement ce que je voulais juste le style sans aucune fonctionnalité.
Raj Rajeshwar Singh Rathore
-1

Le moyen le plus simple ici

  • Mettez en surbrillance toute la colonne
  • cliquez sur '' insérer ''
  • cliquez sur '' Hyperlien ''
  • cliquez sur '' placer dans ce document ''
  • cliquez sur OK
  • c'est tout
Momin Agha Khan
la source
Cela ne fonctionne pas, sauf si le lien est vers quelque chose DANS le document.
Erica
Je suis d'accord que la question était mal formulée, mais l'objectif visé est clairement celui du texte lui-même.
Jason K.
-3

La manière la plus simple dans Excel 2010: Sélectionnez la colonne avec le texte de l'URL, puis sélectionnez Style de lien hypertexte dans l'onglet Accueil. Toutes les URL de la colonne sont désormais des hyperliens.

En double-cliquant également sur chaque cellule à la fin du texte de l'URL et en ajoutant un blanc ou simplement entrez, vous obtiendrez également un lien hypertexte. Similaire à la façon dont vous devez créer des liens URL dans les e-mails MS Outlook.

Ron
la source
4
Ce ne sont pas des hyperliens, ils ressemblent à des hyperliens. C'est juste du style.
Erica
-5

Il existe un moyen très simple de procéder. Créez un lien hypertexte, puis utilisez l'outil Reproduire la mise en forme pour copier la mise en forme. Il créera un lien hypertexte pour chaque élément.

Daniel
la source
8
Cela ne fonctionne pas, il copie simplement la mise en forme pour qu'ils ressemblent à des hyperliens.
reergymerej