Multipage dynamique, VBA
little developer
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je souhaite développer une petite application sous vba.
Il s'agit de créer dynamiquement un formulaire multipage, dont les pages différentes correspondent à différents éléments. Le nombre de pages du multipage est dynamique.
Chaque page doit par ailleurs se remplir grâce au programme: par exemple, page1 doit se remplir de checkbox correspondant à tous les fichiers du dossier dans lequel est placé le classeur excel.
Créer des checkboxes dynamiquement n'est pas un pb. En revanche, je n'arrive pas à les faire apparaitre sur les pages. si je fais:
UserForm1.Controls.Add("forms.CheckBox.1"), on ne verra pas la checkbox.
J'espère avoir été clair, merci d'avance de vos réponses.
Cordialement,
Little Developer
Je souhaite développer une petite application sous vba.
Il s'agit de créer dynamiquement un formulaire multipage, dont les pages différentes correspondent à différents éléments. Le nombre de pages du multipage est dynamique.
Chaque page doit par ailleurs se remplir grâce au programme: par exemple, page1 doit se remplir de checkbox correspondant à tous les fichiers du dossier dans lequel est placé le classeur excel.
Créer des checkboxes dynamiquement n'est pas un pb. En revanche, je n'arrive pas à les faire apparaitre sur les pages. si je fais:
UserForm1.Controls.Add("forms.CheckBox.1"), on ne verra pas la checkbox.
J'espère avoir été clair, merci d'avance de vos réponses.
Cordialement,
Little Developer
A voir également:
- Multipage dynamique, VBA
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Liste déroulante dynamique excel - Guide
- Sommaire dynamique word - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour,
J'ai créé un UserForm, sur lequel j'ai placé :
- Un multipage de deux pages (1 et 2)
- 2 CommandButton : AjoutCheckPage1 et AjoutCheckPage2
Le code de ces boutons, pour ajouter des checkboxs aux pages 1 et 2 est :
Ci-joint une petite démo... Appuies plusieurs fois sur chaque bouton, page2 non sélectionnée etc...
J'ai créé un UserForm, sur lequel j'ai placé :
- Un multipage de deux pages (1 et 2)
- 2 CommandButton : AjoutCheckPage1 et AjoutCheckPage2
Le code de ces boutons, pour ajouter des checkboxs aux pages 1 et 2 est :
Private Sub AjoutCheckPage1_Click()
Dim Obj As Control
Dim Cptr As Integer, Hauteur As Integer
'détermine le nombre de CheckBox déjà présents dans l'USF pour déterminer le nom
For Each Obj In Me.MultiPage1.Pages(0).Controls
If TypeOf Obj Is MSForms.CheckBox Then Cptr = Cptr + 1
Next
Cptr = Cptr + 1
Hauteur = Cptr * 30 + 30 '30 = Top de chaque checkBox
If Hauteur >= Me.MultiPage1.Height - 20 Then
MsgBox "Plus de place"
Exit Sub
End If
Set Obj = Me.MultiPage1.Pages(0).Controls.Add("forms.Checkbox.1")
With Obj
.Name = "monCheckBox" & Cptr
.Caption = "monCheckBox" & Cptr
.Left = 10
.Top = 30 * Cptr
.Width = 100
.Height = 20
End With
End Sub
Private Sub AjoutCheckPage2_Click()
Dim Obj As Control
Dim Cptr As Integer, Hauteur As Integer
'détermine le nombre de CheckBox déjà présents dans l'USF pour déterminer le nom
For Each Obj In Me.MultiPage1.Pages(1).Controls
If TypeOf Obj Is MSForms.CheckBox Then Cptr = Cptr + 1
Next
Cptr = Cptr + 1
Hauteur = Cptr * 30 + 30 '30 = Top de chaque checkBox
If Hauteur >= Me.MultiPage1.Height - 20 Then
MsgBox "Plus de place"
Exit Sub
End If
Set Obj = Me.MultiPage1.Pages(1).Controls.Add("forms.Checkbox.1")
With Obj
.Name = "monCheckBox" & Cptr
.Caption = "monCheckBox" & Cptr
.Left = 10
.Top = 30 * Cptr
.Width = 100
.Height = 20
End With
End Sub
Ci-joint une petite démo... Appuies plusieurs fois sur chaque bouton, page2 non sélectionnée etc...