vba créer les propriétés d'un commandbutton en automatique

vba créer les propriétés d'un commandbutton en automatique - VB/VBA/VBS - Programmation

Marsh Posté le 18-11-2005 à 15:24:22    

Bonjour,
 
Je voudrais pouvoir ouvrir la feuille qui correspond au bouton sélectionné
 
J'ai un classeur excel avec 3 feuilles "Feuil1","Feuil2""Feuil3".  
je crée un Userform "UserForm1" avec un commonbutton "test"
sur la feuille "Feuil1" je créer un commandbutton "CommandButton1" pour appeler la macro  
 
Voir le code ci-dessous

 
Private WithEvents bouton1 As MSForms.CommandButton
Private WithEvents Check1 As MSForms.CheckBox
Private WithEvents Text1 As MSForms.TextBox
 
Private Sub CommandButton1_Click()
 
Dim x As Integer
Dim nombre As Integer
 
'compte le nombre de feuille
nombre = Worksheets.Count
 
'Variable (qui va varier...)pour mettre en ordre les boutons les uns au dessus des autres
Dim BoutonTop
BoutonTop = 20
 
'Variable (qui va varier...)pour mettre en ordre les checkbox les uns au dessus des autres
Dim CheckTop
CheckTop = 20
 
For j = nombre To 1 Step -1
 
'pour créer plusieurs bouton en fonction du nombre de feuille
 
Set boutonj = userform1.Controls.Add("Forms.CommandButton.1", "Boutonj", True)
 
'pour créer les checkbox en fonction du nombre de feuille
 
Set Checkj = userform1.Controls.Add("Forms.CheckBox.1", "Checkj", True)
 
'Dimension du bouton
 
boutonj.Left = 40
'largeur
boutonj.Width = 200
boutonj.Height = 20
'position par rapport au haut du userform
boutonj.Top = BoutonTop
BoutonTop = BoutonTop + 25
 
'Dimension de la checkbox
 
Checkj.Left = 20
Checkj.Width = 10
Checkj.Height = 20
Checkj.Top = CheckTop
CheckTop = CheckTop + 25
 
'pour donnner le nom de la feuille à l'intitulé du commandbuton
boutonj.Caption = Sheets((j + nombre) - Sheets.Count).Name
 
'pour donnner le nom de la feuille à la l'intitulé de la checkbox
Checkj.Caption = Sheets((j + nombre) - Sheets.Count).Name
 
 
Next j
 
End Sub
 
Private Sub boutonj_click()

 
'je voudrais pouvoir ouvrir la feuille qui correspond au bouton sélectionné
 
MsgBox ("test" )
 
End Sub


Message édité par beberf1 le 22-11-2005 à 10:20:15
Reply

Marsh Posté le 18-11-2005 à 15:24:22   

Reply

Marsh Posté le 21-11-2005 à 10:26:26    

Cette exemple pourrait être utilisé comme sommaire suivant les besoins

Reply

Marsh Posté le 21-11-2005 à 11:23:08    

Je vois que tu as adopté la variable qui va varier...
Sinon pour ton problème je vois pas bien. Tu crées des Checkbox en plus des boutons si G bien compris. Tu peux pas créer un bouton qui ouvre la page (correspondant à la checkbox cochée). Sinon pour les boutons il faudrait ajouter du code VBA à chaque création, et je ne sais pas comment faire...

Reply

Marsh Posté le 21-11-2005 à 11:24:35    

Quel est le nom (pas l'intitulé) de chacun des tes boutons ??

Reply

Marsh Posté le 22-11-2005 à 10:16:12    

Si je veux donner le nom de la feuille à mon commandbutton
 
boutonj.name = Sheets((j + nombre) - Sheets.Count).Name  
 
mais aucun intérêt pour moi.
 
Je veux utiliser la valeur de j  
 
Private Sub boutonj_click()  
 
'je voudrais pouvoir ouvrir la feuille qui correspond au bouton sélectionné  
 
MsgBox ("test" )  
 
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed