Pb résolu: Empécher la superposition des commonbuttons

Pb résolu: Empécher la superposition des commonbuttons - VB/VBA/VBS - Programmation

Marsh Posté le 18-11-2005 à 10:53:34    

Bonjour,
 
Je voudrais savoir comment faire pour que mes bouton ne se supperpose pas les uns sur les autres
 
J'ai un classeur excel avec 3 feuilles . je note le nombre de feuille "3" dans la cellule A1 de la feuille "Feuil1"
et je crée un Userform "UserForm1".
sur la feuille "Feuil1" je créer un commandbutton "CommandButton1" pour appeler la macro
 
Private WithEvents Bouton1 As MSForms.CommandButton
Private WithEvents Text1 As MSForms.TextBox
 
Private Sub CommandButton1_Click()
 
Dim x As Integer
Dim k As Integer
 
'je vais chercher une valeur de k sur ma feuille dans la cellule A1
 
k = Sheets("Feuil1" ).Range("A1" ).Value
 
For j = k 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)
 
'Dimension du bouton
 
Boutonj.Left = 18
Boutonj.Width = 175
Boutonj.Height = 20
Boutonj.Top = 150
   
'pour donnner le nom de la feuille au commandbuton
 
Boutonj.Caption = Sheets((j + 3) - Sheets.Count).Name
 
Next j
 
UserForm1.Show
 
End Sub
 
@+ et merci d'avance

Message cité 1 fois
Message édité par beberf1 le 18-11-2005 à 15:37:13
Reply

Marsh Posté le 18-11-2005 à 10:53:34   

Reply

Marsh Posté le 18-11-2005 à 11:16:13    

Salut
D'après ce que j'ai compris le plus simple est de mettre une variable pour Boutonj.Top. A chaque fois que tu crées un bouton, tu l'incrémentes de la hauteur de ton bouton (ou un peu plus si tu veux laisser de l'espace entre eux...).
 
Par exemple:

beberf1 a écrit :


'Ta variable (qui va varier...)
Dim BoutonTop
BoutonTop=50
 
For j = k 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)
 
'Dimension du bouton
 
Boutonj.Left = 18
Boutonj.Width = 175
Boutonj.Height = 20
Boutonj.Top = BoutonTop
 
BoutonTop = BoutonTop + 25        '<====tu met la valeur que tu veux, mais supérieure à Boutonj.Height  
 
'pour donnner le nom de la feuille au commandbuton
 
Boutonj.Caption = Sheets((j + 3) - Sheets.Count).Name
 
Next j
 
UserForm1.Show
 
End Sub


Reply

Marsh Posté le 18-11-2005 à 11:24:50    

Merci ziold c'est exactement ce que je voulais.
 
@+

Reply

Marsh Posté le 18-11-2005 à 12:13:53    

Je t'en prie... Signale ton problème résolu (dans le titre du topic) pour que d'autres puissent en profiter !!

Reply

Marsh Posté le 18-11-2005 à 13:43:06    

je ne sais pas comment faire pour signaler qu'il est  résolu

Reply

Sujets relatifs:

Leave a Replay

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