Appeler et utiliser une listbox depuis une autre macro

kang

XLDnaute Nouveau
Bonjour à tous !

Je suis en train de mettre au point une fiche de saisie d'informations.
Pour se faire, j'ai besoin que l'utilisateur rentre un pays et un continent.

Pour simplifier la chose et surtout éviter les doublons et fautes d'orthographes, j'ai décidé d'automatiser le tout.

J'ai donc constitué une liste avec les pays qui seront les plus utilisés (Feuille "Liste Pays") et créé une liste de validation dans la case qui m'intéresse pour que l'utilisateur choisisse un pays dans la liste.
Le continent est ensuite récupéré automatiquement dans la liste par un =recherceV().

Quand le pays n'existe pas dans la liste, l'utilisateur peut en ajouter un, via l'utilisation de la valeur #nouveau_pays dans la liste.
Cela déclenche un macro qui affiche deux inputbox successive permettant à l'utilisateur de saisir un nouveau nom de pays puis un nom de continent.

En tout cas, c'est comme ça que c'était au départ.

En effet, je voudrais que l'utilisateur n'ait le choix que parmi les 5 continent habités.
Du coup, j'ai créé un UserForm avec une Listbox contenant mes 5 valeurs.
et c'est là que je bloque :

Je ne sais pas comment faire pour, dans ma macro, appeler l'UserForm, et ensuite conserver en mémoire la valeur choisie dans la liste proposée pour la copier à coté du pays dans la "liste Pays".

Merci d'avance pour votre aide.
 

Pièces jointes

  • test nvo pays.xlsm
    23 KB · Affichages: 70

Robert

XLDnaute Barbatruc
Repose en paix
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour Kang, bonjour le forum,

En pièce jointe ton fichier modifié. Cliques sur le continent pour l'attribuer au nouveau pays.
 

Pièces jointes

  • Kang_v01.xls
    58 KB · Affichages: 110

DL_13

XLDnaute Occasionnel
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour,

A tester avec un nouveau USF

Edit: Bonjour Robert :) je regarde ton fichier

Re Edit: J'ai rajouter ton code de tri que j'avais zappé... désolé :eek:

Bonne Journée
 

Pièces jointes

  • Kang.xlsm
    27.7 KB · Affichages: 78
Dernière édition:

kang

XLDnaute Nouveau
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour Robert, DL_13

Merci pour vos réponses !

Robert : y'a quelques petit problèmes... Le tri s'effectuant avant l'affiche de l'USF, l'entrée du nouveau continent se fait toujours sur la dernière ligne de texte. Le problème, c'est que quand je change l'ordre, l'USf renvoie l'erreur 1004, et là je comprends plus rien... de plus, on peut pas s'arrêter en cours de route...

Rapport à ça, la version de DL_13 est nettement plus complète, mais nettement plus complexe aussi à comprendre (et probablement à adapter).

Donc, pour résumer :

Merci robert, mais je vais utiliser celle de DL_13. Pour autant, j'aime bien la tienne parce que j'ai à peu près compris ce que fais l'USF et surtout comment on l'appelle et le vide !

Merci DL_13, je vais utiliser et adapter ta version. Cependant, j'aimerais, si tu veux bien, une petite "explication de texte" du code, pour mieux comprendre ce qu'il fait et ne pas reproduire bêtement la prochaine fois...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour le fil, bonjour le forum,

J'ai pas pris le temps de regarder le fichier de DL... En pièce jointe une version 2.
 

Pièces jointes

  • Kang_v02.xls
    60 KB · Affichages: 80

kang

XLDnaute Nouveau
Re : Appeler et utiliser une listbox depuis une autre macro

Merci !

Cependant, lorsque je clic sur un élément de la liste, j'ai toujours un bug :

"Erreur d'exécution '1004' :
Erreur définie par l'application ou par l'objet."

le débogage renvoi à la ligne

Code:
Sheets("Liste Pays").Cells(ligne - 1, 2).Value = Me.Liste_continent.Value
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour le fil, bonjour le forum,

Vérifie le nom que tu as donné à la ListBox car j'ai du la renommer (dans le code). Elle s'appelle Liste_continent et dans le code tu avais écris Continent... Si je me souviens bien...
 

kang

XLDnaute Nouveau
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour le fil !

Merci DL_13 !
Une petite question donc.
Si je désire ajouter un continent supplémentaire (comme par exemple faire la différence entre Am du Nord et du Sud), il me "suffit" de rajouter un "optionbutton" avec en "caption" le texte que je souhaite, et passer la boucle de 5 à 6 itération ?

Merci de me le confirmer ! (edit : j'ai testé ce que j'ai expliqué ci-dessus à ça a l'air de fonctionner)

@Robert : C'est dans la pièce jointe (V02) que tu as envoyé que le bug à lieu... et je ne comprends pas vraiment pourquoi...
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Appeler et utiliser une listbox depuis une autre macro

Bonjour le fil, bonjour le forum,

Oui kang, désolé, je navet (si si, dans ce cas ça s'écrit comme ça...) pas fait attention... Comme la variable ligne est publique j'ai dû l'initialiser à un moment et elle est resté en mémoire, puis le code marchait. Mais en ouvrant mon fichier ce matin ça ne fonctionnait plus... Donc un version 3, même si je trouve la version de DL plus simple avec une seule UserForm...
 

Pièces jointes

  • Kang_v03.xls
    53.5 KB · Affichages: 82

kang

XLDnaute Nouveau
Re : Appeler et utiliser une listbox depuis une autre macro

Re DL, Robert,

Un grand merci à tous les deux !
Si je trouve aussi la version de DL plus simple à utiliser, j'aime aussi la tienne parce que plus simple à coder et donc à comprendre pour un débutant comme moi ! :D

Bonne continuation et à bientôt !
 

Discussions similaires

Réponses
20
Affichages
916
Réponses
11
Affichages
724