VBA et liste déroulante, je ne sais plus, je ne sais pas

Bonjour le Forum, Bonjour à toutes et tous.

Voilà, je suis novice en VBA, mais je trouve cela passionnant et je veux vraiment apprendre.

Pour mon job et avant le 1er mai, mon supérieur m'a demandé de faire une base de données pour gérer des documents sensibles.

J'ai commencé à faire cette base, mais vu que je suis novice en VBA et bien je cale sur l'insertion d'une liste déroulante dans un userform.

mes listes à dérouler se trouve sur la feuille 6 et je ne sais pas écrire la ligne de code pour les faire apparaitre dans le formulaire d'enregistrement.

Si l'une et l'un d'entre vous peut me donner un coup de pied (oh, pardon un coup de main) et surtout me faire un petit tuto que j'apprendrais par cœur (promis) et cela serait vraiment, vraiment, vraiment super sympa.

Une autre chose que je n'arrive pas à faire, c'est faire apparaitre automatiquement le nbre d’enregistrements chronologique qui se trouve dans la feuille base de données.

En fait je constate qu'il y a plein de chose que je ne sais pas faire d'où mon appel au secours.

Merci beaucoup à toutes et tous.

33classeur1.xlsm (54.91 Ko)

Bonjour

lynka a écrit :

je cale sur l'insertion d'une liste déroulante dans un userform.

Pour exemple, je t'ai fait ça pour les 3 premiers combobox.

Le code est dans la macro associé à l'UserForm, dans la macro " Private Sub UserForm_initialize() "

Bon courage !

Bye !

22classeur1-v1.xlsm (64.40 Ko)

Bonsoir,

Je vois que gmb s'est lancé...! Très bien pour toi ! J'ai regardé ton fichier...

J'aurais de toute façon évité de m'y lancer, le Userform est déjà plus grand que mon écran et pas vraiment pratique de travailler dans ces conditions... J'ai la faiblesse de penser qu'un Userform à taille humaine joue d'autant mieux son rôle de boîte de dialogue ou boîte de saisie mais à chacun de faire ses expériences...

