Extraction d'un code postal dans une adresse

  • Initiateur de la discussion Initiateur de la discussion Eric D
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eric D

Guest
Bonjour à tous,

Je souhaiterais extraire un code postal à (5 chiffres) d'une adresse complète.

Autrement dit, placer en colonne B le code postal contenu dans l'adresse située en colonne A.

La contrainte est que ce code postal n'est pas toujours placé à un nombre de caractère fixe de la droite ou de la gauche de la chaîne de caractères.

Si vous avez la formule magique dans votre hotte, je vous serai reconnaissant de la glisser dans ma cheminée !

Merci d'avance,
Eric
 
Salut Eric D,

Je ne vois pas de solution à ton problème, car un code postal inclus dans une chaîne de caractères est considéré par XL comme étant du texte.

Pourtant si tes adresses ont des renvois à la ligne (le nom, la rue, la ville),
je crois qu'il y a moyen d'en extraire le code postal, en extrayant les 5 premiers caractères après le deuxième renvoi à la ligne (code = 10).

Si c'est le cas, peux-tu mettre un exemple en pièce jointe ?

A défaut, par VAB en extrayant toutes les chaînes de 5 caractères dont les codes se situent entre 47 et 58.
Mais là c'est trop fort pour moi !

Ândré.
 
Bonjour

le code suivant adapté d'un code trouvé sur un site canadien permet d'extraire une chaîne de 5 chiffres consécutifs.

Il faut encore le travailler mais le plus gros du travail est fait.

pour essayer il suffit de mettre une adresse en A6, le code postal probable s'affichera en b6

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ctr As Long
Dim MotTrouvé As Boolean
MotTrouve = False

texte = Range("A6").Value

mot = ""

For ctr = 1 To Len(texte)
Select Case Mid(texte, ctr, 1)
Case "0" To "9"
MotTrouve = True
mot = mot & Mid(texte, ctr, 1)
Case " ", Chr(13), Chr(10):
If MotTrouve Then

If Len(mot) = 5 Then
Range("B6").Value = Mid(texte, ctr - 5, 5)
End If


MotTrouve = False
mot = ""
End If
End Select

Next ctr

End Sub


Cordialement
 

Pièces jointes

Bonjour le fil, le Forum

Cette fonction matricielle recherche un nombre de 5 chiffres dans l'adresse en cellule A1 (donc le code postal) :

=SOMME(SI(ESTERREUR(STXT(A1;LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*10000+STXT(A1;1+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*1000+STXT(A1;2+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*100+STXT(A1;3+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*10+STXT(A1;4+LIGNE(DECALER($G$1;;;NBCAR(A1)));1));0;STXT(A1;LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*10000+STXT(A1;1+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*1000+STXT(A1;2+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*100+STXT(A1;3+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)*10+STXT(A1;4+LIGNE(DECALER($G$1;;;NBCAR(A1)));1)))

A valider par Shift + CTRL + Entrée

Mettre la cellule de calcul au format personnalisé 00000 (pour les départements < 10)

Cette fonction ne donnera pas le résultat escompté si nous avons dans l'adresse plusieurs nombres de 5 chiffres ou plus.

Joyeuses fêtes à tous

PhiBou
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour