Moomrah
Messages postés19Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention30 avril 2007
-
27 déc. 2005 à 14:14
Moomrah
Messages postés19Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention30 avril 2007
-
27 déc. 2005 à 16:44
Bonjour,
Je cherche un moyen simple de trier une adresse postale ex(12 Rue des Pois Cassés 54221 Patin Coufin)
et récupérer l'adresse, la code postal et la ville séparément.
Je ne vois pas comment réaliser ca simplement.
Si quelqu'un a une idée ca serait sympa merci.
AnteManoclis
Messages postés154Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention 6 septembre 2007 27 déc. 2005 à 15:02
Salut, la solution serait de retrouver dans ton adresse, le code
postal, puisque celui-ci sépare l'adresse de la ville, et qu'il est le
plus simple à retrouver puisqu'il est forcément composé de 5 chiffres.
Ce que je te suggère c'est de balayer l'adresse complète. Une fois que
ton programme aura remarqué 5 chiffres qui se suivent, tu auras non
seulement retrouvé ton code postal, mais tu sauras aussi jusqu'où va
l'adresses et où commence la ville.
Dim AdresseTotale As String: AdresseTotale = "12 Rue des Pois Cassés 54221 Patin Coufin"
Dim Adresse As String, CodePostal As String, Ville As String
Dim i As Integer, j As Integer
For i = 1 To Len(AdresseTotale) - 5
If TestChiffre(Mid(AdresseTotale, i, 1)) And
TestChiffre(Mid(AdresseTotale, i + 1, 1)) And
TestChiffre(Mid(AdresseTotale, i + 2, 1)) And
TestChiffre(Mid(AdresseTotale, i + 3, 1)) And
TestChiffre(Mid(AdresseTotale, i + 4, 1)) Then Exit For
Next i
Adresse = Left(AdresseTotale, i - 2)
CodePostal = Mid(AdresseTotale, i, 5)
Ville = Right(AdresseTotale, Len(AdresseTotale) - i - 5)
Avec:
Private Function TestChiffre(Valeur As String) As Boolean
If Valeur >= "0" And Valeur <= "9" Then TestChiffre = True Else TestChiffre = False
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 27 déc. 2005 à 15:03
En partant du principe qu'il n'y a pas de chiffres dans le nom d'une ville (à vérifier, notamment s'il y a un Cedex !!)
Dim AdrFull As String,Adr As String, Ville As String, CP As String
Dim i As Long
AdrFull= "12 Rue des Pois Cassés 54221 Patin Coufin"
i = len(AdrFull)
While Not IsNumeric(Mid$(AdrFull,i,1))
i = i -1
Wend
' i donne l'index du dernier chiffre du CP
Ville = Trim$(Right$(AdrFull,Len(AdrFull)-i))
AdrFull = Left$(AdrFull,i)
While Not Mid$(AdrFull,i,1) = " "
i = i -1
Wend
' i donne l'index de l'espace juste avant le CP
CP = Trim$(Right$(AdrFull,Len(AdrFull)-i))
Adr = Trim$(Left$(AdrFull,i))