A voir également:
- Fonction Substitue en chaine
- Fonction si et - Guide
- Chaine tnt gratuite sur mobile - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
- Plus de chaine tv - Guide
- Fonction moyenne excel - Guide
6 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
26 juin 2014 à 19:41
26 juin 2014 à 19:41
Bonjour,
Si tu expliquais ton besoin ?
Joindre un fichier de travail.
eric
Si tu expliquais ton besoin ?
Joindre un fichier de travail.
eric
Bonsoir,
Désolé pour ce manque d'explication.
J'ai un fichier d'adresse. J'ai réussi jusqu'ici à séparer le numéro du reste de l'adresse. J'ai donc désormais des cellules avec par exemple :
- RUE DES FLEURS
- ALLEE CONDORCET
- AVENUE DE LA REPUBLIQUE...
Je dois désormais remplacer toutes les RUE du fichier par R, les ALLEE par ALL...etc
La fonction SUBSTITUE répond à ma demande mais elle est limitée en nombre car j'ai bien plus de 7 ou 10 abréviations à remplacer dans mon fichier (AVE, ROUTE, RTE, COURS, IMPASSE, IMP...).
J'ai déjà utilisé une macro qu'un forumeur m'a gentiment fourni, dans laquelle il utilisait un tableau pour stocker les valeurs recherchées. J'imagine qu'il doit être possible de faire un tableau pour recencer mes RUE, ALLEE, AVENUE et un tableau de correspondance R, ALL, AV... pour faire les changements. Malheureusement, je n'ai pas les compétences requises en programmation.
Désolé pour ce manque d'explication.
J'ai un fichier d'adresse. J'ai réussi jusqu'ici à séparer le numéro du reste de l'adresse. J'ai donc désormais des cellules avec par exemple :
- RUE DES FLEURS
- ALLEE CONDORCET
- AVENUE DE LA REPUBLIQUE...
Je dois désormais remplacer toutes les RUE du fichier par R, les ALLEE par ALL...etc
La fonction SUBSTITUE répond à ma demande mais elle est limitée en nombre car j'ai bien plus de 7 ou 10 abréviations à remplacer dans mon fichier (AVE, ROUTE, RTE, COURS, IMPASSE, IMP...).
J'ai déjà utilisé une macro qu'un forumeur m'a gentiment fourni, dans laquelle il utilisait un tableau pour stocker les valeurs recherchées. J'imagine qu'il doit être possible de faire un tableau pour recencer mes RUE, ALLEE, AVENUE et un tableau de correspondance R, ALL, AV... pour faire les changements. Malheureusement, je n'ai pas les compétences requises en programmation.
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 737
26 juin 2014 à 21:34
26 juin 2014 à 21:34
Bonsoir alain
Une possibilité avec une macro simple :
1° Etablir sur une Feuil1 en colonne A la liste des types de voie et en colonne B la liste des abreviations correspondantes
2° Ouvrir l'éditeur VBA (Alt F11) et Insertion Module puis copier coller la fonction suivante :
Function remplacement(chaine)
For n = 1 To 10 'boucle sur 10 premieres lignes
typevoie = Sheets("Feuil1").Range("A" & n) ' lit le type de voie dans la cellule An de Feuil 1
abrev = Sheets("Feuil1").Range("B" & n) ' lit l'abrevation dans la cellule Bn de Feuil 1
' si le type de voie est trouvé dans chaine (l'adresse en A de Feuil 2) on remplace le type de voie par l'abrev et on sort de la sub
If InStr(chaine, typevoie) > 0 Then remplacement = Replace(chaine, typevoie, abrev): Exit For
Next n
End Function
Modifier la longueur de la boucle si necessaire (elle ne va que jusqu'à 10 lignes dans mon ex)
Modifier le nom de la feuille dans les 2 lignes suivantes si autre que Feuil1
3° Dans l'autre feuille de ton fichier où est la liste de tes adresses tu peux utiliser n'importe où la fonction remplacement (accessible comme toute autre fonction d'Excel)
en tapant en B5 par ex =remplacement(A2) tu auras r des Fleurs en B5 si tu avais rue des Fleurs en A2 de ta feuille (si dans bien sur dans ton tableau de correpondance sur la 1ere feuille tu avais mis rue en 1ere colonne et r en 2eme colonne)
Voilà je ne pense pas qu'on puisse faire bien plus simple
Cdlmnt
Une possibilité avec une macro simple :
1° Etablir sur une Feuil1 en colonne A la liste des types de voie et en colonne B la liste des abreviations correspondantes
2° Ouvrir l'éditeur VBA (Alt F11) et Insertion Module puis copier coller la fonction suivante :
Function remplacement(chaine)
For n = 1 To 10 'boucle sur 10 premieres lignes
typevoie = Sheets("Feuil1").Range("A" & n) ' lit le type de voie dans la cellule An de Feuil 1
abrev = Sheets("Feuil1").Range("B" & n) ' lit l'abrevation dans la cellule Bn de Feuil 1
' si le type de voie est trouvé dans chaine (l'adresse en A de Feuil 2) on remplace le type de voie par l'abrev et on sort de la sub
If InStr(chaine, typevoie) > 0 Then remplacement = Replace(chaine, typevoie, abrev): Exit For
Next n
End Function
Modifier la longueur de la boucle si necessaire (elle ne va que jusqu'à 10 lignes dans mon ex)
Modifier le nom de la feuille dans les 2 lignes suivantes si autre que Feuil1
3° Dans l'autre feuille de ton fichier où est la liste de tes adresses tu peux utiliser n'importe où la fonction remplacement (accessible comme toute autre fonction d'Excel)
en tapant en B5 par ex =remplacement(A2) tu auras r des Fleurs en B5 si tu avais rue des Fleurs en A2 de ta feuille (si dans bien sur dans ton tableau de correpondance sur la 1ere feuille tu avais mis rue en 1ere colonne et r en 2eme colonne)
Voilà je ne pense pas qu'on puisse faire bien plus simple
Cdlmnt
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
26 juin 2014 à 23:49
26 juin 2014 à 23:49
Re,
Comme il s'agit d'adresses, pour les abréviation tu devrais te baser sur celles officielles pour les type de voie.
Rue ne s'abrège pas R par exemple.
Un guide avec les principales :
http://www.sirene.fr/sirene/public/variable/typvoie
Et un document plus complet : http://www.dsi.cnrs.fr/conduite-projet/phasedeveloppement/technique/etude-detaillee/modele-de-donnees/regles-enregistrement-adresses-postales.doc
Avec les bis etc en p6, et le types de voies à la fin.
eric
Comme il s'agit d'adresses, pour les abréviation tu devrais te baser sur celles officielles pour les type de voie.
Rue ne s'abrège pas R par exemple.
Un guide avec les principales :
http://www.sirene.fr/sirene/public/variable/typvoie
Et un document plus complet : http://www.dsi.cnrs.fr/conduite-projet/phasedeveloppement/technique/etude-detaillee/modele-de-donnees/regles-enregistrement-adresses-postales.doc
Avec les bis etc en p6, et le types de voies à la fin.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
@Eriic : merci pour cette précision, mais les données que je dois traiter seront couplées à des données de l'IGN, qui, entre autre, utilise R pour abrévier RUE.
@via55 : merci cela fonctionne assez bien. Néanmoins, malgré la présence de certains mots dans la feuil1 associés à une abréviation, ils ne sont pas traiter dans le fichier. Une idée de la raison ?
Ex : IMPASSE reste IMPASSE au lieu de IMP, idem pour LOTISSEMENT ou ROND POINT
Ex : IMPASSE reste IMPASSE au lieu de IMP, idem pour LOTISSEMENT ou ROND POINT
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
27 juin 2014 à 11:38
27 juin 2014 à 11:38
Bonjour,
via ayant maladroitement cassé sa boule de cristal tu devrais déposer un fichier exemple.
eric
via ayant maladroitement cassé sa boule de cristal tu devrais déposer un fichier exemple.
eric
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 737
27 juin 2014 à 11:47
27 juin 2014 à 11:47
Bonjour
Salut à Eric au passage ;)
Comme le dit bien Eric, sans fichier exemple posté sur cjoint.com avec indication ici ensuite du lien fourni impossible de deviner ce qui cloche
Post un court extrait du fichier avec seulement quelques lignes, 2/3 qui fonctionnent et 2/3 qui ne fonctionnent pas et la macro
Dans l'attente
Salut à Eric au passage ;)
Comme le dit bien Eric, sans fichier exemple posté sur cjoint.com avec indication ici ensuite du lien fourni impossible de deviner ce qui cloche
Post un court extrait du fichier avec seulement quelques lignes, 2/3 qui fonctionnent et 2/3 qui ne fonctionnent pas et la macro
Dans l'attente