Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


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+unsubscribe@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.