2013-05-08 23:44:33 +0000 2013-05-08 23:44:33 +0000
49
49

Puis-je utiliser une formule excel pour extraire l'emplacement d'un hyperlien dans une cellule ?

J'ai un tableur avec un grand nombre de cellules contenant des hyperliens dont le texte affiché est différent de l'emplacement de l'hyperlien

c'est-à-dire :

emplacement de la cellule : A1

texte d'affichage = “Site Info”

emplacement de l'hyperlien = http://www.mylocation.com

Existe-t-il une formule Excel qui me permet d'accéder à la chaîne de texte de l'emplacement de l'hyperlien ?

Dans l'idéal, cela ressemblerait à ceci :

FORMULA(A1) = http://www.mylocation.com

Réponses (3)

55
55
55
2013-05-09 00:20:34 +0000

Vous pouvez utiliser une macro :

  • Ouvrez un nouveau classeur.
  • Entrer dans VBA (Appuyez sur Alt+F11)
  • Insérer un nouveau module (Insérer > Module)
  • Copier et coller la fonction définie par l'utilisateur Excel en dessous
  • Sortir de VBA (Appuyez sur Alt+Q)
  • Utilisez cette syntaxe pour cette fonction Excel personnalisée : =GetURL(cell, [default_value])
22
22
22
2015-05-01 09:34:26 +0000

Je n'avais besoin d'extraire l'adresse que de la valeur d'une seule cellule et j'ai donc trouvé cette petite fonction pratique :

Au lieu d'une macro “force brute”, vous pouvez également créer une fonction définie par l'utilisateur qui extraira et retournera l'URL de tout lien hypertexte vers lequel il pointe :

Function GetURL(rng As Range) As String
     On Error Resume Next
     GetURL = rng.Hyperlinks(1).Address 
End Function

Dans ce cas, vous pouvez la placer où vous voulez. Si vous souhaitez, par exemple, que l'URL d'un hyperlien en A1 soit répertorié dans la cellule C25, vous devez alors entrer la formule suivante dans la cellule C25 :

=GetURL(A1) http://excel.tips.net/T003281_Extracting_URLs_from_Hyperlinks.html

2
2
2
2017-01-30 09:54:57 +0000
function EXTRACT_URL(input) {

  var range = SpreadsheetApp.getActiveSheet().getRange(input);
  var re = /^.+?\(\"(.+?)\",.+?$/;
  if (input.indexOf(':') != -1) {
    var formulas = range.getFormulas();
    for (var i in formulas) {
      for (var j in formulas[i]) {
        formulas[i][j] = formulas[i][j].replace(re, "$1");
      }
    }
    return formulas;
  } else {
    return range.getFormula().replace(re, "$1");
  }

}