N'ayant donc rien d'autre à faire je peux délivrer quelques conseils de base que l'on trouve partout, en particulier que l'on gagne toujours à renommer ses contrôles (ceux que l'on utilise dans le code), pour faciliter la programmation, l'utilisation de boucles et alléger ainsi le code...

Je ne comprends pas trop que les ComboBox soient doublés par des TextBox, cela fait double-emploi, occupe de la place et du code inutilement, et ça ne me paraît pas très malin.

Pour l'alimentation des ComboBox, en faisant le tour des propriétés RowSource et List (et Column, à lier à List), et de la méthode AddItem, et tu sauras quasiment tout, du moins l'essentiel sur la question (la première source de documentation demeure l'Aide, toujours sous la main).

En regardant ton gestionnaire de noms, je note l'absence de tout nom... Un nom de plage dynamique est cependant ce que l'on a de mieux pour connaître à tout moment le nombre d'enregistrements d'une base.

Cordialement.

Bonsoir GMB

[/quote]Pour exemple, je t'ai fait ça pour les 3 premiers combobox. Le code est dans la macro associé à l'UserForm, dans la macro " Private Sub UserForm_initialize() " Bon courage !

Bye ![/quote]

GMB, c'est super de m'avoir fait avancer a grand pas, cependant je veux pouvoir refaire cette macro, sinon je ne retiendrais rien et je ne vais pas progresser (voir msg de MFerrand, a sa lecture, j'ai compris que j'étais une truffe, mais je suis novice et je VEUX apprendre).

Alors GMB, si tu as un peu de temps, peux-tu me faire un tuto (sorte de pas à pas sur un fichier vierge) pas avance un grand merci.

Si j'ai d'autres PB, je reposterais un petit msg, merci

Bonjour

lynka a écrit :

peux-tu me faire un tuto

Désolé mais je ne peux pas te faire de tuto apprendre Excel et les macros : je n’ai pas les compétences.

D’autant qu’il en existe de très bien faits et qui t’aideront à progresser. En particulier ceux de ce forum que je t’invite à consulter. Regarde dans le bandeau de la page d’accueil, tu y trouveras ton bonheur

Bye !

Bonjour GMB

que dis-je ! MAITRE

Regarde mon fichier, il a bien avancé et j'avoue que j'en suis plutôt fière

Mais j'ai encore un souci je n'arrive pas a charger les comboBox1, 2, 3 du Userform2 qui porte le nom de "LIEUX"

Les données qui doivent apparaitre dans les comboBox1, 2, 3 se trouvent dans la feuille TXT, colone et ligne G2,H2 et I2

Avec ton aide de la dernière fois, j'ai bien compris que je devais insérer une macro dans le userfom2 "LIEUX", j'avais même écris ceci

mais quand je valide, cela ne fonctionne pas, du coup j'ai tout enlever

Set ftxt = Sheets("TXT")

Set fbdd = Sheets("Annexe C")

'on charge la ComboBox1

ComboBox1.List = ftxt.Range("G2:G" & ftxt.Range("G" & Rows.Count).End(xlUp).Row).Value

'on charge la combobox2

ComboBox2.List = ftxt.Range("H2:H" & ftxt.Range("H" & Rows.Count).End(xlUp).Row).Value

'on charge la combobx3

ComboBox3.List = ftxt.Range("I2:I" & ftxt.Range("I" & Rows.Count).End(xlUp).Row).Value

Merci pour ton aide et merci à tous ceux qui m'aideront

Bonjour

lynka a écrit :

j'ai bien compris que je devais insérer une macro dans le userfom2 "LIEUX",

En effet.

Peut-être n'as-tu pas donner à l a macro en question le bon nom.

Elle doit s'appeler exactement :

Private Sub UserForm_initialize()

Bye !

GMB

Moi je ne dis qu'une chose.... RESPECTS.

Merci je vais continuer à bosser

Bonne soirée.

Bonjour à toutes et tous et bonjour à mon professeur GMB.

Je rencontre encore des problèmes avec certains code VBA, je m'explique :

Dans le USERFORM nommé : CATALOGUE_CD, j'aimerais que dans textbox "TB_EMPLOI_CHRONO" s'affiche le dernier numéro chronologique utilisé par le cabinet ministèriel sélectionner dans "ComboBox5" . Le dernier numéro d'enregistrement chronologique se trouve sur la feuil4 (catalogue CD) colone B.

Dans le UserForm1, j'aimerais que la TextBox 28 (rechercher une référence de courrier classifié) me permette de rechercher une référence de courrier qui se trouve dans la Feuil1 (BASE DE DONNEES) colone B

Merci pour votre aide, elle me fait evancer à petits pas, mais qui va doucement va loin...

8classeur1-v3.xlsm (290.94 Ko)

Bonjour

Un fichier qui répond à ton souhait concernant le premier UserForm.

Pour ce qui concerne le second, que veux-tu qu’il se passe quand la macro aura trouvé la référence correspondante à ce que tu auras saisi dans le TextBox 28 ?

Bye !

16classeur1-v4.xlsm (282.57 Ko)

GMB,

Tu a presque trouvé la solution pour le USERFORM "CATALOGUE_CD", j'ai bien remarqué que le dernier numéro d'enregistrement utilisé dans la feuil4 apparaissait à l'écran, cependant ma requête est plus complexe, je me suis mal exprimée .

En fait dans le userform "CATALOGUE-CD" quand je sélectionne Cabinet "BUD" (par exemple) je voudrais voir apparaitre le dernier numéro d'enregistrement correspondant au cabinet BUD qui se trouve sur la feuil4.

Dans le UserForm1, j'aimerais que : quand j’inscris une référence dans la TextBox 28 et que cette référence se trouve dans la base de donnée Feuil1 (BASE DE DONNEES), tous les champs du UserForm1 se remplissent des données relatives à la référence recherchée (Référence Harmonie, Référence du document classifié, Date de création du document classifié, Date de réception au Bdc, Objet du courrier classifié, Numéro d'exemplaire, Date de réception en Cabinet etc….)

Par contre, Si la référence n'existe pas , une faudrait qu'une boite de dialogue affiche " Cette référence n'existe pas"

Je pense qu'il faut utiliser la RECHERCHEV, mais je n'arrive pas à la coder.

Merci beaucoup mon ami

17classeur1-v3.xlsm (355.69 Ko)

Nouvel essai.

Pour ton UserForm1, j'ai commencé pour te montrer mais c'est très long : je te laisse le soin de continuer.

Bye !

12classeur1-v5.xlsm (289.66 Ko)

GMB,

Je comprends et ce n est pas à toi de tout faire heureusement !

Merci pour l exemple je vais faire le reste du userform.1

Tu es vrai incroyable en excel, ce logiciel n à plus de secret pour roi, comme j aimerais savoir faire autant de choses que toi, car au final on s aperçoit que ce logiciel peut presque tout faire. Merci de partager ton savoir avec moi,vraiment merci pour le temps que tu prends à répondre car je sais que nous avons toutes et tous autre chose à faire. A plus MAÎTRE

GMB

J'ai continué les lignes de code, mais j'ai un message d'erreur sur le UserForm1 à la TextBox28.

Le message est : Erreur de compilation : Variable non définie

J'ai avancé sur mon classeur donc je te mets la V6.

Merci beaucoup pour ton aide

12classeur1-v6.xlsm (363.38 Ko)

Bonjour

Nouvel essai.

Ne serait-ce pas plus pratique de mettre un combobox à la place de ton TexBox28 ?

Bye !

13classeur1-v7.xlsm (354.09 Ko)

GMB

un ComboBox avec toutes les références déjà enregistrées dans la Feuil Base de données ?

C'est vrai que l'dée est bonne, cependant il faudra bien que je fasse apparaitre les données dans le Userform 1 ! car les agents devront compléter le ruban "REINTEGRATION AU BUREAU DES CABINETS", et pour doivent avoir les informations de ce qu'ils réintègre.

Je ne sais pas si je suis assez claire dans mes explication.

Merci à toi, très sincérement

11classeur1-v7.xlsm (342.34 Ko)

Bonjour

lynka a écrit :

Je ne sais pas si je suis assez claire dans mes explication.

Pas trop mais je te fais confiance !

Sache toutefois qu'on n'est pas obligé de choisir une valeur dans la liste d'un ComboBox. On peut aussi saisir une valeur qui n'y figure pas. Bien sûr, dans ce cas la mise à jour des contrôles ne se fait pas....

Bye !

GMB,

Attends avant de me répondre je suis en train de bosser sur le userform "recherche une référence3.

MERCI

GMB

voilà le ravail que j'ai fait suite à ta proposition, cependant je rencontre des problèmes qui sont :

Dans le USERFORM « RECHERCHE »

A) Quand je suis dans le USERFORM « RECHERCHE » et que je clique sur le bouton « Afficher les résultats de la recherche », j’ai ce code erreur :

