Controler Checkbox crée par vba

  • Initiateur de la discussion Initiateur de la discussion linked
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

linked

Guest
Bonjour,

Je suis sur un probleme depuis un petit moment la et malgré la fonction recherche je ne trouve pas de reponse. J'ai crée des checkbox et un commandbutton garce à VBA mais je comprend pas comment on peut agir avec.
Voici mon code:
Code:
Set Obj = Me.Controls.Add("forms.Checkbox.1")
With Obj
.Name = "Checkbox" & c
.Object.Caption = Equipement(l, c, 0, 0)
.Left = 10
.Top = y
.Width = 200
.Height = 20
End With

ensuite grace à un command bouton que j'ai crée moi meme sans vba pour tester j'ai mis:
Code:
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then MsgBox ("ca marche")
End Sub

Mais ca me met tout le temps un message d'erreur meme si je met le nom de mon userform devant checkbox.

Comment on fait ???
 
Re : Controler Checkbox crée par vba

Bonjour

edit: ce code renvoie bien le nom des checkbox et de leur caption
Code:
Private Sub CommandButton1_Click()
Dim ctr As Control
For Each ctr In Me.Controls
If TypeName(ctr) Like "CheckBox*" Then
x = ctr.Name
y = ctr.Object.Caption
MsgBox "Nom du controle: " & x & Chr(13) _
& "Caption du controle: " & y
End If
Next
End Sub


Equipement: c'est fonction personnalisée?

D'habitude
Object.Caption ="valeur" 'il y a des guillemets non?

.Object.Caption = Equipement(l, c, 0, 0)
 
Dernière édition:
Re : Controler Checkbox crée par vba

Bonjour à tous,

Je n'ai pas de message d'erreur mais pas d'action déclenchée non plus...
Pourtant il est bien créé en CheckBox1...
J'ai essayé de rajouter .enabled = true sans succès.

Mais pouquoi veux tu créer un textbox à tout prix?
Pour éviter les migraines, je te propose de procéder autrement : créer manuellement ton Checkbox dans l'UF et ne le rendre visible que lorsque tu en as besoin...
Le reste du temps, il est invisible...
Ca revient exactement au même mais en plus ça marche!...

Cordialement
 
Re : Controler Checkbox crée par vba

Bonjour à tous.

Je me trompe peut-être, mais il me semble que le "Set" sert à instancier un objet.
Hors, dis comme ça, l'objet n'a pas d'existence propre, il faut le créer en passant par un New.

Seulement, la philosophie objet, je commence à rentrer dedans sur VS 2005, et avec Excel, c'est hyper galère 🙁
 
Re : Controler Checkbox crée par vba

bonjour


Tu peux tester

Code:
Option Explicit
Private WithEvents Obj As msforms.CheckBox


Code:
'
'...
'
Set Obj = Me.Controls.Add("forms.Checkbox.1")
With Obj
    .Name = "Checkbox" & c
    .Object.Caption = "wxxx" 'Equipement(l, c, 0, 0)
    .Left = 10
    .Top = 30 'y
    .Width = 200
    .Height = 20
End With
'
'...
'

Code:
Private Sub CommandButton1_Click()
If Obj.Value = True Then MsgBox "ça marche"
End Sub


Bon week end
MichelXld
 
Re : Controler Checkbox crée par vba

Merci pour toutes vos reponses 🙂
Pour Equipement c'est en fait un tableau qui contient des infos, pour ça je n'ai pas de soucis ça marche bien au niveau de l'affichage de ma checkbox.
J'aimerais bien creer mes checkbox manuellement mais le nombre n'est pas defini d'avance et de plus je dois mettre un genre de titre entre mes differentes checkbox à des intervalles non reguliers, la misere....

Avec:
Code:
Dim ctr As Control
For Each ctr In Me.Controls
Je peut effectivement avoir un control dessus merci.
 
Re : Controler Checkbox crée par vba

rebonjour


Cet exemple ajoute une série de CheckBox dynamiquement dans un UserForm, et gére les évènements de ces nouveaux contrôles, à partir d'un module de classe.


Code:
 '--------------------------------------
'Procédure de création des CheckBoxs à placer dans l'UserForm.
'L'UserForm doit préalablement contenir un bouton nommé CommandButton1

Option Explicit

Private Sub CommandButton1_Click()
Dim Obj As Control
Dim Cl As Classe1
Dim i As Integer

Set Collect = New Collection

For i = 1 To 3 'boucle pour la création des CheckBox
    Set Obj = Me.Controls.Add("forms.Checkbox.1")
    With Obj
        .Name = "moncheckbox" & i
        .Object.Caption = "le texte" & i
        .Left = 140
        .Top = 30 * i + 10
        .Width = 50
        .Height = 20
    End With
    
    'ajout de l'objet dans la classe
    Set Cl = New Classe1
    Set Cl.ChkBx = Obj
    Collect.Add Cl
Next i

End Sub
'--------------------------------------

Code:
 '--------------------------------------
'A placer dans un module de classe nommé "Classe1"
'
Option Explicit

Public WithEvents ChkBx As MSForms.CheckBox

'Exemple pour gérer l'évènement clic sur les objets type CheckBox
Private Sub ChkBx_Click()
    'cet exemple affiche le nom et la valeur de l'objet cliqué
    MsgBox ChkBx.Name & ": " & ChkBx.Value
End Sub
'--------------------------------------


Code:
 '--------------------------------------
'A placer dans un module standard
Option Explicit

Public Collect As Collection
'--------------------------------------



Bon week end
MichelXld
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
2 K
I
Réponses
6
Affichages
1 K
im_Guillaume
I
  • Question Question
Microsoft 365 problème date
Réponses
7
Affichages
728
Retour