Extraire un code postal d'un texte

jpr14

XLDnaute Nouveau
Bonjour,
Je veux extraire des codes postaux d'annuaires pour cartographier des localisations.
Ayant 15 000 données...
J'ai reconnu le texte en OCR et exporté dans Excel.
La qualité de la reconnaissance est variable mais c’est OK pour les codes postaux.
J'obtiens une ligne par individu à localiser. avec un emplacement variable du code postal.
Exemple1 Nom Prénom Code postal // Exemple 2 Nom Prénom Nom Prénom code postal.
La forme est constante : 5 chiffres contigus précédés d'une virgule et d'un espace.
Après les cinq chiffres, c'est variable :espace, lettre, virgule point...

Je ne connais pas les macros. Je vois m'y mettre mais...
J'ai essayé de bricoler avec CHERCHE. Au mieux ça me repère de code postal.
J'ai pensé qu'il devait être possible d'indiquer que ce sont des chiffres que ne cherche en remplaçant le ? par autre chose que je ne connais pas . J'ai également pensé au supprimer le texte pour ne garder que les chiffres...
Du bidouillage donc.
Excel est magique, mais il faut un magicien.
Quelle est la formule ?
 

Pièces jointes

  • Extraire code postal.xlsx
    10.1 KB · Affichages: 87

R@chid

XLDnaute Barbatruc
Re : Extraire un code postal d'un texte

Bonjour @ tous,
Par formule Matricielle,
en A2,
Code:
=STXT(B2;EQUIV(VRAI;ESTNUM(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1)*1);0);5)
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas
@ + +
 

jpr14

XLDnaute Nouveau
Re : Extraire un code postal d'un texte

CP Erreur 1.jpgCP Erreur 2.jpgAprès test, qq petits problèmes

Boisgontier :
Ca marche sur la pièce jointe mais quand j'essaie sur mon fichier,
non, car la fonction codepostal ne semble pas présente.
Elle n'apparit pas quand je tape "=co...", la seule proposée est CoDE V Erreur 1

R@chid,
Quand je colle le code proposé en A2 , j'obtiens "#NOM?",
V. erreur 2

Quel est le problème ?
Cordialement.
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Extraire un code postal d'un texte

Bonjour jpr14,

1) La fonction "CodePostal" de Boisgontier est une fonction personnalisée. Tu dois la copier dans ton fichier, dans un Module de l'éditeur VBA

Code:
Function CodePostal(c)
  Application.Volatile
  Set obj = CreateObject("vbscript.regexp")
  obj.Pattern = "\d{5}"
  Set a = obj.Execute(c)
  If a.Count > 0 Then CodePostal = a(0) Else CodePostal = ""
End Function

2) As-tu validé la fonction en matricielle comme l'as écrit Rachid. Après avoir tapé la formule, tu dois faire Ctrl+Maj+Entree, pas seulement Entree.

A+
 

jpr14

XLDnaute Nouveau
Re : Extraire un code postal d'un texte

Bonjour,

En ce qui concerne STXT, c'était écrit, et même en rouge...
Avec "CTRL MAJ Entrée", c'est OK.
Merci pour le rappel.
A titre informatif, pourquoi est ce que "Entrée" ne suffit pas ?

En ce qui concerne ma fonction Codepostal, c'est super,
prêt à l'emploi mais...
Je me suis risqué pour la première fois dans VBA : Alt F11.
J'ai ouvert un classeur, collé la formule...

Et après ?
Etait ce qu'il fallait faire ?

A +
 

Pièces jointes

  • CP3.jpg
    CP3.jpg
    42.7 KB · Affichages: 114

Grand Chaman Excel

XLDnaute Impliqué
Re : Extraire un code postal d'un texte

Bonjour,

1) il faut valider avec CTRL +MAJ + ENTREE parce que c'est une formule matricielle. Fais une recherche sur le sujet, il a plein d'exemples et de tutos disponibles sur le net.

2) tu dois copier le code dans TON classeur qui contient les codes postaux. D'après ton image, tu l'as copié dans le Module1 du classeur1. C'est donc dans CE classeur que tu pourrais utiliser la formule en tapant dans une cellule =CODEPOSTAL(XXX).
 

jpr14

XLDnaute Nouveau
Re : Extraire un code postal d'un texte

Je n'avais pas compris que la fonction ne fonctionnait que dans le classeur où elle était mise.
Voilà. Je n'ai plus qu'à retourner à mes annuaires.
Et, quand ,'aurai un peu de temps à creuser un peu la chose.
Merci à tous.
 

Discussions similaires

Statistiques des forums

Discussions
312 386
Messages
2 087 850
Membres
103 669
dernier inscrit
Anne Sicard