Attribution code INSEE à des communes

Bonjour à tous,

Dans le cadre de mon stage, je dois mettre en ordre une base de données qui comporte, entre autres, des noms de communes. J'ai donc besoin d'attribuer le bon code INSEE à chacune des communes de mon tableur. Il y a des communes du Calvados, de la Manche et de l'Orne. Je me suis procuré le tableau Excel de l'INSEE dont j'ai simplement gardé le Code INSEE (CODGEO), le nom de commune (LIBGEO), et le Code EPCI (EPCI), ce dernier étant une tâche secondaire. J'ai donc ça dans une première feuille sur mon fichier Excel, dans une autre feuille, j'ai mes communes provenant de la base de données sur laquelle je travaille.
Il est fortement probable que pour une petite (ou pas) partie des communes, la syntaxe pose problème, mais c'est un problème secondaire selon moi car la manipulation que je recherche me permettrait d'automatiser l'attribution du Code INSEE aux communes et je pourrais corriger les fautes de syntaxe.

Peut-être que certains vont me demander pourquoi je ne reprends pas tout simplement les communes de l'INSEE, c'est parce que dans mon fichier commune, il n'y a pas toutes les communes comparé au fichier de l'INSEE et/ou certains noms de communes ont changé, et par conséquent cela "décale" tout et rend toute manipulation simpliste impertinente. J'ai essayé la fonction SI, la fonction RECHERCHE et RECHERCHEV, en vain, soit ce n'est pas vraiment possible, soit je m' prends mal ^^'.

EN CLAIR :
j'ai seulement besoin que le Code INSEE soit en face de la bonne commune, à la manière d'une Jointure Attributaire comme il est possible de faire sur les logiciel SIG (pour ceux qui connaissent).

N'hésitez pas à me poser des questions si je n'ai pas été assez clair !

Merci d'avance pour votre aide,

Coucou,

Avec de la RechercheV ca irai ?

Pourrais-tu nous proposer la liste des communes extraite de cette base de données ?

Merci d'avoir répondu si vite !

Lunissia, ta réponse a l'air de résoudre mon problème, je vais vérifier cela en détail, pourrais-tu m'expliquer ce que tu as marqué dans les valeurs demandées dans la fonction RechercheV ? Car j'avais essayé mais pas réussi.

Sinon Optimix, la liste des communes extraites de la base de données se trouve dans la feuille " "Mes" communes ", si tu veux jeter un coup d'œil.

Merci encore ! Je vous redit demain si tout colle

En 1er j'ai changer la place de la colonne CODGEO car avec la rechercheV ta premiere colonne doit correspondre avec ta valeur recherché

=RECHERCHEV(A2;'Codes INSEE'!A:D;2;FAUX)

Et après on recherche A2 dans la table A:D et on veux extraire la 2ème colonne (enfin ca dépend d'où tu place le CODGEO) après le "faux" parceque on veux une recherche précise.

Bonjour à tous,

un essai macro qui prend en compte la présence ou non des tirets (-) dans le nom des communes :

Sub Lakai()
Dim T1, T2, i As Long, Dico, DerLig As Long, Tempo As String
Set Dico = CreateObject("Scripting.Dictionary")
With Worksheets("Codes INSEE")
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
T1 = .Range("A2:B" & DerLig)
For i = LBound(T1, 1) To UBound(T1, 1)
    Tempo = UCase(Replace(T1(i, 2), " ", "-"))
    Dico(Tempo) = T1(i, 1)
Next
End With

With Worksheets("""Mes"" communes") 'mauvaise idée de mettre des " dans le nom de feuille
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
T2 = .Range("A2:B" & DerLig)
For i = LBound(T2, 1) To UBound(T2, 1)
    Tempo = UCase(Replace(T2(i, 1), " ", "-"))
    If Dico.Exists(Tempo) Then
        T2(i, 2) = Dico(Tempo)
    Else
        T2(i, 2) = "commune inconnue"
    End If
Next
.Range("A2").Resize(UBound(T2, 1), UBound(T2, 2)) = T2
End With
End Sub

A+

Merci Lunissia, c'est déjà plus clair dans ma tête, il y avait un paramètre que je n'avais pas bien compris. De ce que j'ai pu voir, ce sont les bons Code INSEE qui ont été attribués, sans décalage, c'est tout bon ! Cependant, dès qu'il y a une différence d'orthographe, Excel ne comprend pas, je vais corriger ça à la main, mais ça m'a déjà beaucoup avancé, merci beaucoup !

AlgoPlus, j'aimerais bien essayer ta méthode également, mais étant plutôt débutant sur Excel, je ne sais pas vraiment où introduire ton code dans Excel, peux-tu m'éclairer ? Merci beaucoup également.

Bonjour tout le monde.
Les difficultés :
- dans la base de données, certaines communes commencent par "L ', La, Le ou Les". Pour d'autres l'article est rejeté à la fin " (Le)", (La), (Les), etc.
- dans la base de l'INSEE, les tirets ne sont pas systématiques dans les noms de commune composés, de même dans la base de données.
- On trouve des accents sur certaines majuscules ("É", Â) de la base de données et des "E dans l'O" (Œ) dans la liste de l'INSEE.
- 24 communes dans la base de données ont changé de nom du fait de la délégation de leurs compétences à une commune de plus grande importance.
- enfin, cerise sur le gâteau, il y a 28 noms de commune dans la base de données qui sont mal orthographiés, incomplets, trop complets ou abrégés.

Tout cela pour justifier le temps que met la macro ci-dessous pour retrouver ses billes.

61communes.xlsm (87.26 Ko)

Je ne voudrais pas être à ta place, parce que maintenant il va falloir vérifier

Effectivement j'ai identifié tous ces problèmes hier aprem et ce matin, là ça fait deux heures que j'inscrit le bon Code INSEE pour chaque commune pour laquelle la fonction RechercheV n'est pas passée, à cause des problèmes que tu as énoncé.
C'est chiant ! Mais il faut le faire :p

Je vais continuer ce que j'ai commencé ce matin, c-à-d inscrire les codes INSEE qui ne sont pas passés à la main, et ensuite je vérifierais par rapport à ce que tu as proposé. Je te dirais ce qu'il en est ;)

Bon courage.

Tu n'as pas encore fini ?

Si si, j'ai dû finir mercredi il me semble, j'ai vérifié et rectifié tout ceux qui n'étaient pas bon.

Merci beaucoup de votre aide !!

Rechercher des sujets similaires à "attribution code insee communes"