2014-06-17 10 views
0

J'essaye de créer un formulaire d'utilisateur qui montrera une feuille de calcul spécifique basée sur la valeur de la zone de liste déroulante sur le formulaire d'utilisateur. Il y a 3 feuilles de travail différentes qui sont "très cachées" dans le classeur. La zone de liste déroulante est remplie avec 3 choix, un pour chaque feuille cachée. J'utilise le cas de sélection pour rendre la feuille correcte visible (Finalement, il y aura beaucoup plus de 3 feuilles/Options Exemple de code suit (situé sous la forme utilisateur fenêtre de code):.Afficher la feuille très cachée Excel VBA

Private Sub NextButton_Click() 

Select Case ComboBox 
    Case ComboBox.ListIndex = 0 
     Sheets(1).Visible = True 
    Case ComboBox.ListIndex = 1 
     Sheets(2).Visible = True 
    Case ComboBox.ListIndex = 2 
     Sheets(3).Visible = True 
End Select 
Unload UserForm 
End Sub 

je clique sur le bouton suivant, le userform décharge, mais les feuilles ne devient pas visible. VBA soulève aucune erreur non plus. S'il vous plaît laissez-moi savoir si je dois fournir plus d'informations.

Nik

Répondre

3
déclaration

Votre cas est incorrect. Vous devez dire il quelle valeur à tester dans la première partie, puis spécifier les valeurs plus tard.Voir Tech on the Net article about Case in VBA

Private Sub NextButton_Click() 

Select Case ComboBox.ListIndex 
    Case 0 
     Sheets(1).Visible = True 
    Case 1 
     Sheets(2).Visible = True 
    Case 2 
     Sheets(3).Visible = True 
End Select 
Unload UserForm 
End Sub 

Voici comment les instructions de cas fonctionnent dans la plupart des langages de programmation.

Cependant, étant donné que ComboBox.ListIndex est un int, et que vous lui dites quelle feuille afficher, vous pouvez simplifier le tout et supprimer l'instruction case. Cela suppose que les index correspondent, ce qu'ils font dans votre exemple.

Private Sub NextButton_Click() 
Sheets(ComboBox.ListIndex+1).Visible = True 
Unload UserForm 
End Sub 
+0

Merci pour la réponse! Je savais que je faisais quelque chose de mal. J'ai modifié mon code et corrigé l'instruction, mais les feuilles ne sont toujours pas visibles. Le code est situé dans le formulaire utilisateur, devrait-il être ailleurs? – nickalbe

Questions connexes