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
A voir également:
- Remplir tableau dynamique Userform
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Tableau ascii - Guide
- Trier un tableau excel - Guide
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
.
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
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
Elle est déjà en public, dans la "zone" de déclaration.
EDIT : elle n'était effectivement pas dans un module mais dans la page de la "feuille 1". Je vais voir en changeant ça.
Si tu peux me dire en plus d'où vient "l'incompatibilité de type" qui m'est retourné quand je sors, alors ce sera parfait ;)