Aide sur formules et macro pour créer un index "rue"

Bonjour, cela fait déjà plusieurs semaines que je planche sur le sujet mais mes faibles connaissances en formules et macro me bloquent pour terminer mon fichier.

Je vous explique en quelques mots mon souci.

Je reçois un fichier avec des rues et compléments (bis,ter,ect..) que je dois regrouper dans un index en supprimant les doublons.

ex:

29 rue de paris "sabot" A1

27 rue de paris "sabot" A1

26 rue de paris "sabot A1

28 rue de paris "sabot"A1

le résulat:

Rue de paris 27 -29 A1

Rue de paris 26-28 A1

Je n'arrive pas à faire un tri correctement avec des formules ( voir pj) pas de séparation des paires et impaires et problème avec les "BIS" "ter" que je n'arrive pas à inclure dans mes formules.

En pj une copie de mon fichier: il n'y a pas la macro car aucune utilité vu que ce n'est que du copier/coller.

J'espère être clair sur ma demande ou que mon fichier le sera.

Merci encore pour votre aide.

15classeur1.xlsm (55.26 Ko)

Bonjour,

que fais-tu s'il y a un trou ?

28, 30, 34

2 lignes : 28-30 et 34 ?

ou une ligne : 28-34 ?

Dans l'absolu on ne sait pas si le 32 existe réellement ou non.

Même question pour 28, 30 BIS

1 ou 2 lignes ?

Les seules colonnes à utiliser sont A:C ?

Sinon complète ton explication

eric

Bonjour Eriiic

Désolé si je n'ai pas été très clair dans mon explication

Effectivement il faut les mettre sur 1 ligne:

1er chiffre: le plus petit de la rue et du sabot

2ème chiffre : le plus grand de la rue et du sabot

Ex: Paris 28 au 32 A1 ( peut importe si le 30 existe)

et pour les colonnes à utiliser c'est de A à D ( d pour prendre en compte la rue et mettre sur 2 lignes si 2 rues différentes mais avec le même sabot)

J'espère être plus clair sinon dis le moi

Cordialement

Pour simplifier le code , ce cas de figure est-il envisageable ou totalement exclu ?

12-18 sur A1, 20-26 sur B1, 28-30 retour sur A1

eric

Pour moi il n'y a pas de souci, en tout cas je n en vois pas mais je n'ai peut être pas pensé à tout.

est-il envisageable ou totalement exclu ?

désolé envisageable

Ce n'est pas pareil, ça nécessite beaucoup plus de réflexion.

Sinon fait quoi là ? :

3 E4 CHARLES

3 E5 CHARLES

9 E5 CHARLES

9 F1 CHARLES

146 H3 DIDEROT

146 H4 DIDEROT

etc

J'ai l'impression que ta base est complètement moisie et nécessite un nettoyage avant d'envisager quoique ce soit.

eric

Je sais que mes données ne sont pas top mais je reçois le fichier tel quel s'il y a doublon sur les numéros d'une même voie mais sur 2 sabots différents il faut les laisser que sur 1 sabot sauf s'il y a bâtiment A ou B , je ne sais pas si c'est faisable ?

Bonjour,

c'est bien ce que je pensais, ta question est rentrée facilement dans la catégorie des problèmes courts et simples à exposer, moins faciles à résoudre...

Au final j'ai préféré te laisser un n° sur tous les sabots où il apparait.

Ne connaissant pas ton métier, ça ne me choque pas outre mesure si un n° est réparti sur plusieurs sabots

Autant que tu vois s'il y a des anomalies à corriger dans la base (voir Diderot 124 par exemple, déclaré 3 fois)

J'ai mis une plage nommée Comp en T2:T5 pour les Bis, Ter. Si tu en rajoutes modifier la définition du nom.

Pour simplifier le code je trie ta base.

Pour avoir un tri correct, je dois remplir de 0 les vides, que je remet à vide ensuite. A savoir si jamais tu as des formules ici dans le vrai fichier.

Dans le résultat, j'ajoute un nombre variable d'espaces devant le 1er n° pour avoir également un tri correct (1, 2, 12 et non 1, 12, 2)

Garder vides les colonnes à gauche et à droite des résultats

Un bug peut facilement se nicher dans les programmes de ce type.

N'hésite pas à multiplier les cas de tests et regarder attentivement si le résultat est correct ET complet.

eric

8classeur1-1.xlsm (54.58 Ko)

Bonjour Eriiic

J'ai un souci avec le fichier je n'arrive pas à faire fonctionner la macro. En PJ une capture écran du message d'erreur.

Peux-tu m'aider ?

capture

Bonjour,

il me faut la ligne en jaune.

Si tu es sur Mac précise-le dans ton profil et teste sur un PC.

eric

Edit : Ah, vu. Si tu es sur 2010 .Sort n'était pas pareil. il faut que je fasse à l'ancienne...

Heu, quoique, c'était sur 2003.

j'attend ta réponse aux 2 questions

suite...

teste cette version

eric

11classeur1-1.xlsm (54.69 Ko)

Bonjour Eriiic

J'ai pris un peu de temps pour faire plusieurs test sur ta macro et elle marche super bien, après avoir fait plusieurs tests, je n'ai pas vu de soucis dans les résultats . J'aimerai supprimer les colonnes qui ne servent à rien entre les données et le résultat, est-ce possible et comment ? ( je peux garder comme ça, ça me va aussi )

En tout cas je te remercie pour ton aide et ta disponibilité.

Cordialement

Bonjour,

c'est vieux et je ne sais pas de quelles colonnes tu parles.

A regarder rapidement le résultat collé ne dépend d'aucune cellule, tu peux supprimer tout ce que tu veux.

Dans le doute tu pouvais tout simplement copier-coller valeur de ce qui t'intéresse dans un autre classeur.

eric

Bonjour Eriiic,

En PJ le fichier, ce sont les colonnes en jaunes que je souhaite supprimer.

La macro ne fonctionne plus quand je les supprime.

Bonjour,

Remplace ces lignes :

    ' nettoyage
    Application.ScreenUpdating = False
    i = Cells(Rows.Count, "Q").End(xlUp).Row - 9
    If i > 0 Then [Q10:R10].Resize(Cells(Rows.Count, "Q").End(xlUp).Row - 9).ClearContents
    ' collage result
    Set pl = [Q10].Resize(UBound(result), 2)

J'ai ajouté un contrôle s'il n'y a rien a nettoyer à la 1ère utilisation.

Et remplacer les Q et R par ta nouvelle destination.

eric

Rechercher des sujets similaires à "aide formules macro creer index rue"