Comment extraire une chaine de caractère en repérant tout chiffre ou groupe de c
pegase71
Messages postés14Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention21 octobre 2006
-
27 sept. 2005 à 15:03
pegase71
Messages postés14Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention21 octobre 2006
-
27 sept. 2005 à 16:24
Bonjour,
J'ai vu dans le forum que l'on pouvait extraire en considérant les espaces une chaine de caractère, mais comment le faire avec un chiffre ou groupe de chiffre???
Avec Excel j'ai dans une colonne A des cellules composées de chaine de caractères comprenant nom, prénom, adresse etc...Je cherche à travers une macro l'extraction à droite (right) de tout chiffre ou groupe de chiffres (style code postal ##### ou numéro de téléphone etc..) vers une colonne B.
Comment formuler pour "tout" chiffre ou groupe de chiffres (4 , 5 chiffre voir plus...qui serait définie dans la macro VBA) ??
Merci de votre aide.
A voir également:
Comment extraire une chaine de caractère en repérant tout chiffre ou groupe de c
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 27 sept. 2005 à 15:32
tu peux peut-être faire un pattern:
modele = input like "*" & tontexte & "*"
pour reconnaitre = n'importequoi-ton texte- n'importe quoi
ou
modele = input like [0123456789] & [0123456789] & " " & texte
pour reconaître par exemple 02 bonjour ou 45 bonjour ou toute chaine de caractère qui contient deux chiffres en suivant et pas de lettres.
la syntaxe de LIKE est pleine de possibilités: espace, chiffre, exclusion de caractère, tout caractère etc.
Arsena
Messages postés190Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention27 septembre 2005 27 sept. 2005 à 15:54
Si j'ai bien compris ce que tu cherche essaie ceci
Sub Macro1()
'Je suppose que la cellule "A3" contien
'"Mimi DETREF rue du paradis Marseille 0405060708"
x = [A3] 'le contenu de la cellule
'Boucle pour touver les chiffres en fin de texte
For i = Len(x) To 1 Step -1
If Not IsNumeric(Mid(x, i, 1)) Then LG = i: Exit For
Next i
'y contiend les chiffres
y = Right(x, (Len(x) - LG))
End Sub
pegase71
Messages postés14Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention21 octobre 2006 27 sept. 2005 à 16:24
MD...j'ai testé ta macro...mais je n'ai pas de résultat..je ne comprends pas!!!
Par contre j'ai trouvé cette macro qui fonctionne de Minick sur un autre forum :
Sub separe()
Dim Tableau As Variant
Dim Cpt As Integer, CptLig As Integer
Dim Chaine As String
Dim CPOk As Boolean
For CptLig = 1 To Range("A65536").End(xlUp).Row
Tableau = Split(Range("A" & CptLig), " ")
Chaine = ""
CPOk = False
For Cpt = UBound(Tableau) To 0 Step -1
If IsNumeric(Tableau(Cpt)) And CPOk = False Then
Range("D" & CptLig) = Chaine
Range("C" & CptLig) = Tableau(Cpt)
Chaine = ""
CPOk = True
Else
Chaine = Tableau(Cpt) & " " & Chaine
End If
Next
Range("B" & CptLig) = Chaine
Next
End Sub