XL 2013 Extraction du numero de téléphone dans une phrase

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tridarius

XLDnaute Nouveau
Bonjour,

J’espère que tout le monde va bien 🙂
J'ai un petit soucie avec Excel. J'ai regardé plusieurs forums avant de poster ici ma question pour essayer d’éviter d’embêter la communauté. Malheureusement je cale.

J'ai joins un fichier Excel dans le quel j'aimerai essayer d'extraire le numero de téléphone se trouvant dans en A1 et le copier en B1. et ainsi copier cette formule pour quelle fonction sur A2,A3,A4 etc....

Comme vous pouvez le constater, le texte en A1 et tiré d'un code Html donc il y énormément de retour a la ligne. Le numero de téléphone se trouve apres le texte : data-phone="
Je ne suis pas arrivé a trouver une solution acceptable avec Recherche ou STXT

Je vous remercie par avance 🙂

Cordialement
 

Pièces jointes

Bonsoir à tous

Tridarius
[bienvenue sur le forum]
Merci beaucoup c'est fort agréable de pouvoir compter sur la communauté
Ce qui serait chouette aussi c'est que la communauté des nouveaux membres pensent à lire la charte du forum🙄
5 – La possibilité de joindre des fichiers est donnée sur ce forum.
Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.
 
Bonjour Tridarius, Hieu, Jean-Marie, le forum,

Les numéros de téléphone n'ont pas toujours 10 chiffres (numéros internationaux ou étrangers) et ceux-ci ne sont pas toujours séparés par des espaces.

Dans ce cas on peut utiliser cette fonction VBA :
Code:
Function NumeroTelephone$(t$, code$)
Dim i%, x$, flag As Boolean, fin%, deb%
i = InStr(t, code)
If i = 0 Then Exit Function
For i = i + Len(code) To Len(t) + 1
  x = Mid(t, i, 1)
  If flag Then
    If Not IsNumeric(x) And x <> " " Then fin = i: Exit For
  Else
    If IsNumeric(x) Or x = "+" Then deb = i: flag = True
  End If
Next
If deb Then NumeroTelephone = Application.Trim(Mid(t, deb, fin - deb))
End Function
Le code doit toujours être placé dans un module standard (Alt+F11).

Fichier joint.

Nota : pour la confidentialité, a priori il s'agirait d'entreprises, ça ne peut que leur faire une pub gratuite...

A+
 

Pièces jointes

Re, bonjour JB,

J'ai vu que dans certains pays il peut y avoir des lettres dans les numéros de téléphones (c'était le cas en France autrefois).

Dans ce cas il n'y a pas d'autre moyen que de les encadrer (par exemple par des guillemets comme dans l'exemple).

On utilisera alors cette fonction, nettement plus simple :
Code:
Function NumeroTelephoneA$(t$, code$)
If Not t Like "*" & code & "*""*""*" Then Exit Function
Dim i%, j%
i = InStr(t, code)
i = InStr(i + Len(code), t, """") + 1
j = InStr(i, t, """")
NumeroTelephoneA = Application.Trim(Mid(t, i, j - i))
End Function
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour