Combobox a affichage dynamique
Bonjour,
En VBA pour excel 2010 j'ai le fichier texte des 36000 communes de France avec le code INSEE de la commune.
J'ai chargé ce fichier en mémoire et j'ai écrit une recherche dichotomique sur la table correspondant à ce fichier.
Je veux me servir de cette table pour que sur un userform un utilisateur puisse retrouver rapidement une commune en ne tapant
que les premières lettres du nom de la commune.
L'idéee toute simple est d'utiliser un combobox et d'alimenter dynamiquement la liste déroulante au fur et a mesure des caractères frappés par l'utilisateur.
Je cherche une bonne stratégie de gestion des évènements pour faire face aux comportements imprévisibles de l'utilisateur remplissant sa zone de saisie.
Je cherche quelqu'un qui s'est déjà frotté à ce genre de situation.
D'avance merci
bonsoir Aj3309 le forum
tu nous mets un petit bout de ton fichier et on va te faire cela sans souci
a+
Papou
Bonsoir,
Merci pour cette rapide réponse.
Le fichier demandé je l'ai en beaucoup de format, je vous propose du CVS avec séparateur ;
CDC;CHEFLIEU;REG;DEP;Code INSEE;AR;CT;TNCC;ARTMAJ;Commune;ARTMIN;NCCENR
0;0;82;01;001;2;10;5;(L');ABERGEMENT-CLEMENCIAT;(L');Abergement-Clémenciat
0;0;82;01;002;1;01;5;(L');ABERGEMENT-DE-VAREY;(L');Abergement-de-Varey
0;1;82;01;004;1;01;1;;AMBERIEU-EN-BUGEY;;Ambérieu-en-Bugey
0;0;82;01;005;2;30;1;;AMBERIEUX-EN-DOMBES;;Ambérieux-en-Dombes
0;0;82;01;006;1;04;1;;AMBLEON;;Ambléon
0;0;82;01;007;1;01;1;;AMBRONAY;;Ambronay
0;0;82;01;008;1;17;1;;AMBUTRIX;;Ambutrix
0;0;82;01;009;1;04;1;;ANDERT-ET-CONDON;;Andert-et-Condon
0;0;82;01;010;1;31;1;;ANGLEFORT;;Anglefort
0;0;82;01;011;4;22;1;;APREMONT;;Apremont
0;0;82;01;012;1;15;1;;ARANC;;Aranc
0;0;82;01;013;1;28;1;;ARANDAS;;Arandas
0;0;82;01;014;4;23;1;;ARBENT;;Arbent
0;0;82;01;015;1;04;1;;ARBIGNIEU;;Arbignieu
0;0;82;01;016;2;26;1;;ARBIGNY;;Arbigny
0;0;82;01;017;1;28;1;;ARGIS;;Argis
0;0;82;01;019;1;36;1;;ARMIX;;Armix
0;0;82;01;021;2;42;1;;ARS-SUR-FORMANS;;Ars-sur-Formans
0;0;82;01;022;1;09;1;;ARTEMARE;;Artemare
0;0;82;01;023;2;02;1;;ASNIERES-SUR-SAONE;;Asnières-sur-Saône
0;0;82;01;024;2;21;1;;ATTIGNAT;;Attignat
0;0;82;01;025;2;02;0;;BAGE-LA-VILLE;;Bâgé-la-Ville
0;1;82;01;026;2;02;0;;BAGE-LE-CHATEL;;Bâgé-le-Châtel
0;0;82;01;027;2;20;0;;BALAN;;Balan
0;0;82;01;028;2;30;0;;BANEINS;;Baneins
0;0;82;01;029;2;11;0;;BEAUPONT;;Beaupont
0;0;82;01;030;2;34;0;;BEAUREGARD;;Beauregard
0;0;82;01;031;4;41;0;;BELLIGNAT;;Bellignat
0;0;82;01;032;2;20;0;;BELIGNEUX;;Béligneux
0;1;82;01;033;4;03;0;;BELLEGARDE-SUR-VALSERINE;;Bellegarde-sur-Valserine
0;2;82;01;034;1;04;0;;BELLEY;;Belley
Les valeurs de ce fichier je les ai déja en mémoire sous forme d'une table à 36000lignes et 12 colonnes.
Pour hiérarchisé les problèmes, en démarrant ma procédure je saurais dans quel département je veux travailler.
Bonsoir Aj3309 le forum
super ta recopie, mais moi je souhaite un fichier excel pour pouvoir travailler dessus et de préférence correspondant à la structure de ton fichier réel de manière à te faire une réponse qui conviendra pour ton fichier complet ,merci
a+
papou
Bonsoir
Je ne vois pas très bien de quel fichier Excel tu as besoin.
Il peut s'agir du fichier des communes ou bien du fichier du projet.
S'il s'agit du fichier Excel des communes pas de problèmes je suis parti d'un tel fichier pour faire dun export en CSV que j'ai copié-collé dans le message.*
Par contre s'il s'agit du fichier Excel de mon projet, il n'est pas encore assemblé.
J'ai terminé l'analyse fonctionnelle, je sais exactement ce qu'il y a à faire, maintenant je fais des petites maquettes de faisabilité avant de me lancer dans l'assemblage global.
La maquette que j'ai à faire est toute simple = un utilisateur rentre dans une zone un nom de commune qui doit obligatoirement appartenir à la table des communes.
Le programmeur stupide genre sécurité sociale dira c'est simple y-a-ka demander à l'utilisateur de rentrer le nom de la commune dans une zone puis de balayer l'ensemble des communes pour voir si cette commune existe et si cela n'existe pas il a qu'a re-rentrer le nom de sa commune..
Moi je veux l'aider au maximum pour qu'il donne le nom de sa commune avec un minimum de caractère saisis et un minimum de clic..
Donc de quel fichier parles-tu.
D'avance merci
Bonjour Aj3309 le forum
je pense que quand on ne veut pas comprendre on ne comprend pas !!!
Tu demandes de l'aide, je te demande un fichier avec tes listes à traiter et toi tu me donnes des données txt même pas formatées jeté dans le post !!!!!
Bref je l'ai fait le fichier excel devant une telle mauvaise foi évidente , j'ai donc recopié et formaté comme je pensais.
Voilà le fichier en retour, avec de ce que j'ai compris le traitement de 12 colonnes mais les 10 premières je ne vois pas trop l'intérêt mais bon.
Tu ouvres recherche en cliquant le bouton recherche, et tu tapes n'importe quoi du type "am" pour avoir tous les noms qui possèdent des "am" enfin teste
a+
papou
Bonjour,
Toutes mes excuses je suis nouveau sur ce forum et je n'avais pas vu que vous aviez mis en place un système simple et efficace d'échange de fichier.
Le fichier que tu m'as envoyé est exactement le genre de maquette qui atteste la faisabilité de la fonctionnalité envisagée, donc merci c'est vraiment la réponse que je cherchais.
Dans le fichier il y a 12 colonnes car c'est le référentiel officiel des communes publié par l'INSEE.
En concaténant la colonne département brute (zéro à gauche) avec la colonne code commune brut on obtient le code officiel INSEE de la commune.
D'autres colonnes permettent de faire des liens avec les fichiers du référentiel administratif de l'INSEE
.Ma prochaine étape n'est pas informatique il s'agit de trouver des référentiels gratuits des lieux-dits de France.
Ensuite depuis Excel il faudrait que je trouve une solution pour récupérer les coordonnées GPS du lieu-dit.
Encore une fois merci
Bonjour Aj3309 le forum
mais tu as besoin d'une colonne qui concatène les deux pour obtenir ton numéro insee ou pas ?
si oui un petit exemple dans le fichier et tu le reposte et je te ferai la modif si besoin
par contre pour les coordonnées GPS là moi je ne sais pas ou trouver cela
a+
papou
Merci pour toutes tes réponses.
Pour ce qui est de la concaténation là je n'ai pas de problèmes.
Par habitudes héritées des gros systèmes (Cobol etc.......) je travaille plus facilement en mémoire que sur des colonnes d'une feuille.
Exemple =
Public Type LigneTableauDesPieces
Piece As Long ' Numéro de la pièce
Designation As String ' Désignation de la pièce
Categorie As String ' Catégorie à laquelle appartient la pièce
Fonction As String ' Fonction spécifique remplit par la pièce
Equipe As Long ' Equipe à laquelle est attribuée cette pièce
Surface As Long ' Surface de la pièce en m2
Etage As Long ' Code étage valant 1 ou 2
Aile As Long ' Code aile 1 = numéros impairs 2 = numéros pairs
NbreTravee As Long ' Nombre de travées de la pièce
TraveeDeb As Long ' Numéro de la première travée de la pièce
TraveeFin As Long ' Numéro de la derniere travée de la pièce
ColDebPlan As Long ' Numéro de la première colonne de la pièce sur le plan
ColFinPlan As Long ' Numéro de la dernière colonne de la pièce sur le plan
LigPlan As Long ' Numéro de la ligne de la pièce sur le plan
CouleurTexte As Long ' Couleur du texte de la pièce sur le plan
CouleurFond As Long ' Couleur du fond de la pièce sur le plan
Selectionne As String ' La pièce réponds ou non au critère de sélection
End Type ' Fin déclaration type LigneTableauDesPieces
'#D Déclaration d'un tableau à l'image des données de la feuille excel de départ
'#D chaque ligne du tableau à une structuration correspondant à LigneTableauDesPieces
'#D ce tableau sera dimensionné avec le nombre de pièces total aprés son calcul
Public TabPiece() As LigneTableauDesPieces
Pourtant Excel VBA est fait pour travailler avec des feuilles .
Bonne journée
re Aj3309 le forum
bon ok alors sujet clos
a+
papou