Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

For each checkbox

6 réponses
Avatar
Flac
Bonjour,
Excel 2000
Sur une feuille, j'ai 15 checkbox
J'aimerais avoir une procédure qui s'exécute selon que le checkbox est coché
ou non. J'ai essayé ceci mais ça ne fonctionne pas.
Qq pourrait-il m'aider SVP

Sub test()
For Each CheckBox In ActiveSheet
If CheckBox = True Then
MsgBox ("coché")
Else
MsgBox ("non coché")
End If
Next CheckBox
End Sub

Flac

6 réponses

Avatar
JB
Bonjour,


For Each c In ActiveSheet.OLEObjects
If c.Object.Value Then
MsgBox "coché"
Else
MsgBox "non coché"
End If
Next

http://boisgontierjacques.free.fr/pages_site/controlestableurBOControle.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/controlestableurBOControle.htm
http://boisgontierjacques.free.fr/pages_site/controlestableurBOForm.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/controlestableurBOForm.htm

JB
http://boisgontierjacques.free.fr


On 14 août, 18:13, "Flac" wrote:
Bonjour,
Excel 2000
Sur une feuille, j'ai 15 checkbox
J'aimerais avoir une procédure qui s'exécute selon que le checkbox es t coché
ou non.  J'ai essayé ceci mais ça ne fonctionne pas.
Qq pourrait-il m'aider SVP

Sub test()
For Each CheckBox In ActiveSheet
        If CheckBox = True Then
        MsgBox ("coché")
        Else
        MsgBox ("non coché")
        End If
        Next CheckBox
End Sub

Flac


Avatar
Flac
Merci,
Une question complémentaire:
Comment pourrais-je numéroter (de 1 à 15) chacune des checkbox
dans la procédure que tu as suggérée?

Flac
Avatar
JB
c.name donne le nom:

For Each c In ActiveSheet.OLEObjects
MsgBox c.Name
If c.Object.Value Then
MsgBox "coché"
Else
MsgBox "non coché"
End If
Next

JB

On 14 août, 19:15, "Flac" wrote:
Merci,
Une question complémentaire:
Comment pourrais-je numéroter (de 1 à 15) chacune des checkbox
dans la procédure que tu as suggérée?

Flac


Avatar
LE TROLL
Bonjour,

De tête, le checkBox doit avoir trois ou 4 états, donc le test n'est pas
boolean (interger peut être)... tu as : "décoché", "coché", "grisé"...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"JB" a écrit dans le message de news:

Bonjour,


For Each c In ActiveSheet.OLEObjects
If c.Object.Value Then
MsgBox "coché"
Else
MsgBox "non coché"
End If
Next

http://boisgontierjacques.free.fr/pages_site/controlestableurBOControle.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/controlestableurBOControle.htm
http://boisgontierjacques.free.fr/pages_site/controlestableurBOForm.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://boisgontierjacques.free.fr/pages_site/controlestableurBOForm.htm

JB
http://boisgontierjacques.free.fr


On 14 août, 18:13, "Flac" wrote:
Bonjour,
Excel 2000
Sur une feuille, j'ai 15 checkbox
J'aimerais avoir une procédure qui s'exécute selon que le checkbox est
coché
ou non. J'ai essayé ceci mais ça ne fonctionne pas.
Qq pourrait-il m'aider SVP

Sub test()
For Each CheckBox In ActiveSheet
If CheckBox = True Then
MsgBox ("coché")
Else
MsgBox ("non coché")
End If
Next CheckBox
End Sub

Flac


Avatar
michdenis
En supposant que tu as conservé comme NOM à
tes contrôles "CHECKBOX" de ta feuille la racine "CHECKBOX"
plus un index comme nom de tes contrôles.


Attention aux coupures de ligne de code par le service de messagerie

'----------------------------------------
Sub CheckBox()
Dim A As Integer, NRacine As String
Dim Obj As OLEObject

With Worksheets("Feuil1") 'Nom de la feuille à adapter
For Each Obj In .OLEObjects
If TypeName(Obj.Object) = "CheckBox" Then
A = A + 1
Select Case .Shapes("CheckBox" &
A).OLEFormat.Object.Object.Value
Case Is = True
'Ton code quand tes checkbox = vrai
MsgBox Obj.Name & " = " & Obj.Object.Value
Case Is = False
'Ton code quand tes checkboox = faux
MsgBox Obj.Name & " = " & Obj.Object.Value
Case Else
'Si la propriété TripleState = true
'et que ton checkbox n'est pas vrai or true
'Ton code
MsgBox Obj.Name & " est ni vrai ou faux."
End Select
End If
Next
End With

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







"Flac" a écrit dans le message de news:
eC28sii$
Bonjour,
Excel 2000
Sur une feuille, j'ai 15 checkbox
J'aimerais avoir une procédure qui s'exécute selon que le checkbox est coché
ou non. J'ai essayé ceci mais ça ne fonctionne pas.
Qq pourrait-il m'aider SVP

Sub test()
For Each CheckBox In ActiveSheet
If CheckBox = True Then
MsgBox ("coché")
Else
MsgBox ("non coché")
End If
Next CheckBox
End Sub

Flac
Avatar
Flac
Merci à tous,

C'est très apprécié.

Flac









"michdenis" a écrit dans le message de news:
eFfYVBs$
En supposant que tu as conservé comme NOM à
tes contrôles "CHECKBOX" de ta feuille la racine "CHECKBOX"
plus un index comme nom de tes contrôles.


Attention aux coupures de ligne de code par le service de messagerie

'----------------------------------------
Sub CheckBox()
Dim A As Integer, NRacine As String
Dim Obj As OLEObject

With Worksheets("Feuil1") 'Nom de la feuille à adapter
For Each Obj In .OLEObjects
If TypeName(Obj.Object) = "CheckBox" Then
A = A + 1
Select Case .Shapes("CheckBox" &
A).OLEFormat.Object.Object.Value
Case Is = True
'Ton code quand tes checkbox = vrai
MsgBox Obj.Name & " = " & Obj.Object.Value
Case Is = False
'Ton code quand tes checkboox = faux
MsgBox Obj.Name & " = " & Obj.Object.Value
Case Else
'Si la propriété TripleState = true
'et que ton checkbox n'est pas vrai or true
'Ton code
MsgBox Obj.Name & " est ni vrai ou faux."
End Select
End If
Next
End With

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







"Flac" a écrit dans le message de news:
eC28sii$
Bonjour,
Excel 2000
Sur une feuille, j'ai 15 checkbox
J'aimerais avoir une procédure qui s'exécute selon que le checkbox est
coché
ou non. J'ai essayé ceci mais ça ne fonctionne pas.
Qq pourrait-il m'aider SVP

Sub test()
For Each CheckBox In ActiveSheet
If CheckBox = True Then
MsgBox ("coché")
Else
MsgBox ("non coché")
End If
Next CheckBox
End Sub

Flac