Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraction du code du département

KIM

XLDnaute Accro
Bonjour le forum, bonjour les ami(e)s,
J'ai fait ma recherche sur le site mais sans succès. Je fais appel à vous et vous en remercie d'avance.
Je recherche 2 solutions :
1/ Extraire le code du département pour la france, les dom tom et l'étranger par une seule formule ou code vba;
2/ Compléter les autres colonnes du département selon la table dans l'onglet L_DptReg

1/ Pour extraire le code département d'une liste de codes postaux. j'utilise la formule suivante :
=GAUCHE(TEXTE(B6;"00000");2) et je l'adapte selon les cas ci-dessous :
- Pour les codes postaux des villes en france, aucun problème
- Pour les DOM TOM, je récupère seulement les 2 premiers car sinon =GAUCHE(TEXTE(B29;"00000");3)
- Pour les villes à l'étranger j'ai saisi un seul code le 99. par cette formule je récupère 00 sinon =GAUCHE(TEXTE(B25;"00");2)
je recherche une seule solution, formule ou macro, à appliquer pour tous les cas évoqués.
Est-ce possible ?
Merci
KIM
 

Pièces jointes

  • CPextractDPT.xlsm
    15.4 KB · Affichages: 22

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour KIM,

Un essai en fichier joint

Cordialement

EDIT : Bonjour piga25 , désolé pour la collision pas rafraichi en plus il y a les 984 986 ... pour les TOM que tu as zapé je crois .....
 

Pièces jointes

  • CPextractDPT.xlsm
    17 KB · Affichages: 27

KIM

XLDnaute Accro
Bonjour le fil et le forum,
@piga25
Merci pour ta formule, elle est restreinte car elle ne gère que le code 97, manque le code 98. Je peux la modifier sans problème.

@Jocelyn,
Réponse complète par formule comme d'habitude avec les données complétées du tableau de référence des départements et régions.
Je vais l'appliquer tout de suite.
Est-il possible de gérer les erreurs dans ta formule si code département erroné ?

Merci pour vous deux.

PS : Si des spécialistes vba sont disponibles, Je suis aussi preneur d'une version vba qui extrait le code département et complète les autres colonnes.

Merci encore pour toute votre aide
KIM
 

Jocelyn

XLDnaute Barbatruc
re,

Tu entends quoi par code département erroné

quand on a 99 la formule considére le code dep erroné et met "Etranger" cela gére le 99 maintenant si il y a un autre type d'erreur donne nous un exemple

A te lire

Cordialement
 

KIM

XLDnaute Accro
Re bonjour le fil,
@Jocelyn,
Merci pour l'explication. C'est clair.
En reprenant ma base de travail, je retrouve pour l'étranger des codes 99 et 99000.
Pour 99, je retrouve 99 comme code du département,
Par contre pour 99000, je retrouve 990 comme code du département.
Je peux corriger ma base si nécessaire et remplacer les 99000 par 99. Sinon est-ce compliqué de le traiter dans ta formule col E?

Merci d'avance
KIM
 

Jocelyn

XLDnaute Barbatruc
re,

Hum hum c'était de ma faute j'avais mis un >= il faut juste modifier de cette façon

mettre en E6

Code:
=SI(OU(GAUCHE(B6;2)*1=97;GAUCHE(B6;2)*1=98);GAUCHE(B6;3);TEXTE(GAUCHE(B6;2);"00"))

Cordialement
 

KIM

XLDnaute Accro
Merci le fil,
@Jocelyn, tes formules fonctionnent. Merci encore et bonne journée

PS : Si des spécialistes vba sont disponibles, Je suis aussi preneur d'une version vba qui extrait le code département et complète les autres colonnes.

Merci le forum
KIM
 

KIM

XLDnaute Accro
Bonjour le fil, bonjour Pierrejean,
Comment vas-tu? j'espère que tu n'as pas trop souffert avec la chaleur de ces derniers jours.
Merci pour le code. Je viens de le tester
1/ Pour le traitement des codes département 99, est -il possible de compléter les colonnes par "Etranger" ?
2/ Pour un tableau de 40 lignes, le traitement est long. j'ai rajouté au début et à la fin du code :
Application.ScreenUpdating = False
Application.ScreenUpdating = True
Il y a eu une très légère amélioration. J'ai l'impression qu'il traite ligne par ligne. Il y a plusieurs milliers de lignes dans mes tableaux. Y-a-t-il moyen d'améliorer le code ?
Merci d'avance
KIM
 

TBlog

XLDnaute Nouveau
 

TBlog

XLDnaute Nouveau
En mode formules simples

En E6 : =SI(STXT(B6;1;2)>="97";STXT(B6;1;3);STXT(B6;1;2))
En F6 : =SIERREUR(RECHERCHEV(E6;L_DptReg!B:E;2;0);"")
En G6 : =SIERREUR(RECHERCHEV(E6;L_DptReg!B:E;3;0);"")
En H6 : =SIERREUR(RECHERCHEV(E6;L_DptReg!B:E;4;0);"")
et on descend les formule
etc...
Cordialement
 

Modeste geedee

XLDnaute Barbatruc
Bonsour® une autre proposition tout en formule

à noter :
ajout à la liste des départements et listes nommées
- il n'existe pas de code postal Corse 2A ou 2B mais 20xxx
- Monaco utilise le code postal à la française "980xx" à ne pas pas inclure dans les TOM
 

Pièces jointes

  • CPextractDPT (1).xlsm
    22.2 KB · Affichages: 29

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…