bonjour,
sur une feuille j'ai un bouton "effacement", pour effacer (ça tombe bien ) les données manuelles,
dont voici, pour infos, le script
ça fonctionne nickel, et depuis pas mal de temps
Code oBasic : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Dim monDocument As Object Dim lesFeuilles as Object Dim maFeuille As Object Dim maCellule As Object Sub RaZ_1Q() If MsgBox("Voulez-vous effacer les données ?", 292) = 7 Then Exit Sub Call SuppFeuille_1("Données") End Sub 'effacement données manuelles Function SuppFeuille_1 (NomFeuille as string) monDocument = ThisComponent lesFeuilles = monDocument.Sheets maFeuille = lesFeuilles.getByName(NomFeuille) aEffacer = com.sun.star.sheet.CellFlags.VALUE +_ com.sun.star.sheet.CellFlags.DATETIME maCellule = maFeuille.getCellRangeByName("B8:G15") maCellule.clearContents(aEffacer) End Function
or, quand la feuille est protégée (sans mdp) pour ne laisser que les cellules "données manuelles" modifiables
la fonction effacement n'est plus active, après appui sur le bouton, la boite de validation apparaît, clic oui, mais rien ne s'efface
je suis obligé de "déprotéger" la feuille, effacer puis "reprotéger"
c'est pas trop pratique
j'ai trouvé un petit script ici
https://www.developpez.net/forums/d1...-feuille-code/
j'ai essayé de l'adapter, mais n'y suis pas arrivé
Code oBasic : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub mdpTableur() Dim monDocument As Object, motPasse As String monDocument = ThisComponent if monDocument.isProtected then monDocument.unprotect("PullOff44") else monDocument.protect("PullOff44") ' mettre un mot de passe end if End Sub
question : comment faire pour que l'effacement soit actif même quand la feuille est protégée ? est-ce possible ?
merci d'avance
déb
Partager