Automatiser une extraction de nom de domaine d'une adresse URL

Résolu/Fermé
papachat Messages postés 3 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 12 février 2013 - 12 févr. 2013 à 21:24
 papachat - 19 févr. 2013 à 15:50
Bonjour,

Je souhaiterais pouvoir automatiser l'extraction de noms de domaines des adresses URL que j'ai copiées en colonne dans Excel.
L'un des problèmes auquel je suis confronté est que toutes ces adresses n'ont pas la même "forme" initiale.

J'ai essayé :
- les macros en VBA, mais je bloque sur la rédaction de la boucle "do...while" et le "rechercher / remplacer" s'avère être trop lourd;
- de "convertir" en remplaçant les "." par des espaces pour ventiler dans différentes colonnes, mais les différentes "formes initiales" posent problème ... idem avec les fonctions "gauche" ou "droite".

Exemples:

Adresse de départ => ce que je souhaite obtenir
www.bing.com => bing
go.microsoft.com => microsoft
static2.pagesjaunes.fr => pagesjaunes
www.taratatatsointsoin.com => taratatatsointsoin
taratatatsointsoin.com => taratatatsointsoin

J'en passe et des meilleures ...

Si quelqu'un pouvait me donner un coup de main ...

Merci par avance ! :)




A voir également:

2 réponses

aziz_alg80 Messages postés 383 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 3 juin 2024 22
12 févr. 2013 à 21:45
Salut;

En supossant que le nom du domaine se situt entre deux points : (exemple: .Bing. & .Microsoft. ) et que cette forme est la plus utilisée, tu peux extraire le nom du domaine en utilisant la Fonction: CONVERTIR (Menu Données / Zone outils de donnés / convertir

pour le faire :
Sélectionner la plage de cellules contenant les URLs
cliquer sur convertir
et suivre l'assistant en choisissant le point (.) comme séparateur

Avant de sélectionner la plage, mettre à part les URLs de forme différents que celle qui délimite le nom entre les deux points, pour les traiter séparément.

Bon courage
0
papachat Messages postés 3 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 12 février 2013
12 févr. 2013 à 22:22
Merci pour vos propositions (eriiic et toi) !
Je mets en application de ce pas :)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
12 févr. 2013 à 21:53
Bonsoir,

une petite fonction personnalisée qui traite les cas que tu as cité :
Function nomDomaine(adr As String) As String
    Dim part As Variant
    part = Split(adr, ".")
    Select Case UBound(part)
    Case 0, 1
        nomDomaine = part(0)
    Case 2
        nomDomaine = part(1)
    End Select
End Function 

Mais comme tu as gardé le meilleur... ;-)
https://www.cjoint.com/?CBmv1Ckcl4b

eric

0
papachat Messages postés 3 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 12 février 2013
12 févr. 2013 à 22:23
Merci pour vos propositions (aziz_alg80 et toi) !
Je mets en application de ce pas :)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
12 févr. 2013 à 23:28
ok, n'oublie pas de mettre en résolu si c'est le cas.
eric
0
Bonjour eriiic,
Désolé pour le retour tardif, je n'étais pas dispo ces derniers jours ...
Au risque de paraître ridicule, je n'arrive pas à intégrer ta proposition de fonction dans ma macro ...
si j'ai bien compris :
1-on nomme la zone de "nomDomaine";
2-ensuite je m'enregistre une macro quelconque sur le sujet et je remplace les commandes par celles que tu m'as proposé (je sais, c'est un peu de la bidouille ... :)).
Par contre, la fonction s'insère après :
Sub Macro1
'
et se termine avant :
'
End Sub ?
Merci pour ton aide :)
A+
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
19 févr. 2013 à 08:43
Bonjour,

non, pas vraiment.
Pas besoin de Sub... End Sub puisqu'une fonction se déclare entre Function et End Function.
Tu copie-colles le code fourni, c'est tout.

Ensuite sur la feuille ça s'utilise comme une fonction d'excel.
Dans une cellule tu écris =nomDomaine(ta_cellule_URL)
Tu peux aussi faire 'insertion / fonction' et la choisir dans la catégorie 'fonctions personnalisées'.

eric
0
Super eriiic !
Un grand merci pour ton aide.
Problème résolu :)
0