Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formule de texte

10 réponses
Avatar
AlainPasDeSpam
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 champs
:

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets en
a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en
a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.

10 réponses

Avatar
AlainPasDeSpam
recherhcerdepuis la droite !!!

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.
"AlainPasDeSpam" a écrit dans le message de
news:
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3
champs :

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets
en a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en
a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.



Avatar
JB
Bonjour,

=GAUCHE(A1;NBCAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)-5)
Valider avec Maj+Ctrl+Entrée

CAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)-4;5)
Valider avec Maj+Ctrl+Entrée

=STXT(A1;NBCAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)+2;999)
Valider avec Maj+Ctrl+Entrée

http://cjoint.com/?lDo2wYXclo

JB
http://boisgontierjacques.free.fr


On 29 nov, 14:29, "AlainPasDeSpam"
wrote:
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 cha mps
:

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets en
a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en
a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.


Avatar
Modeste
Bonsour® AlainPasDeSpam avec ferveur ;o))) vous nous disiez :

Je cherche une formule qui me permettrait d'éclater une adresse en 3
champs 12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal


une petite fonction perso à mettre dans un module standard :

Function Pos_CP(Target)
Application.Volatile
For i = 1 To Len(Target)
If (Mid(Target, i, 9 ^ 9) Like "#####*") = True Then Pos_CP = i: Exit
Function
Next
End Function

ensuite en
en A1 12 rue des Coquelicots 12345 Ville la Grand
B1 =GAUCHE(A1;Pos_Cp(A1)-1)
en C1 =STXT(A1;Pos_Cp(A1);5)
en D1 =STXT(A1;Pos_Cp(A1)+6;9^9)



@+
;o)))

Avatar
Tatanka
Salut Alain,

Un essai par macro :

Sub essai()
t = [a1]
For i = InStr(1, t, Chr(32)) To Len(t)
If IsNumeric(Mid(t, i, 1)) Then code = code & Mid(t, i, 1)
Next i
LC = Len(code)
pos = InStr(1, t, code)
début = Left(t, pos - 2)
fin = Right(t, Len(t) - LC - pos)
[a1] = début
[a2] = code
[a3] = fin
End Sub

Serge


"AlainPasDeSpam" a écrit dans le message de news:
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 champs :

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets en a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.



Avatar
JB
En VBA:

Function CodePostal(chaine)
temp = ""
p = Len(chaine)
Do While Not IsNumeric(Mid(chaine, p, 1)) And p > 1
p = p - 1
Loop
Do While IsNumeric(Mid(chaine, p, 1)) And p > 1
temp = Mid(chaine, p, 1) & temp
p = p - 1
Loop
CodePostal = temp
End Function

Function Ville(chaine)
p = Len(chaine)
Do While Not IsNumeric(Mid(chaine, p, 1)) And p > 1
p = p - 1
Loop
Ville = Mid(chaine, p + 2)
End Function

Function Rue(chaine)
temp = ""
p = Len(chaine)
Do While Not IsNumeric(Mid(chaine, p, 1)) And p > 1
p = p - 1
Loop
Do While IsNumeric(Mid(chaine, p, 1)) And p > 1
temp = Mid(chaine, p, 1) & temp
p = p - 1
Loop
Rue = Left(chaine, p)
End Function

JB


On 29 nov, 14:54, JB wrote:
Bonjour,

=GAUCHE(A1;NBCAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)-5)
Valider avec Maj+Ctrl+Entrée

CAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)-4;5)
Valider avec Maj+Ctrl+Entrée

=STXT(A1;NBCAR(A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)));0)+2;999)
Valider avec Maj+Ctrl+Entrée

http://cjoint.com/?lDo2wYXclo

JBhttp://boisgontierjacques.free.fr

On 29 nov, 14:29, "AlainPasDeSpam"
wrote:



Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 c hamps
:

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octe ts en
a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octet s en
a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.- Mas quer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Filochard
12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3


Vous avez (entre autres) ces possibilités :
[formules matricielle]

Extraction de l'adresse :
=GAUCHE(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6))-2)

Extraction du Code Postal :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6));6)

Extraction de la ville :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6))+6;8^8)

Avatar
Filochard
Extraction du Code Postal :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6));6)


Ici lire :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6));5)

Avatar
Tatanka
Sub Autre_Essai()
Set ici = ActiveCell
t = ici.Value
For i = InStr(1, t, Chr(32)) To Len(t)
If IsNumeric(Mid(t, i, 1)) Then code = code & Mid(t, i, 1)
Next i
LC = Len(code)
pos = InStr(1, t, code)
début = Left(t, pos - 2)
fin = Right(t, Len(t) - LC - pos)
ici(2) = début
ici(3) = code
ici(4) = fin
End Sub

Serge

"Tatanka" a écrit dans le message de news:
Salut Alain,

Un essai par macro :

Sub essai()
t = [a1]
For i = InStr(1, t, Chr(32)) To Len(t)
If IsNumeric(Mid(t, i, 1)) Then code = code & Mid(t, i, 1)
Next i
LC = Len(code)
pos = InStr(1, t, code)
début = Left(t, pos - 2)
fin = Right(t, Len(t) - LC - pos)
[a1] = début
[a2] = code
[a3] = fin
End Sub

Serge


"AlainPasDeSpam" a écrit dans le message de news:
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 champs :

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets en a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.







Avatar
Tatanka
Salut Alain,

Ma proposition suppose qu'il n'y a pas d'espace au début.
Pour prévoir le coup, remplace t = ici.value par LTrim(ici.Value)

ReSerge

"Tatanka" a écrit dans le message de news:

Sub Autre_Essai()
Set ici = ActiveCell
t = ici.Value
For i = InStr(1, t, Chr(32)) To Len(t)
If IsNumeric(Mid(t, i, 1)) Then code = code & Mid(t, i, 1)
Next i
LC = Len(code)
pos = InStr(1, t, code)
début = Left(t, pos - 2)
fin = Right(t, Len(t) - LC - pos)
ici(2) = début
ici(3) = code
ici(4) = fin
End Sub

Serge

"Tatanka" a écrit dans le message de news:
Salut Alain,

Un essai par macro :

Sub essai()
t = [a1]
For i = InStr(1, t, Chr(32)) To Len(t)
If IsNumeric(Mid(t, i, 1)) Then code = code & Mid(t, i, 1)
Next i
LC = Len(code)
pos = InStr(1, t, code)
début = Left(t, pos - 2)
fin = Right(t, Len(t) - LC - pos)
[a1] = début
[a2] = code
[a3] = fin
End Sub

Serge


"AlainPasDeSpam" a écrit dans le message de news:
Bonjour
Je cherche une formule qui me permettrait d'éclater une adresse en 3 champs :

12 rue des Coquelicots 12345 Ville la Grand en A1
devient
12 rue des Coquelicots en A1
12345 en A2
Ville la Grand en A3
en se basant sur les valeurs numériques du code postal

rechercher avant un blanc puis un chiffre et déplacer ce nombre d'octets en a3
rechercher avant un chifre puis un blanc et déplacer ce nombre d'octets en a2

merci de votre aide

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.











Avatar
AlainPasDeSpam
Bonsoir
Un grand merci a JB, Modeste, Tatanka et Filochard pour leurs réponses
rapides et précises
Et en plus ça marche !!! (... après divers tatonnements de ma part...)
@lain
--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.
"Filochard" a écrit dans le message de news:
%
Extraction du Code Postal :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6));6)


Ici lire :
=STXT(A1;EQUIV(2;1/STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));6));5)