Bonjour Bernard,

Le 31/03/2019 à 11:06, Bernard Siaud alias Troumad a écrit :

Toujours dans mon document http://troumad.org/OOo/Feuille_Chronique.ods, j'ai des cases à cocher. J'aimerai vérifier leur état avec une marcro.

Je cherche une macro qui cheke les checkbutton.

Voici une fonction qui compte les cases à cochées à l'état coché sur un document Calc. Tu devras l'adapter pour ton besoin.

(non testé)

8< --------------------------------------------------
Function _CheckBoxCount(pDoc As Object, pSheetName As String, pFormName As String) As Long
'pDoc : le document Calc
'pSheetName : le nom de la feuille à explorer
'pFormName : le nom du formulaire
'Renvoie le nombre de cases cochées, ou -1 si erreur (feuille ou formulaire inconnus)

Dim oSheet As Object
Dim oForm As Object
Dim oControls As Object
Dim oCurControl As Object
Dim i As Long
Dim l_Checked As Long

l_Checked = -1

On Local Error Goto ErrHandler

If pDoc.Sheets.hasByName(pSheetName) Then
        oSheet = pDoc.Sheets.getByName(pSheetName)
        oForm = oSheet.DrawPage.Forms.getByName(pFormName)
        If Not IsNull(oForm) Then
                l_Checked = 0
                oControls = oForm.getControlModels
                For i = 0 To UBound(oControls)
                        oCurControl = oControls(i)
                        'case à cocher ?
                        If (oCurControl.ClassID = 5) Then
                                'cochée ?
                                If (oCurControl.State = 1) Then
                                        l_Checked = l_Checked + 1
                                End If
                        End If  
                Next i
        End If
End If

ErrHandler:
        'ne rien faire

_CheckBoxCount = l_Checked
End Function '_CheckBoxCount
----------------------------------------------------- >8


Bien cordialement,
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Bien cordialement,
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Répondre à