Bonsoir à toutes et à tous, bonsoir
@bthw33
Quand je rajoute des données dans la feuille liste, cela ne fonctionne pas, j'ai bien vu que tu avais convertis les nombres en texte, j'ai essayé de les convertir aussi en texte mais que cela ne fonctionne pas... Qu'est que je fais de mal?
En fait dans la feuille "Data" les codes postaux sont sous forme de nombre (choisis l'alignement standard, ils sont cadrés à droite)
Dans la feuille Liste les codes postaux sont enregistrés sous forme de chaînes de caractères (choisis alignement standard, ils sont cadrés à gauche). Moi ça ne me choque pas car ils y a des CP alphanumériques pour la corse, et pour avoir les 01xxx etc il faut soit jouer avec un format de nombre "00000" ou les avoir sous forme de texte.
J'ai pris le parti de ne pas modifier tes données, ne sachant pas comment tu les récupères.
Mais pour la comparaison il faut, soit que les 2 soient des textes, soit que les deux soient des nombres. Vu les formules utilisées j'ai opté pour les textes.
Donc si tu tu saisis manuellement des CP dans ta feuille liste
avant de le saisir, choisis le format "Texte" ("@"),
Excel te met un petit triangle vert en haut à gauche de la cellule avec l'indication "Nombre stocké sous forme de texte".
Maintenant si tu ne ré-importes pas tes données d'une source extérieure, tu peux les convertir en nombres facilement : Sélectionne les textes à convertir, tu as un petit panneau "Danger", clique dessus et choisis convertir en nombre :
Si tu fais cela, il faudra changer la formule qui convertit les CP de la feuille Data en texte et remplacer TEXTE($A2;"00000") par $A2.
Voilà pour CP.
Je n'arrive pas a trouver ton plan de normalisation ?
Là j'ai un peu analysé tes deux listes de noms de ville
Dans la liste "Data"
- Il n'y a pas d'espace excepté après un article situé en tête de nom (LE QUELQUE-CHOSE-LES-DEUX-RIVIERES) donc il faut conserver les "LE ", "LA ", "LES " en tête de nom (je ne pense pas que l'on ait des articles indéfinis, auquel cas il faudrait aviser)
- Les mots SAINT ET SAINTE apparaissent en toutes lettres.
- Les Apostrophes existent
Dans la liste "Liste"
- Il y a des espaces entre les mots
- Les abréviations ST et STE sont utilisées à la place de SAINT et SAINTE
- Les apostrophes sont remplacées par des espaces.
Dans un premier temps je traite les "ST " en tête que je remplace par "SAINT-" et je complète en remplaçant dans le reste du nom tous les espace par des "-"
SI(GAUCHE(_TCVILL;3)="ST ";"SAINT-"&SUBSTITUE(DROITE(_TCVILL;NBCAR(_TCVILL)-3);" ";"-");
Si les 3 premières lettres sont différentes de "ST " je traite les "STE " de tête que je remplace par "SAINTE-" et que je complète en remplaçant dans le reste du nom les espaces par des "-".
SI(GAUCHE(_TCVILL;4)="STE ";"SAINTE-"&SUBSTITUE(DROITE(_TCVILL;NBCAR(_TCVILL)-4);" ";"-");
Si je ne suis pas dans un des 2 cas précédents, je remplace à partir du 5 ème caractères tous espaces par des "-" :
GAUCHE(_TCVILL;4)&SUBSTITUE(DROITE(_TCVILL;NBCAR(_TCVILL)-4);" ";"-")
(le
GAUCHE(_TCVILL;4) se justifie car je veux garder les "LES " en début de nom)
A partir de ce nom transformé je remplace les "-D-" par des "
-D'" (cas des D apostrophe en milieu de nom)
je remplace les "-L-" par des "
-L'" (cas des L apostrophe en milieu de nom)
je remplace les "D " par des "
D'" (cas des D apostrophe en début de nom)
je remplace les "L " par des "
L'" (cas des L apostrophe en début de nom)
Voilà, en écrivant cela je me rends compte que je ne traite pas les ST et STE en milieu de nom !!!
Je pense qu'il faut peut-être faire l'inverse (dé-Normer les noms de la feuille Data)
Mais ré-importes-tu souvent des données, car la transformation serait plus simple par macro après chaque importation.
MODIF : J'étais vraiment fatigué hier, j'ai oublié de cliquer sur la case Répondre ! Bon du coup je prend en compte ton dernier post dans un instant.
mais je ne trouve pas le normage ?
Bon je ne pédale pas très vite, le post #25 date en fait d'hier (je me suis déconnecté en oubliant de le poster
Et ce post est en gestation depuis 17h15 mais j'ai fait une longue interruption pour d'autres activités entre temps. Alors un peu de patience STP !
Amicalement
Alain