Extraire code postal cellule
Fermé
Mh
-
21 juin 2022 à 16:08
via55 Messages postés 14510 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 janvier 2025 - 22 juin 2022 à 13:29
via55 Messages postés 14510 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 janvier 2025 - 22 juin 2022 à 13:29
A voir également:
- Excel extraire code postal d'une adresse
- Darkino nouvelle adresse - Guide
- Rechercher ou entrer l'adresse - Guide
- Créer une adresse hotmail - Guide
- Liste déroulante excel - Guide
- Adresse mac - Guide
2 réponses
jee pee
Messages postés
40682
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 janvier 2025
9 496
21 juin 2022 à 16:24
21 juin 2022 à 16:24
Bonjour,
Pour récupérer les 3 composants de l'adresse, voir : https://cellulexcel.blogspot.com/p/adresse-decoupage.html
Pour récupérer les 3 composants de l'adresse, voir : https://cellulexcel.blogspot.com/p/adresse-decoupage.html
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 juin 2022 à 18:58
21 juin 2022 à 18:58
Bonjour,
une autre approche en vba
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-P
pour l'exemple liste colonne A et code postal colonne B
une autre approche en vba
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-P
pour l'exemple liste colonne A et code postal colonne B
Option Explicit 'https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-P Sub extraireValeursNumeriques_DansChaine() Dim i As Byte, Nb As Byte Dim Cible As String Dim Nombre As Double Dim j As Integer Dim DerniereLigneUtilisee As Long DerniereLigneUtilisee = Range("A" & Rows.Count).End(xlUp).Row 'liste colonne A For j = 1 To DerniereLigneUtilisee Cible = Cells(j, 1) 'Pour que fonction Val puisse reconnaitre les décimales: Remplacement des 'virgules par des points Cible = Replace(Cible, ",", ".") 'Pour gérer deux nombres qui se suivent: remplacement des espaces 'par un caractère Alpha Cible = Replace(Cible, " ", "x") For i = 1 To Len(Cible) If IsNumeric(Mid(Cible, i, 1)) Then Nombre = Val(Mid(Cible, i, Len(Cible) - i + 1)) If Len(Nombre) > 4 Then Cells(j, 2) = Nombre 'code postal en colonne B i = i + Len(Str(Nombre)) - 1 End If Next Next j End Sub
via55
Messages postés
14510
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
13 janvier 2025
2 740
Modifié le 22 juin 2022 à 13:30
Modifié le 22 juin 2022 à 13:30
Bonjour à tous
Quitte à passer par du VBA autant peut être utiliser une fonction personnalisée plus courte, basée sur le fait que le code postal est vraisemblablement la seule valeur numérique de longueur 5 caractères :
Fonction personnalisée à mettre dans un module de l'éditeur VBA
S’utilise ensuite selon la syntaxe =codepostal(A1)
Cdlmnt
Via
Quitte à passer par du VBA autant peut être utiliser une fonction personnalisée plus courte, basée sur le fait que le code postal est vraisemblablement la seule valeur numérique de longueur 5 caractères :
Fonction personnalisée à mettre dans un module de l'éditeur VBA
S’utilise ensuite selon la syntaxe =codepostal(A1)
Function codepostal(cell As Range) tablo = Split(cell, " ") ' découpage de la chaîne en fonction des espaces For n = 0 To UBound(tablo) ' boucle sur les valeurs obtenues If IsNumeric(tablo(n)) And Len(tablo(n)) = 5 Then codepostal = tablo(n) ' si la valeur est numérique et de longueur 5 elle est retenue Next End Function
Cdlmnt
Via
21 juin 2022 à 17:08
Un plan B si on ne veut pas écrire une formule un peu complexe via le addin Excel Pack de fonctions XLP et sa fonction EXTRAIRE_MOT, étant admis que le code postal est toujours dans notre exemple le cinquième "mot" (ce qui exclut les voies sans numéro ou les compléments d'adresse du style lieu-dit, résidence....).
La formule citée par jee pee me semble souffrir du même inconvénient, mais en notant que l'adresse y est cette fois-ci déclinée en 7 "mots".
https://www.excel-pratique.com/fr/fonctions-complementaires
https://www.excel-pratique.com/fr/fonctions-complementaires/extraire-mot
21 juin 2022 à 17:14
https://datanova.laposte.fr/explore/dataset/laposte_hexasmal/download/?format=xls&timezone=Europe%2FBerlin&lang=fr&use_labels_for_header=true
Et à chercher dans toute la colonne C Code_Postal le "texte" que l'on retrouve dans notre cellule.
21 juin 2022 à 18:03
=STXT(A2;NBCAR(A2)-EQUIV(VRAI;ESTNUM(--(STXT(A2;NBCAR(A2)-LIGNE($1:$255);1)));0)+4;5)
Modifié le 21 juin 2022 à 18:10
Modifié le 21 juin 2022 à 18:07