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
 

Fichiers joints

piga25

XLDnaute Barbatruc
Bonjour,
Un essais à mettre en E6 et à recopier vers le bas
Code:
=SI(B6=99;99;SI(GAUCHE(B6;2)="97";GAUCHE(B6;3);GAUCHE(B6;2)))
 

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 .....
 

Fichiers joints

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
 

pierrejean

XLDnaute Barbatruc
Re

cette version devrait être plus rapide
PS: On est en mode Orage donc température acceptable .Et l'orage n'est pas trop méchant !!!
 

Fichiers joints

TBlog

XLDnaute Nouveau
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
 

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®
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......... =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
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
 

Fichiers joints

KIM

XLDnaute Accro
Bonjour le fil et le forum,
@pierrejean,
Effectivement c'est plus rapide. le mot "Etranger" s'affiche pour le département seulement. Dans la macro Dico, j'ai modifié la ligne suivante
Departements("99") = "Etranger" & "|" & "Etranger" & "|" & "Etranger" & "|"
mais rien ne s'affiche pour la Région et le Métropole. J'ai suivi le conseil de Modeste geedee et j'ai rajouté 99 dans la liste des départements et régions et ça fonctionne.
99 | Etranger | Etranger | Etranger.
Merci Pierrejean.

@Jocelyn, Modeste geedee
Merci encore, vos formules fonctionnent TB. Merci Modeste geedee pour les conseils concernant certains départements.

@TBlog, j'ai modifié seulemnt la 1è formule en E6 (celle de Jocelyn ou celle de Modeste geedee) afin de gérer le 99
En E6 : =SI(OU(GAUCHE(B6;2)*1=97;GAUCHE(B6;2)*1=98);GAUCHE(B6;3);TEXTE(GAUCHE(B6;2);"00"))

Merci à vous tous, Merci le forum
KIM
 

piga25

XLDnaute Barbatruc
Bonjour,
Pour la Corse du Sud les codes postaux vont de 20 000 à 20 190.

Pour la Haute Corse les codes postaux vont de 20 200 à 20 620.
 

KIM

XLDnaute Accro
Bonsoir le fil, Bonsoir Pierrejean,
Je reviens vers toi car je n'arrive pas à adapter ton code avec mes données réelles.
Dans le fichier joint j'ai remis les données dans les bonnes colonnes.
Code postal en col AF, à remplir les colonnes AT, AU, AV et AW.
J'ai modifié Test avec les bonnes colonnes. Quelque chose m'échappe car j'ai un message d'erreurs au niveau de la ligne :
If Not Departements.exists("99")
"Variable objet ou variable de bloc With non définie"
J'ai besoin de tes lumières, Merci encore
KIM
 

Fichiers joints

Discussions similaires


Haut Bas