formule de texte

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AlainPasDeSpam
Le #5079141
recherhcerdepuis la droite !!!

--
Je ne fais plus de sauvegardes depuis que la CIA les fait pour moi.
"AlainPasDeSpam" 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.



JB
Le #5079101
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.


Modeste
Le #5079091
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)))

Tatanka
Le #5079081
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"
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.



JB
Le #5079041
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
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 -



Filochard
Le #5079031
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)

Filochard
Le #5079021
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)

Tatanka
Le #5079011
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"
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"
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.







Tatanka
Le #5078991
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"

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"
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"
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.











AlainPasDeSpam
Le #5076551
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" %
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)





Publicité
Poster une réponse
Anonyme