Problème syntaxe code vba - sur label checkbox

Résolu
Kayna.86 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

J'ai créée un interface utilisateur pour mon service sur un fichier excel que je souhaite à présent recréer sur access.

J'ai crée une boucle sur un userform (version excel) qui me permettait de reporter le texte de chaque checbox cochés sur une feuille excel.
En voici le code:

Private Sub CommandButton1_Click()

Dim J As Byte
Dim I As Byte
Dim ctrl As Control
Dim MyRange As Range
Dim Nbselections As Byte

If ActiveSheet.Name = ("COMPARISON") Then Set MyRange = Cells(20, 8)
If ActiveSheet.Name = ("DATA per ENTITY") Then Set MyRange = Cells(21, 5)
If ActiveSheet.Name = ("ALL PERIMETER") Then Set MyRange = Cells(18, 5)

J = 1
For Each ctrl In Me.Frame1.Controls
   If TypeName(ctrl) = "CheckBox" Then
      If ctrl.Value = True Then
        MyRange.Offset(J - 1, 0) = ctrl.Caption
         J = J + 1
         I = I + 1
      End If
   End If
Next ctrl
Nbselections = I

If Nbselections = 0 Then
MsgBox " Please chose at least 1 element.", vbOKOnly + vbExclamation, "Error"
Exit Sub
End If
MyRange.Offset(-2, 0) = "DATA"
Unload Me
End Sub


J'ai repris le code en question et j'essaie de l'adapter de sorte qu'il puisse fonctionner avec un formulaire access. Cette fois, je souhaite que les textes correspondant aux checkbox cochés se reporte dans un textbox.
Dans access les checkbox sont couplés à des labels qui sont l'équivalent de la propriété caption d'un checkbox sur un userform excel.
Mon souci est que je ne sais pas comment faire référence, dans ma boucle, au label qui est associé au checkbox coché :
J'ai tenté, entres autres, le code suivant, en m'inspirant de ce que j'ai pu lire ici et là, mais sans succès:

Private Sub Command16_Click()

Dim I As Byte
Dim ctrl As Control
Dim Nbselections As Byte
Dim Txt As String

I = 0
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then

Txt = Txt & ctrl.Item.Caption & vbCrLf
I = I + 1
End If
End If
Next ctrl
Nbselections = I
Texte73 = Txt


If Nbselections = 0 Then
MsgBox " Please chose at least 1 element.", vbOKOnly + vbExclamation, "Error"
Exit Sub
End If

DoCmd.Close acForm, "INVESTMENTS_SCOPE"

End Sub

Quelqu'un saurait-il m'aider à solutionner mon problème?


Merci d'avance!
A voir également:

2 réponses

Grisounet Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour,
Évite de jouer à Molière sur un forum.
Dis ce qui ne va pas directement...ce serait plus simple à lire ;)
0
Kayna.86 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Bonjour Grisounet,

Je reformule de façon synthétique:

Je voudrais savoir comment reporter le texte de chaque checkbox coché dans une formulaire Acces, dans un textbox?



Merci d'avance,

Kayna
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

qu'appelles-tu le texte du checkbox ?
0
Kayna.86 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Salut Blux,

En fait, je fait référence au libéllé du checkbox. Sur un formulaire qui me permet de sélectionner des couleurs, par ex, ce serait, "bleu", "blanc", "rouge", etc.
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Je crois que la propriété 'caption' doit offrir le libellé du checkbox.
Ensuite, il suffit de faire une boucle sur les objets du formulaire,de vérifier leur type et d'en extraire les checkbox.
0
Kayna.86 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Bonjour Blux,

La propiété caption n'est pas reconnu sur access lorsqu'il s'agit d'un checkbox.


Kayna
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Oui, je viens de vérifer, un checkbox n'a pas ce genre de propriété, c'est le .caption de l'étiquette qui y est rattachée...
0