Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[ Résolu ] Extraire des chiffres dans une ligne avec une texte

vince2k

XLDnaute Nouveau
Bonjour à tous,

Je recherche une formule permettant d'extraire des chiffres dans une ligne de texte.

J'ai en fait une colonne "A" avec une multitude d'adresse adresse du type "5 rue des arcs 84500 Bollene".
J'aimerais retrouver dans la colonne "B" le code postal "84500".

Quelqu'un a t-il une solution svp ?

En vous remerciant d'avance
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

bonsoir vinc2k le forum
une solution oui, et le fichier avec les explications et un peu de texte à traiter il est ou??
a+
papou
 

JCGL

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Bonjour à tous,


Peux-tu essayer ce code de _Thierry du Rocher... :

VB:
Option Explicit    ' @Thierry sur XLD


Sub Number_Finder()
    Dim Plage As Range, Cell As Range
    Dim Starting As Integer, i As Integer
    Dim TmpNumber As String
    Range("B2:B5000").ClearContents


    With Feuil1
        Set Plage = .Range(.Range("A2"), .Range("A5000").End(xlUp))
    End With


    For Each Cell In Plage
        Starting = InStr(2, Cell, " ")
        If Starting <> 0 Then


            For i = Starting To Len(Cell)
                If IsNumeric(Mid(Cell, i, 1)) Then
                    TmpNumber = TmpNumber & Mid(Cell, i, 1)
                End If
            Next
            Cell.Offset(0, 1) = Val(TmpNumber)
        End If
        TmpNumber = ""
    Next Cell
End Sub

A + à tous
 

Paritec

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

bonsoir vince2k le forum
ton fichier en retour
a+
papou

EDIT bonsoir JC à la traîne mais bon!!!
 

Pièces jointes

  • Vince2K V1 .xls
    42.5 KB · Affichages: 91

Paritec

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Re bonsoir Vinke2k le forum
si cela doit être possible de même qu'il est possible de recopier manuellement les codes dans la colonne B (gag)
a+
Papou
 

JCGL

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Bonjour à tous,
Salut Papou,

Papou : Joli code condensé...

Vince2000 : cela doit être possible en recherchant dans la chaîne les valeurs supérieures à 01000

A + à tous
 

JCGL

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Bonjour à tous,
Salut Cisco,

Une fonction de JB :

VB:
Function NumChaineOccur(Chaine, Occurence) ' JB sur XLD
  Longueur = Len(Chaine)
  P = 1
  Occur = 0
  Do
    Temp = ""
    Do While Not IsNumeric(Mid(Chaine, P, 1)) And P <= Longueur
       P = P + 1
    Loop
    Do While IsNumeric(Mid(Chaine, P, 1)) And P <= Longueur
      Temp = Temp & Mid(Chaine, P, 1)
      P = P + 1
    Loop
    Occur = Occur + 1
  Loop Until Occur = Occurence
  NumChaineOccur = Val(Temp)
End Function

Avec cette cette formule pour ne pas prendre en compte les numéros d'adresse :
Code:
=SI(NumChaineOccur(A2;1)<1000;NumChaineOccur(A2;2);NumChaineOccur(A2;1))

A + à tous
 

Paritec

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Re tous
et une petite fonction comme cela? et dans les cellules par exemple en B2 il met =CP(A2)
a+
papou

Code:
Function CP(cel As Range) As String
    Dim x&, n
    CP = ""
    n = Split(cel, " ")
    For x = 0 To UBound(n)
        If n(x) Like "#####" Then CP = n(x): Exit For
    Next x
End Function
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Bonjour à tous,

Fonctionne très partiellement (si pas de numéro de rue...) :

Code:
=STXT(A2;MIN(SI(ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1)*LIGNE(INDIRECT("1:"&NBCAR(A2)))<>0;ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1)*LIGNE(INDIRECT("1:"&NBCAR(A2)))));MAX(ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1)*LIGNE(INDIRECT("1:"&NBCAR(A2))))-MIN(SI(ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1)*LIGNE(INDIRECT("1:"&NBCAR(A2)))<>0;ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1)*LIGNE(INDIRECT("1:"&NBCAR(A2)))))+1)*1

Validation matricielle

A + à tous
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Extraire des chiffres dans une ligne avec une texte

Bonsoir vince2k, le forum,

On peut essayer cette formule matricielle (avec l'adresse en A2):
Code:
=REPT(0;5-NBCAR(MAX(SI(ESTNUM(0+STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)))-5;5));0+STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)))-5;5);""))))&MAX(SI(ESTNUM(0+STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)))-5;5));0+STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)))-5;5);""))



NB: il se peut que la formule ci-dessus présente un nombre de niveaux d'imbrication supérieur à ce que Excel 2003 autorise. Dans ce cas on peut se contenter de la formule matricielle ci-dessous. On perdra alors l'ajout du zéro devant les CP dont le numéro de département est inférieur à 10: 05123 donnera 5123" au lieu de 05123.
Code:
=MAX(SI(ESTNUM(0+STXT(A2;LIGNE(INDIRECT("1:" & NBCAR(A2)))-5;5));0+STXT(A2;LIGNE(INDIRECT("1:" & NBCAR(A2)))-5;5);""))
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Extraire des chiffres dans une ligne avec une texte

Bonsoir tout le monde

EDITION ; Celui-ci aussi est très intéressant (à mon sens)
(je mets le pour le plaisir de relire JNP que je salue au passage ainsi que tous les autres intervenants de ce fil regexpien )
https://www.excel-downloads.com/threads/separer-ladresse-le-code-postal-et-la-ville.156212/


Un fil déjà ancien et peuplés d'habitués d'XLD distillant diverses approches.
https://www.excel-downloads.com/threads/extraire-dune-adresse-postale-le-numero-de-rue.88726/

PS:vinc2k: tu trouveras plusieurs autres fils de discussion parlant de l'extraction d'un code postal.
Aide-toi du moteur de recherche du forum pour les trouver
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…