Cacher ou montrer des textbox avec coche de Checkbox --> Module de classe ???

Yaloo

XLDnaute Barbatruc
Bonsoir à tous,

Dans un UserForm, avec un multipage, je souhaiterai pouvoir cacher ou montrer le Label et le TextBox correspondant au CheckBox (pour les pages 1 et 2).

J'ai fait un exemple dans la page1 de l'UserForm de ce que je voudrait obtenir mais sans toutes les macros _click, idem pour la macro _Initialize.

Mais vu le nombre de CheckBox and Co ça risque de vite être une vraie usine à gaz.

Il me semble avoir vu que cette problématique pouvait être résolue par des modules de classe, mais je n'y connait absolument rien et même avec les exemples sur le forum ou le web, je suis complètement largué.

Pourriez-vous m'aider ?

Dans l'attente, d'une âme charitable ...

Martial
 

Pièces jointes

  • Cache montre textbox.xls
    47.5 KB · Affichages: 85
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

Bonjour Hulk, le forum,

Merci pour ta réponse, je découvre à l'instant ton fichier, je vais analyser ça au mieux.

A première vue, que vient faire le c as byte, c=0 et c = c + 1 dans le module de classe, je ne vois pas ce qu'il apporte.

VB:
Public WithEvents chx As MSForms.CheckBox, i, c As Byte
Private Sub chx_Click()
    c = 0
    With UserForm1
        For i = 1 To 10
            If .Controls("CheckBox" & i) = True Then
                c = c + 1
                .Controls("Label" & i).Visible = True
                .Controls("TextBox" & i).Visible = True
            Else
                .Controls("Label" & i).Visible = False
                .Controls("TextBox" & i).Visible = False
            End If
        Next i
    End With
End Sub

Dans UserForm1_Initialize, que signifie, Set chx(i).chx = Controls("CheckBox" & i)

VB:
Private Sub UserForm_Initialize()
    For i = 1 To 10
        Controls("Label" & i).Visible = False
        Controls("TextBox" & i).Visible = False
        Set chx(i).chx = Controls("CheckBox" & i)
    Next
End Sub

Merci encore

Martial
 

Fo_rum

XLDnaute Accro
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

Bonjour Tous,

la variable c doit être un résidu donc peut être enlevée.
Puisque c'était fait (avec quelques explications) avec tes contrôles dispersés mais dont les numéros se suivent dans les pages.
 

Pièces jointes

  • CheckBox_ModuleDeClasse.xls
    57 KB · Affichages: 126

Yaloo

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

Bonjour Fo_rum, le forum,


Pour c, c'est bien ce qu'il me semblait qu'il y avait eu un oubli de suppression, ce n'est pas bien grave, j'avais rectifié moi-même.

Par contre, ce que je ne comprend toujours pas c'est le chx(i).chx (dans le fichier de Hulk) ou le CC(i).CC (dans le fichier de Fo_rum). Je comprend que l'on définisse les éléments dans le tableau avec chx(i) mais pourquoi le .chx ?

J'aime bien comprendre quand je fait les choses, merci de votre patience.

A+

Martial
 

Hulk

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

Yop, slt Fo_rum :)

Martial, en gros :

"chx" est une variable du module de classe "ClasseCheckBox".

Public WithEvents chx As MSForms.CheckBox.

Et dans l'Initialize de l'UserForm, on lui dit que chx(i) (i = de 1 à 10 grâce à la boucle For i)
sont les dix contrôles CheckBox de l'UserForm
 

Yaloo

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

Bonjour à tous,

Afin de continuer sur ma lancée, je souhaiterai que lorsque je clique sur mon CheckBox cela me donne le focus sur le TextBox correspondant (si bien sûr le CheckBox est coché).

Est-ce possible ? J'essaie depuis un petit bout de temps, mais mes essais ne sont pas concluant.

Merci d'avance

Martial
 

Fo_rum

XLDnaute Accro
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de calsse ???

bonsoir,

peut-être en ajoutant une ligne (mon fichier joint ou adapter)
Code:
With UserForm1
    .Controls("Label" & n).Visible = CC
    .Controls("TextBox" & n).Visible = CC
   'ICI.........................
    If CC Then .Controls("TextBox" & n).SetFocus
  End With
 

Yaloo

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de classe ???

Salut Fo_rum, le forum,

Merci pour ta réponse.
Oui, en effet, sur ton fichier ça fonctionne bien, mais ... je suis parti (dans mon fichier) avec le code de Hulk.
J'avais l'impression au départ que c'était le même type de code (le tien et celui de Hulk) mais cela n'a rien à voir et je n'arrive pas à adapter ta modif du post #9 au code que j'ai fait sur la base du code de Hulk.

Si ça ne marche pas, les personnes qui se serviront du fichier n'auront qu'à faire Tab :eek:

Merci encore

A+

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Cacher ou montrer des textbox avec coche de Checkbox --> Module de classe ???

Re,

@ Fo_rum : Pour finir j'ai pris ton code, pas trop compliqué à adapter à mon fichier.

@ Hulk : Ton code fonctionnait vraiment très bien, le seul hic c'est qu'il "balayait" tous les CheckBox et donc difficile pour moi de mettre le focus sur le TextBox.

Merci encore à tous les 2

Martial