XL 2021 Extraire et mettre en col G le premier N° trouvé si son premier chiffre est différent de 0

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Je n'arrive pas à faire la bonne formule pour mon besoin :
En colonne A dans les textes, il y a des n° de tel.
Mon besoin (formule en Col G)
Extraire de la Col A et mettre en col G le premier N° trouvé si son premier chiffre est différent de 0
Résultat attendu en col I

Auriez-vous la bonne formule ?
En cas, je joins le petit fichier test.
Merci à toutes et à tous,
Je continue mes recherches....
:)
 

Pièces jointes

  • tel test.xlsm
    95.7 KB · Affichages: 4
Solution
Voyez le fichier joint avec cette fonction VBA :
VB:
Function Extrait(x As String) As Double
Dim i%, deb%, y$
For i = 1 To Len(x)
    If deb = 0 And IsNumeric(Mid(x, i, 1)) Then deb = i
    If deb > 0 And Not IsNumeric(Mid(x, i, 1)) Then
        If i - deb >= 10 Then
            y = Mid(x, deb, i - deb)
            If Left(y, 1) = "0" Then y = 33 & Mid(y, 2)
            Extrait = CDbl(y)
            Exit Function
        End If
        deb = 0
    End If
Next
End Function
Formule en G2 =Extrait(A2)

Salut TooFatBoy.

xUpsilon

XLDnaute Accro
Bonjour,

Dans ton fichier exemple il y a quelques soucis :
- premier numéro trouvé : numéro de téléphone ou nombre quelconque ? Parce que sur la ligne 2 on dirait un numéro de téléphone, mais ligne 6 on dirait le nombre qui suit "CP"
- si son premier chiffre est différent de 0 : il faut renvoyer le numéro seulement si il ne commence pas par 0, ou il faut renvoyer le numéro sans le premier 0 ?

Bonne journée,
 

Usine à gaz

XLDnaute Barbatruc
Bjr xUpsilon :)
Merci d'être là.
Je ne comprends pas ton interrogation
Par exemple :
ligne 2
Fiona : xxxxxxxxx - chalifert (77144) - IAD - Commune : - CP : - Tel1 : 0222222222 - Tel2 : 0 - Mail perso : - Mail Pro : - 12-06-23 19:15 : RendezVous pour le : 15 06 2023 09:00 - RAS
Le 1er n° est 0222222222
ligne 6
Fiona : xxxxxxxxx Thierry - Safti - Commune : - OutreMer Martinique - décalage horaire -6 h - CP : 562699999999 - Tel1 : 0699999999 - Tel2 : 0 - Mail perso : - Mail Pro : - 05-06-23 14:14 : RendezVous pour le : 15 06 2023 15:00 - RAS
Le 1er n° est 562699999999
:)
 

Usine à gaz

XLDnaute Barbatruc
Bjr Gérard :)
"En lignes 2 3 4 tu vas chercher des numéros de téléphone qui commencent par zéro. Et en lignes 5 et 6 tu prends les numéros des CP..."
J'ai du encore mal m'expliquer :rolleyes:

Je voudrais juste extraire le 1er n° trouvé :
Par exemple :
ligne 2
Fiona : xxxxxxxxx - chalifert (77144) - IAD - Commune : - CP : - Tel1 : 0222222222 - Tel2 : 0 - Mail perso : - Mail Pro : - 12-06-23 19:15 : RendezVous pour le : 15 06 2023 09:00 - RAS
Le 1er n° est 0222222222
ligne 6
Fiona : xxxxxxxxx Thierry - Safti - Commune : - OutreMer Martinique - décalage horaire -6 h - CP : 562699999999 - Tel1 : 0699999999 - Tel2 : 0 - Mail perso : - Mail Pro : - 05-06-23 14:14 : RendezVous pour le : 15 06 2023 15:00 - RAS
Le 1er n° est 562699999999
:)
 

Usine à gaz

XLDnaute Barbatruc
Bonjour,


Je dirais que oui non.

Je dois mal vieillir car je t'ai compris dès #1... 😇


[edit]
Ah non, au temps pour moi : j'avais compris qu'il ne fallait regarder que tel1 et tel2, mais pas cp...
[/edit]
Bjr à toi :)
tel1, tel2,cp sont bien contenus dans chaque cellule mais... C'est uniquement le 1er N° qu'il faudrait chercher et l'extraire si son premier chiffre est différent de 0
Mais je pense que ma demande n'est pas facile à réaliser,
:)
 

job75

XLDnaute Barbatruc
Voyez le fichier joint avec cette fonction VBA :
VB:
Function Extrait(x As String) As Double
Dim i%, deb%, y$
For i = 1 To Len(x)
    If deb = 0 And IsNumeric(Mid(x, i, 1)) Then deb = i
    If deb > 0 And Not IsNumeric(Mid(x, i, 1)) Then
        If i - deb >= 10 Then
            y = Mid(x, deb, i - deb)
            If Left(y, 1) = "0" Then y = 33 & Mid(y, 2)
            Extrait = CDbl(y)
            Exit Function
        End If
        deb = 0
    End If
Next
End Function
Formule en G2 =Extrait(A2)

Salut TooFatBoy.
 

Pièces jointes

  • tel test.xlsm
    101.9 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
Re-Bjr Gérard :)
Il faut que je renouvelle mon stock de "MERCIS" ;)
Nickel ta fonction et elle va beaucoup me servir, comme tout ce que tu as la gentillesse de me donner avec autant de patience. (lol, on a du se connaître dans une autre vie) :p

J'avais compris que par simple formule ce serait peut-être pas possible.

Ta fonction est super :)
Alors SUPER, SUPER MERCI
:)
 

Discussions similaires

Statistiques des forums

Discussions
315 082
Messages
2 116 031
Membres
112 640
dernier inscrit
rachidqadmir