VBA Recherche des URL sur une Feuille Excel 2010

Résolu
yassinozi Messages postés 49 Statut Membre -  
yassinozi Messages postés 49 Statut Membre -
Bonjour,
j'ai une colonne sur Excel 2010 qui contient un ensemble d'information parmi ces informations je veux extraire que les URL en parcourant toutes les ligne.

merci d'avance pour votre aide

4 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    en VBA, code a mettre dans un module

    Sub extraction_URL()
    Dim TURL() As String
    'adaptez a votre fichier: colonne et texte url abregee
    Texte_URL = "Debut texte commun tout URL"
    With Worksheets("feuil1")
    'derniere cellule non vide colonne A
    derlig = .Range("A" & Rows.Count).End(xlUp).Row
    'mise en memoire plage cellules
    Set Plage = .Range("A2:A" & derlig)
    'nombre d'URL
    Nb_URL = Application.CountIf(Plage, Texte_URL & "*")
    If Nb_URL > 0 Then
    'redimensionement table suivant nb URL
    ReDim TURL(Nb_URL - 1)
    lig = 1
    'boucle de recherche URL abregee
    For Itr = 1 To Nb_URL
    lig = .Columns("A").Find(Texte_URL & "*", Cells(lig, 1), , xlWhole).Row
    'edriture table URL
    TURL(Itr - 1) = Cells(lig, 1)
    Next Itr
    'transposition Table URL colonne B
    .Range("B2").Resize(Nb_URL) = Application.Transpose(TURL)
    End If
    End With
    End Sub
    1
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    definition de URL: https://fr.wikipedia.org/wiki/Uniform_Resource_Locator

    il y a forcement une partie commune, http: ou www, sinon ce n'est pas une URL
    1
    1. yassinozi Messages postés 49 Statut Membre 1
       
      Bonjour,

      Autant pour moi, vous avez raison.

      entre temps j'ai trouvé une autre solution, je la partage avec vous :



      Dim aCell As Range
      Dim eRow As Long


      eRow = Sheets("TEMP").UsedRange.Rows.Count


      For Each aCell In Sheets("TEMP").Range("A1", Sheets("TEMP").Cells(eRow, "A")).Cells


      If aCell.Hyperlinks.Count = 0 Then

      MsgBox "ce n'est pas un URL"

      Else

      MsgBox "c'est un URL"

      aCell.Copy (Sheets("URL").Cells(ligne, 1))

      End If


      Next aCell
      0
  3. yassinozi Messages postés 49 Statut Membre 1
     
    Bonsoir,

    Votre algorithme est Excellant mais malheureusement ca ne fonctionnera pas sur ma feuille, car deja les urls que j'ai n'ont pas toujours un text en commun et il y'a des cellules qui contient juste un url sans text ni avant ni apres.

    je cherchais une methode qui permet de recuperer le contenu et renvoyer TRUE s'il s'agit d'un url ou non.
    0
  4. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    Salut le Forum

    Un lien : Tester la validité d'une adresse Web

    Mytå
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Re le Forum

      Autre lien : Validité d'une liste d'URL

      Mytå
      0