Propriétés d'un UserForm

Résolu/Fermé
shane137 Messages postés 129 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 10 juillet 2018 - 22 oct. 2016 à 20:44
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 23 oct. 2016 à 21:32
Bonjour,

J'ai créé un UserForm qui contient des ToggleButtons pour afficher/masquer les colonnes d'un "grand" tableau excel. Mon UserForm est basique et l'utilisateur a le seul choix de cliquer sur la croix pour fermer le UserForm.

Je souhaite maintenant l'améliorer pour par exemple :
- Pouvoir faire défiler mon tableau à droite ou en en bas avec les scrollbars (sans fermer mon Userform)
- Pouvoir redimensionner le cadre du UserForm, le minimiser

Merci par avance de votre aide !

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
22 oct. 2016 à 23:05
Bonjour,

- Pouvoir faire défiler mon tableau à droite ou en en bas avec les scrollbars (sans fermer mon Userform)
Il te suffit de le lancer en non modal.

- Pouvoir redimensionner le cadre du UserForm, le minimiser
Tu as plusieurs façon de le faire, en utilisant le zoom par exemple.

Tu devrais regarder ce tuto qui va te donner des idées.
1
shane137 Messages postés 129 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 10 juillet 2018 2
23 oct. 2016 à 11:35
Bonjour,

Merci pour ta réponse

Il te suffit de le lancer en non modal. => OK, j'ai juste mis "UserForm1.Show (0)" et ça marche

Maintenant j'essaie d'initialiser le UserForm de telle sorte que soient visibles sur les ToggleButtons les colonnes affichées ou non. Exemple : Si l'utilisateur appuie sur le ToggleButton, la macro s'exécute bien, la colonne se masque. Après je ferme le UserForm, le réouvre, et là je voudrais avoir le bouton enfoncé, car la colonne est masquée.

J'ai essayé ce code là sans succès :

Private Sub UserForm_Initialize()

Dim a As Integer

For a = 1 To 8
If Controls("ToggleButton" & a) = True Then
Controls("ToggleButton" & a).Value = True
End If

Next

End Sub
0
shane137 Messages postés 129 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 10 juillet 2018 2
23 oct. 2016 à 12:16
Je me réponds à moi-même ;)

j'ai remplacé If Controls("ToggleButton" & a) = True Then
par If Columns(c).Hidden = True Then

en déclarant la variable c au préalable et j'initialise chaque ToggleButton un par an.

Ca a l'air de marcher.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
23 oct. 2016 à 21:32
bonsoir,

Je me réponds à moi-même ;)
C'est parfait, c'est ce qu'il fallait faire : pour positionner les contrôles il faut tester les objets qu'ils contrôlent.
0