VBA userform et select case
Résolu
vans7k
-
Bidouilleu_R Messages postés 1209 Statut Membre -
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,
Je suis actuellement en train de créer une macro avec des formulaires afin de remplir ma feuille de données excel. J'ai mes données correspondant à des réponses aux questions contenues dans les colonnes. J'ai donc créé un formulaire unique pour toutes les questions avec une zone de texte et différents boutons. Je voudrait savoir s'il est possible de ne garder que quelques éléments de mon userform lorsqu'il s'affiche ?
J'ai écrit ce code :
Select Case section
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.Oui.Visible = True
Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
Case 3
Questions.TS.Visible = True
Questions.S.Visible = True
Questions.PS.Visible = True
Questions.NS.Visible = True
Questions.D.Visible = True
Questions.TS.Enabled = True
Questions.S.Enabled = True
Questions.PS.Enabled = True
Questions.NS.Enabled = True
Questions.D.Enabled = True
Case 4
Questions.Oui.Visible = True
Questions.Non.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
End Select
Cependant il m'affiche quand même tous les éléments alors que dans ma feuille de calcul j'ai rajouté une ligne qui contient le numéro de la forme de formulaire que je veux pour cette question. J'espère avoir été le plus claire possible et que quelqu'un pourra m'aider. Merci d'avance et bonne journée.
Vanessa
Je suis actuellement en train de créer une macro avec des formulaires afin de remplir ma feuille de données excel. J'ai mes données correspondant à des réponses aux questions contenues dans les colonnes. J'ai donc créé un formulaire unique pour toutes les questions avec une zone de texte et différents boutons. Je voudrait savoir s'il est possible de ne garder que quelques éléments de mon userform lorsqu'il s'affiche ?
J'ai écrit ce code :
Select Case section
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.Oui.Visible = True
Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
Case 3
Questions.TS.Visible = True
Questions.S.Visible = True
Questions.PS.Visible = True
Questions.NS.Visible = True
Questions.D.Visible = True
Questions.TS.Enabled = True
Questions.S.Enabled = True
Questions.PS.Enabled = True
Questions.NS.Enabled = True
Questions.D.Enabled = True
Case 4
Questions.Oui.Visible = True
Questions.Non.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
End Select
Cependant il m'affiche quand même tous les éléments alors que dans ma feuille de calcul j'ai rajouté une ligne qui contient le numéro de la forme de formulaire que je veux pour cette question. J'espère avoir été le plus claire possible et que quelqu'un pourra m'aider. Merci d'avance et bonne journée.
Vanessa
A voir également:
- VBA userform et select case
- Case à cocher word ✓ - Forum Word
- Incompatibilité de type vba ✓ - Forum Programmation
- Excel case choix multiple - Guide
- Aller à la ligne dans une case excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
tu as écris
Select Case section
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.Oui.Visible = True Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
je suppose que tu as placé ce code dans la partie initialisation ou bien en Activate.
mais tu n'as pas caché ce que tu n'utilise pas.
il faut simplement écrire
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.TexteLibre.Visible = false ' Texte libre sera caché
Questions.Oui.Visible = True Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
A+
Select Case section
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.Oui.Visible = True Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
je suppose que tu as placé ce code dans la partie initialisation ou bien en Activate.
mais tu n'as pas caché ce que tu n'utilise pas.
il faut simplement écrire
Case 1
Questions.TexteLibre.Visible = True
Questions.D.Visible = True
Questions.TexteLibre.Enabled = True
Questions.D.Enabled = True
Questions.OK.Visible = True
Questions.OK.Enabled = True
Case 2
Questions.TexteLibre.Visible = false ' Texte libre sera caché
Questions.Oui.Visible = True Questions.Non.Visible = True
Questions.D.Visible = True
Questions.Oui.Enabled = True
Questions.Non.Enabled = True
Questions.D.Enabled = True
A+
Autant pour moi je viens de trouver la solution !!
Il suffisait simplement dans les propriétés de mon formulaire pour chaque éléments qui ne revenait pas tout le temps de mette visible à FALSE !
:/
Merci quand même à ceux qui ont peut être cherché ;).
J'ai eu l'idée grâce à un autre problème posé sur ce forum ! Vive commentcamarche !!!
Bonne journée à tous
Il suffisait simplement dans les propriétés de mon formulaire pour chaque éléments qui ne revenait pas tout le temps de mette visible à FALSE !
:/
Merci quand même à ceux qui ont peut être cherché ;).
J'ai eu l'idée grâce à un autre problème posé sur ce forum ! Vive commentcamarche !!!
Bonne journée à tous