Création de checkbox pour chaque feuille

altefqhatre

XLDnaute Junior
Bonjour :)

Je peine sur une userform et plus particulièrement sur les checkbox.

Enfait, j'aimerais que la macro me créer une checkbox pour chaque feuille du classeur à partir de la troisième feuille uniquement.

Voilà mon code:

Code:
Private WithEvents Check As MSForms.CheckBox
Private WithEvents Text As MSForms.TextBox

Private Sub Userform_activate()
  
Dim x As Integer
Dim nombre As Integer
Dim j As Integer


nombre = Worksheets.Count
 

Dim CheckTop As Integer
CheckTop = 100
 
For j = nombre To 3 Step -1
  

 
Set Check(j) = Options.Controls.Add("Forms.CheckBox.1", "Check(j)", True)


 
Check(j).Left = 2
Check(j).Width = 10
Check(j).Height = 20
Check(j).Top = CheckTop
CheckTop = CheckTop + 25
 


Check(j).Caption = Sheets((j + nombre) - Sheets.Count).Name
 
 
Next j
 
End Sub

Le problème est que lors de l'éxécution j'ai l'erreur "Variable objet ou varible de bloc non définie" lorsque s'éxécute:

Code:
Set Check(j) = Options.Controls.Add("Forms.CheckBox.1", "Check(j)", True)

Qqun aurait une idée?

Merci beaucoup pour votre aide! :D

Bonne journée
 

Pierrot93

XLDnaute Barbatruc
Re : Création de checkbox pour chaque feuille

Bonjour,

essaye peut être ainsi :

Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim x As Integer, nombre As Integer, j As Integer, CheckTop As Integer
Dim c As MSForms.CheckBox
nombre = Worksheets.Count
CheckTop = 100
For j = nombre To 3 Step -1
    Set c = Me.Controls.Add("Forms.CheckBox.1", "Check(j)", True)
    c.Left = 2
    c.Width = 10
    c.Height = 20
    c.Top = CheckTop
    CheckTop = CheckTop + 25
    c.Caption = Sheets((j + nombre) - Sheets.Count).Name
Next j
End Sub

Pas sur que les 2 lignes de code ci-dessous soient bien positionnées dans le module de ton usf, perso je les verrais plutôt dans un module de classe...
Code:
Private WithEvents Check As MSForms.CheckBox
Private WithEvents Text As MSForms.TextBox


bon après midi
@+
 

altefqhatre

XLDnaute Junior
Re : Création de checkbox pour chaque feuille

Salut Pierrot :)

Merci pour ton aide :)

ça fonctionne très bien mais par contre quel est le code pour autofit l'userform et pouvoir mettre les checkbox sur plusieurs colonnes?

Parce qu'avec un fichier de 50 feuilles ça risque de pas être hyper sexy :p
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Création de checkbox pour chaque feuille

Re,

euh... vois pas trop l'intêret, car tes "checkbox sont créées dynamiquement, non ... donc si tu connais les paramètres pour alimenter le "caption", autant les utiliser directement pour le placement....
 

altefqhatre

XLDnaute Junior
Re : Création de checkbox pour chaque feuille

Merci Pierrot c'est tout bon cette fois, désolé je m'exprime pas très bien.

En revanche, pour en revenir à ma première requête, sais-tu comment ajouter une checkbox pour chaque feuille en commençant par la dernière feuille du classeur stp?

D'avance merci beaucoup!!!
 

Pierrot93

XLDnaute Barbatruc
Re : Création de checkbox pour chaque feuille

Re

comprends pas trop, c'est ce que fait le code, non :

Code:
nombre = Worksheets.Count
CheckTop = 100
For j = nombre To [COLOR="Red"][B]3[/B][/COLOR] Step -1
    Set c = Me.Controls.Add("Forms.CheckBox.1", "Check(j)", True)

remplace peut être le 3 (en rouge) par 1, pour avoir un "checkbox" par feuille...
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 770
Membres
103 662
dernier inscrit
rterterert