Private Sub CommandButton1_Click = erreur de compilation, variable non définie

B) Quand je clique sur le bouton « Sauvegarder cette recherche », j’ai le msg d’erreur suivant :

Private Sub CommandButton2_Click = = erreur de compilation, variable non définie

De ce fait je ne sais pas si les données s’inscrivent dans les textbox du USERFORM « RECHERCHE »

Dans la page d’ACCEUIL

A) Quand je suis clique sur le bouton « CommandButton6_Click», j’ai le message d’erreur suivant :

Private Sub CommandButton6_Click = erreur de compilation, Sub ou function non définie

B) Quand je suis clique sur cette page d’acceuil, je voudrais :

  • sélectionner une référence de courrier dans la liste déroulante « Rechercher un document classifié » (ces références se trouvent dans la feuille « base de données »)
  • Puis, en cliquant sur le bouton « Ouvrir l’archive » qui ouvre le USERFORM « RECHERCHE », je voudrais que toutes les informations concernant la référence recherchée s’affiche dans les textbox du USERFORM « RECHERCHE »
C) A ce stage, les agents compléteront les rubriques, date de réintégration et nom du réceptionnaire au Bdc, destruction etc… dans le USERFORM « RECHERCHE » puis ils sauvegarderont leur réintégration.

As tu un peu de temps, peux tu tener de solutionner ces problèmes, je sais que je te demande beaucoup, mais j'essaie de faire de mon mieux.

Merci à toi.

33classeur1-v7.xlsm (431.63 Ko)

GMB

Ne prends pas en compte le classeur V7, j'ai fais des modifs.

J'ai réussi a faire un userform "rechercher", dans ce userform, j'ai réussi a insérer une combobox qui me donne la liste des références de courriers qui sont enregistrés dans la feuil "Base de données", mais je n'arrive pas à faire "remonter" les données de la référence sélectionnée dans les textbox du userform "rechercher".

j'aimerais que ces informations apparaissent à l'écran quand on clique sur le bouton "CommandButton1" appelé "afficher les résultats de la recherche", pourtant il me semble avoir bien fait les codes pour ce bouton.

merci pour ton aide, car là il est 23H10, et je n'en peux plus.

22classeur1-v8.xlsm (440.83 Ko)
Rechercher des sujets similaires à "vba liste deroulante sais pas"