Remplir tableau dynamique Userform
Résolu
ezor
Messages postés
190
Statut
Membre
-
ezor Messages postés 190 Statut Membre -
ezor Messages postés 190 Statut Membre -
Bonjour à tous,
Je cherche à récupérer un ensemble d'entier que l'utilisateur entre dans un userform que j'ai créé. J'ai donc fait un tableau dynamique, et je souhaite entrer les valeurs au fur et à mesure (à chaque fois que l'on clique sur le bouton "ajouter").
J'ai donc le code suivant dans mon userform
et dans la macro elle-même, j'ai la routine suivante
Le problème est le suivant : mon userform est impossible à fermer. Quand je clic sur A&F, il se réouvre, comme si le booleen fin_entrez_val était toujours à False au lieu de passer à True avant la fermeture (et donc faire sortir de la boucle do while)
J'ai essayé avec une boucle While, en déclarant fin_entrez_val dans la macro (toujours en public) mais pas de réusltat.
J'espère que c'est assez clair. Merci d'avance pour votre aide,
ezor
Je cherche à récupérer un ensemble d'entier que l'utilisateur entre dans un userform que j'ai créé. J'ai donc fait un tableau dynamique, et je souhaite entrer les valeurs au fur et à mesure (à chaque fois que l'on clique sur le bouton "ajouter").
J'ai donc le code suivant dans mon userform
Public fin_entrez_val as Booleen Private Sub BoutonAjouter_Click() rep_userform = TextBox1 'je stock la réponse entrée dans "rep_userform" TextBox1 = "" End Sub Private Sub BoutonAetF_Click() 'ce bouton doit enregistrer la dernière valeur puis fermer l'userform rep_userform = TextBox1 fin_entrez_val = True Unload Me End Sub
et dans la macro elle-même, j'ai la routine suivante
Dim tab_val_pos() as Integer Dim fin_entrez_val as Booleen fin_entrez_val = False Public Sub ask_val() Dim compt As Integer compt = 0 'Je veux ici enregistrer les valeurs dans le tableau à chaque clic du bouton ajouter, et sortir de la boucle une fois que l'on a cliqué sur le bouton AetF Do boite_diag.Show ReDim Preserve tab_val_pos(compt) tab_val_pos(compt) = rep_userform 'valeur entrée dans la boite de diag compt = compt + 1 Loop While (fin_entrez_val = False) fin_ask_val = True 'un booleen qui sert dans une autre macro, sans importance ici End Sub
Le problème est le suivant : mon userform est impossible à fermer. Quand je clic sur A&F, il se réouvre, comme si le booleen fin_entrez_val était toujours à False au lieu de passer à True avant la fermeture (et donc faire sortir de la boucle do while)
J'ai essayé avec une boucle While, en déclarant fin_entrez_val dans la macro (toujours en public) mais pas de réusltat.
J'espère que c'est assez clair. Merci d'avance pour votre aide,
ezor
2 réponses
-
Bonjour,
Tu dois déclarer ta variable de FIN en public et non dans la fonction elle même.
https://silkyroad.developpez.com/VBA/LesVariables/#LV
.
-
J'ai un deuxième problème, toujours avec le même programme. Je n'enregistre que la dernière valeur rentrée, car c'est seulement en quittant le Userform que je re-rentre dans ma boucle do-while (en d'autre terme, mon compteur ne va que jusqu'à 1).
Y a t il une solution pour assurer l'aller retour entre la macro (la boucle do-while) et l'userform (le clic sur l'un des boutons?)
merci