Bonsoir Michel,
Le 06/03/2016 18:08, Michel Rudelle a écrit :
Pour protéger une feuille Calc par macro, l’instruction suivante marche très
bien : oFeuille.protect("motDePasse")
Mais je ne trouve pas comment désélectionner les autorisations :
- Sélectionner les cellules protégées
- Sélectionner les cellules non protégées
Je ne sais pas ce que tu veux accomplir précisément. Alors voici qq
idées, en vrac.
Ce bout de code qui parcourt une feuille ne pourrait-il pas te servir de
base ? (trouvé ici : [1])
Sub LockCells(oRange As Object)
Dim Doc As Object
Dim oSheet As Object
Dim oCell As Object
Dim p As New com.sun.star.util.CellProtection
Dim col As Long
Dim row As Long
Doc = ThisComponent
oSheet = Doc.Sheets(oRange.RangeAddress.Sheet)
oSheet.unprotect("Password")
For col = 0 to oRange.Columns.Count - 1
For row = 0 to oRange.Rows.Count - 1
oCell = oRange.getCellByPosition(col,row)
p = oCell.CellProtection
If oCell.getType() <> com.sun.star.table.CellContentType.EMPTY
and not p.IsLocked Then
p.Islocked = True
oCell.CellProtection = p
End If
Next Row
Next col
oSheet.protect("Password")
End Sub
En le combinant avec :
1. La création d'un range sur les cellules (non)protégées trouvées
2. La sélection du range ensuite
Mieux (?) mais je n'ai jamais essayé dans ce type d'usage : utiliser
queryContentCells(CellFlags)
avec CellFlags à : com.sun.star.sheet.CellFlags.HARDATTR (ou STYLES)
Plus d'infos dans OOME par Andrew Pitonyak [2]
Tu trouveras sans doute aussi dans la bible par saints Marcelly et
Godard, édition 2011, des idées à combiner. Voir au chapitre 9 les
rubriques :
-- Protéger une cellule (p.423)
-- Énumérer les cellules d'une zone (p.448)
[1] https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=34393
[2] http://www.pitonyak.org/OOME_3_0.pdf
--
Jean-Francois Nifenecker, Bordeaux
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être
supprimés
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.