ExcelXP : recherche de caractère dans une immatriculation.
5 réponses
Philippe PEREZ
Bonjour =E0 tous,
Dans un fichier, j'ai des immatriculation dans le format :
9999XXX99 ou 999WW99.
Je veux les modifier pour qu'elles apparaissent dans le=20
format 9999 XXX 99 ou 999 WW 99.
Ce qui revient =E0 chercher le premier caract=E8re non=20
num=E9rique, d'ins=E9rer un espace, de recherche le prochain=20
caract=E8re num=E9rique et d'ins=E9rer un espace.
Y-a-t-il une solution pour g=E9rer cela par Formule ?=20
En vous remerciant d'avance de votre aide.
Philippe PEREZ
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
patrick.lyon
bonjour la formule suivante fonctionne chez moi; =SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));GAUCHE(LC(-8);NBCAR(LC(-8))-4);GAUCHE(LC(-8);NBCAR(LC(-8))-5))&" - "&SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));STXT(LC(-8);NBCAR(LC(-8))-3;2);STXT(LC(-8);NBCAR(LC(-8))-4;3))&" - "&DROITE(LC(-8);2) je suis a ta dispo en cas de question tu me diras si ça marche
"Philippe PEREZ" vient de nous annoncer :
Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format : 9999XXX99 ou 999WW99. Je veux les modifier pour qu'elles apparaissent dans le format 9999 XXX 99 ou 999 WW 99. Ce qui revient à chercher le premier caractère non numérique, d'insérer un espace, de recherche le prochain caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide. Philippe PEREZ
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
bonjour
la formule suivante fonctionne chez moi;
=SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));GAUCHE(LC(-8);NBCAR(LC(-8))-4);GAUCHE(LC(-8);NBCAR(LC(-8))-5))&" -
"&SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));STXT(LC(-8);NBCAR(LC(-8))-3;2);STXT(LC(-8);NBCAR(LC(-8))-4;3))&" -
"&DROITE(LC(-8);2)
je suis a ta dispo en cas de question
tu me diras si ça marche
"Philippe PEREZ" vient de nous annoncer :
Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format :
9999XXX99 ou 999WW99.
Je veux les modifier pour qu'elles apparaissent dans le
format 9999 XXX 99 ou 999 WW 99.
Ce qui revient à chercher le premier caractère non
numérique, d'insérer un espace, de recherche le prochain
caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide.
Philippe PEREZ
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
bonjour la formule suivante fonctionne chez moi; =SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));GAUCHE(LC(-8);NBCAR(LC(-8))-4);GAUCHE(LC(-8);NBCAR(LC(-8))-5))&" - "&SI(ESTNUM(CNUM(GAUCHE(DROITE(LC(-8);5);1)));STXT(LC(-8);NBCAR(LC(-8))-3;2);STXT(LC(-8);NBCAR(LC(-8))-4;3))&" - "&DROITE(LC(-8);2) je suis a ta dispo en cas de question tu me diras si ça marche
"Philippe PEREZ" vient de nous annoncer :
Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format : 9999XXX99 ou 999WW99. Je veux les modifier pour qu'elles apparaissent dans le format 9999 XXX 99 ou 999 WW 99. Ce qui revient à chercher le premier caractère non numérique, d'insérer un espace, de recherche le prochain caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide. Philippe PEREZ
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Daniel.M
Salut Philippe,
Si tu veux une formule qui tient compte de tout les cas (nombre de chiffres variables au début, à la fin, idem pour lettres), elle sera AMA très longue. En fait, tu auras besoin d'une cellule pour maintenir un résultat intermédiaire.
C'est le genre de problème où tu effectues la conversion une fois et une fonction VBA m'apparaît appropriée.
Je t'en propose une ci-dessous. Avec ton num d'immatriculation en A1, tu écris en B1: =Separer(A1)
Salutations,
Daniel M.
Public Function Separer(s As String) As String Dim RE As Object, MS As Object ' RegExp et Match collection Objects
Set RE = CreateObject("VBScript.RegExp") RE.IgnoreCase = True: RE.Global = False RE.Pattern = "[^0-9]+": Set MS = RE.Execute(s)
If MS.Count > 0 Then With MS(0) Separer = Left(s, .firstindex) & " " & .Value & _ " " & Mid(s, .firstindex + .Length + 1, 999) End With Else Separer = s End If Set MS = Nothing: Set RE = Nothing End Function
"Philippe PEREZ" wrote in message news:03bd01c3c55b$e51573b0$ Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format : 9999XXX99 ou 999WW99. Je veux les modifier pour qu'elles apparaissent dans le format 9999 XXX 99 ou 999 WW 99. Ce qui revient à chercher le premier caractère non numérique, d'insérer un espace, de recherche le prochain caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide. Philippe PEREZ
Salut Philippe,
Si tu veux une formule qui tient compte de tout les cas (nombre de chiffres
variables au début, à la fin, idem pour lettres), elle sera AMA très longue. En
fait, tu auras besoin d'une cellule pour maintenir un résultat intermédiaire.
C'est le genre de problème où tu effectues la conversion une fois et une
fonction VBA m'apparaît appropriée.
Je t'en propose une ci-dessous. Avec ton num d'immatriculation en A1, tu écris
en B1:
=Separer(A1)
Salutations,
Daniel M.
Public Function Separer(s As String) As String
Dim RE As Object, MS As Object ' RegExp et Match collection Objects
Set RE = CreateObject("VBScript.RegExp")
RE.IgnoreCase = True: RE.Global = False
RE.Pattern = "[^0-9]+": Set MS = RE.Execute(s)
If MS.Count > 0 Then
With MS(0)
Separer = Left(s, .firstindex) & " " & .Value & _
" " & Mid(s, .firstindex + .Length + 1, 999)
End With
Else
Separer = s
End If
Set MS = Nothing: Set RE = Nothing
End Function
"Philippe PEREZ" <anonymous@discussions.microsoft.com> wrote in message
news:03bd01c3c55b$e51573b0$a001280a@phx.gbl...
Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format :
9999XXX99 ou 999WW99.
Je veux les modifier pour qu'elles apparaissent dans le
format 9999 XXX 99 ou 999 WW 99.
Ce qui revient à chercher le premier caractère non
numérique, d'insérer un espace, de recherche le prochain
caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide.
Philippe PEREZ
Si tu veux une formule qui tient compte de tout les cas (nombre de chiffres variables au début, à la fin, idem pour lettres), elle sera AMA très longue. En fait, tu auras besoin d'une cellule pour maintenir un résultat intermédiaire.
C'est le genre de problème où tu effectues la conversion une fois et une fonction VBA m'apparaît appropriée.
Je t'en propose une ci-dessous. Avec ton num d'immatriculation en A1, tu écris en B1: =Separer(A1)
Salutations,
Daniel M.
Public Function Separer(s As String) As String Dim RE As Object, MS As Object ' RegExp et Match collection Objects
Set RE = CreateObject("VBScript.RegExp") RE.IgnoreCase = True: RE.Global = False RE.Pattern = "[^0-9]+": Set MS = RE.Execute(s)
If MS.Count > 0 Then With MS(0) Separer = Left(s, .firstindex) & " " & .Value & _ " " & Mid(s, .firstindex + .Length + 1, 999) End With Else Separer = s End If Set MS = Nothing: Set RE = Nothing End Function
"Philippe PEREZ" wrote in message news:03bd01c3c55b$e51573b0$ Bonjour à tous,
Dans un fichier, j'ai des immatriculation dans le format : 9999XXX99 ou 999WW99. Je veux les modifier pour qu'elles apparaissent dans le format 9999 XXX 99 ou 999 WW 99. Ce qui revient à chercher le premier caractère non numérique, d'insérer un espace, de recherche le prochain caractère numérique et d'insérer un espace.
Y-a-t-il une solution pour gérer cela par Formule ?
En vous remerciant d'avance de votre aide. Philippe PEREZ
AV
Une "courte" non tributaire du nombre de chiffres/lettres : Matricielle :
Merci ! Pas vraiment testé si ça résiste à tous les cas de figure mais je ne fais pas de souci : quand ça "le fait pas", il est rare que qqu'un ne signale pas la chose ;-)
AV
Jolie formule, Alain. :-)
Merci !
Pas vraiment testé si ça résiste à tous les cas de figure mais je ne fais pas de
souci : quand ça "le fait pas", il est rare que qqu'un ne signale pas la chose
;-)
Merci ! Pas vraiment testé si ça résiste à tous les cas de figure mais je ne fais pas de souci : quand ça "le fait pas", il est rare que qqu'un ne signale pas la chose ;-)