[Issue][Calc] Interdire la sélection des cellules protégées

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

[Issue][Calc] Interdire la sélection des cellules protégées

Message par Harzonis »


La modération vous a écrit: Titre corrigé pour un meilleur énoncé de la question. Le terme macro est inutile dans cette section.

Bonjour.
Ma question est simple: {Comment protéger une feuille "par Macro" en interdisant la saisie des cellules vérouillées".} Il sagit d'inscrire dans la macro les arguments du panneau de protection de la feuille accessibles par le menu {Outil / Proteger le document / Feuille}

En effet : La feuille étant protégée, si l'utilisateur selectionne des cellules protégées contigues à des cellules non protégées et fait un mouvement avec la souris (Bt Gauche enfoncé), les cellules protégées se copient à l'endroit où le pointeur s'arrête.

La personne qui manipule l'application est d'une extreme maladresse et selectionne tout et n'importe quoi. Ce qui a pour avantage de faire apparaitre des complications.

Clairement, mon code très basique est le suivant :

Code : Tout sélectionner

REM ============================PROTECT_1 ====================================
Sub Protege_1()
  Dim MonDoc as Object, MaFeuille as Object
     MonDoc = ThisComponent
     Mafeuille = MonDoc.Sheets.getByName("Saisie")

   [i][b]  rem     ?_Ici je doit inscrire les arguments de protection [saisissabe ou non] _? [/b][/i]
     Mafeuille.protect("P") 

End Sub
REM =============================FIN PROTECT_1=================================
Merci de l'info. Et bonne continuation.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Calc] Protection par macro et mot de passe

Message par micmac »

Bonjour,

1- Suppression de l'icône Image dans le titre du premier message.
Les icônes mises à votre disposition ont une signification précise sur ce forum.
Veuillez consulter ce fil pour en savoir plus : ftopic3299.html.

2- Afin de le rendre plus lisible, j'ai balisé le code de votre macro
Image

3-
Dans votre signature il y a écrit : OpenOffice 4.1.3 W10
Votre signature fait mention d'une version d'OpenOffice qui n'est plus maintenue.
Si c'est une obligation ou un choix mentionnez-le par Obligation de version ou Choix dans votre signature afin de ne pas être relancé.

Connaître la version de Apache OpenOffice (AOO) ou LibreOffice (LibO) installée

Afin de profiter des dernières améliorations, pensez à être à jour de la dernière version officielle

Dans votre signature il est nécessaire d'indiquer :
  1. la version exacte de AOO ou LibO (AOO 4.1.15, LibO 24.2.5 par exemple) ;
  2. la version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Win 11, Ubuntu 22.04, macOS (Intel, M1, M2 ou M3) 14.3.1 Sonoma par exemple).
Accès direct à votre signature pour la corriger.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Protection par macro et mot de passe

Message par Harzonis »

Merci des infos. Mises à jour necessaires réaliées.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Interdire la sélection des cellules protégées

Message par Dude »

Salut,
Harzonis a écrit : 08 août 2024 08:11protéger une feuille "par Macro" en interdisant la saisie des cellules vérouillées".
On ne peut pas car il n'y a pas d'API pour le faire.
Question bien sûr déjà passée à plusieurs reprises : viewtopic.php?t=41454&hilit=calc+cellules+protégées
Aucune voix sur le rapport, cela n'intéresse pas grand monde.
Harzonis a écrit : 08 août 2024 08:11 La personne qui manipule l'application est d'une extreme maladresse et selectionne tout et n'importe quoi.
Dans ce cas pour limiter les dégâts, il faut cantonner l'utilisateur à un formulaire de saisie.
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Merci de votre conseil. Je vais proceder par formulaire. Ce sera aussi bien. En attendant j'ai mis un bouton qui
Sauve les données essentielles
1- Copie l'integralité de la feuille (format formules)
2- La recolle au bon endroit
3- Rétabli les données essentielles. C'est tordu mais ça dépanne.

Avant de procéder par panneau, je vous fais part de mes recherches (long et fastidieux...) pour résoudre mon problème. J'ai trouvé une formule mais je ne sais pas comment l'initialiser (correctement définir les variables)
Voiçi le code commenté. Vous avez le droit de rigoler et c'est même recommandé, c'est très important l'humour et la dérision.

Code : Tout sélectionner

rem =============PROTECT_FEUILLE_CELL_V=====(équivalent panneau de commande)===================
rem Protège la feuille avec interdiction de selectionner les cellules vérouillées
rem
Sub ProtFeuilleCellV
rem define variables
dim document  as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim oFeuille(0) as new com.sun.star.beans.PropertyValue
oFeuille(0).Name = "Protect"
oFeuille(0).Value = true

rem==================================================================================
REM ===[b][i]COMMENT ACTIVER CETTE FORMULE[/i][/b]  (les déclarations au dessus non adaptées je suppose)===
rem ==================================================================================
[b] oFeuille = ThisComponent.Sheets.getByName("Saisie") '-----------Saisie est le nom de la feuille.
    oFeuille.Protect(Array(), False, True)'----------------------------------Interdit la sélection des cellules verrouillées[/b]
rem------Argument 1-------False => Select [cell verouillées = NON]
rem------Argument 2 ------True  => Select [Cell Non Vérouillées = OUI]
REM =====================FIN DE FORMULE À ACTIVER=========================================
Merci encore de votre attention éclairée.
Dernière modification par micmac le 09 août 2024 08:34, modifié 1 fois.
Raison : Code balisé pour faciliter la lecture
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Bonjour Dude.
Merci de votre conseil. Je ne comprend absolument rien à la manipulation de ce Forum. Réponse publique, Réponse privée, avec ou sans copie du texte auquel on répond. Dommage que les commandes ne soient pas plus explicites. Je tenais à vous répondre. Mais comment m'assure que vous recevez ma réponse ?
Merçi de votre aide
Bonne continuation
André...

=====Ancien mesage=====
Dude a écrit : 08 août 2024 12:07 Salut,
Harzonis a écrit : 08 août 2024 08:11protéger une feuille "par Macro" en interdisant la saisie des cellules vérouillées".
On ne peut pas car il n'y a pas d'API pour le faire.
Question bien sûr déjà passée à plusieurs reprises : viewtopic.php?t=41454&hilit=calc+cellules+protégées
Aucune voix sur le rapport, cela n'intéresse pas grand monde.
Harzonis a écrit : 08 août 2024 08:11 La personne qui manipule l'application est d'une extreme maladresse et selectionne tout et n'importe quoi.
Dans ce cas pour limiter les dégâts, il faut cantonner l'utilisateur à un formulaire de saisie.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Interdire la sélection des cellules protégées

Message par Dude »

Harzonis a écrit : 09 août 2024 08:26 J'ai trouvé une formule mais je ne sais pas comment l'initialiser (correctement définir les variables)
Il faut joindre un document si tu veux qu'on t'aide.
Publier du code sans support ne sert à rien.

Harzonis a écrit : 09 août 2024 08:58 Je ne comprend absolument rien à la manipulation de ce Forum.
Tous les forums fonctionnent de la même manière. Les réponses sont publiques parce que cela peut intéresser d'autres personnes que l'auteur.
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Bonjour, OK, J'ai compris l'ergonomie.
Apres tests divers et variés, il apparait que la protection de la feuille n'a pas les mêmes propriétés selon la façon dont elle est mise en oeuvre.

1) Par Interface OO / protéger la feuille : [Cell Verouillées + cell libres dans la selection] = impossible de les changer de place. RAS tout est OK.

2) Par Macro : [..... protect .....] : [Cell Verouillées + cell libres dans la selection = Il est possible de les changer de place].
Problème : Si on glisse les cellules, certaines formules changent pour suivre les cellules qui ont changé de place. Normalement, seules les cellules libre peuvent être "bougeables" quand la feuille est verrouillée (en encore)

Suggestion pour augmenter la sécurité et la coherence :
1) Ecrire un "code" pour permettre à UNO d'avoir acces aux paramètres de la fenêtre de protection de la feuille. Ce devrait être possible pour un programmeur experimenté ayant une connaissance profonde des processus...
2) Ajouter dans la fenêtre de dialogue [OO / Protection de la feuille]; une case à cochée supplémentaire :
En cas de protection de la feuille "Les cellules non protégées peuvent être déplacées [X]"

En vous remerciant de vos éclaicicements...
Bonne continuation.
André.
PS) La moulinette complète est en pièce jointe...
--------
LISTE AINES 6.0.5.0 - Copie.ods
--------
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Interdire la sélection des cellules protégées

Message par Dude »

Harzonis a écrit : 15 août 2024 07:11 Problème : Si on glisse les cellules, certaines formules changent pour suivre les cellules qui ont changé de place.
Dix concepts essentiels à connaître
Et lire le point 8 sur les références relatives/absolues

Harzonis a écrit : 15 août 2024 07:11 Ecrire un "code" pour permettre à UNO d'avoir acces aux paramètres de la fenêtre de protection de la feuille. Ce devrait être possible pour un programmeur experimenté ayant une connaissance profonde des processus...
Si tu es développeur C++, tu peux proposer une rustine avec les API vers ces fonctions.
Mais comme déjà dit, en Basic, cela n'existe pas.
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Bonjour.
Je viens ici prendre conseil pour tenter de dépasser certaines complications sur Calc. Je tiens à vous remercier de votre aide et des judicieux conseils. J'ai terminé mes applications qui exploitent Calc. Il a fallut contourner les limitations de OO. Est-ce que ma modeste experience est utile ici ? Je ne sais pas. Je vais cependant soumettre quelques reflexions dans la rubrique consacrée. Bonne Rentrée à toutes et à tous... :super:
PS) Nous pouvons considéré ce sujet clos.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Bonjour. J'ai pris bonne note du point 8 sur les références aux cellules. Merci.

Je n'ai pas trouvé de meilleur endroit dans ce Forum, pour échanger mon experience concernant Calc et ses Macros. Dans ce présent message, je ne pose pas de questions. Je partage simplement. Ce cera peut être utile à quelqu'un.

En pièce jointe, les feuilles Calc et leurs macros comme illustration.
Très cordialement.
Fêtes 4.2.2.ods
==============================
À l'attention du Forum OO Calc

Ce qu'il serait judicieux d'améliorer (voir la source en pièce jointe)

1) En cas de sélection de cellules verrouillées et libres :
  • a) Les cell. Verrouillées sont copiés et les cell. libres sont déplacées.
    b) Les formules suivent les cellules déplacées. Ilserait interessant de les faire pointer de façon ABSOLUE [$A$1] au même endroit, c'est à dire aux même coordonnées du tableau.

Cette difficultés oblige à prévoir la réécriture de toutes la matrice de calcule en cas de mauvaise manipulation. voir Onglet [RépareExtrait] et macro associée.

2) La commande Outils / Protège / Feuille permet de ne pas sélectionner
les Cell protégées. Cette commande est inaccessible au Basic
(Écriture d'une procédure UNO par les concepteur de OO. Vous avez raison et ce n'est pas ma compétence)

3) L'onglet [Répare Extrait] et la macro associée tentent de compenser
le problème 1 et 2. Il serait normal de le masquer. Mais s'il est masqué,
la macro qui exploite cet onglet est inopérante.

EN RESUMÉ pour les concepteurs de OO :
1) Ajouter une action pour qu'une formule pointe sur les
COORDONNEE du tableau et non sur une cellule,
ou alors, en cas de [$E$8] une option pour choisir suivre ou non la cellules.
2) Permettre aux macros d'avoir accès à TOUTES (ou presque) les commandes
et en particulier les arguments de protection.
3) Permettre aux macros de traiter les commandes sur une feuille masquée.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] Interdire la sélection des cellules protégées

Message par Bidouille »

Bonjour,
Harzonis a écrit : 25 août 2024 11:43 EN RESUMÉ pour les concepteurs de OO
En résumé, vous n'avez pas compris que sur ce forum, il n'y a que des utilisateurs comme vous.
Aucun développeur ne vient ici pour lire ce qui est posté.
Si vous avez des demandes d'amélioration, vous devez donc passer par l'outil Bugzilla qui est le seul canal de communication.

A ce propos, je vois que vous n'avez même pas voté pour le rapport 123904 qui est le strict minimum si vous voulez participer à ce projet libre.

Merci de baliser [Issue] comme c'est l'usage, pour le signaler aux autres lecteurs qui tomberaient sur ce fil.
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Cher Monsieur,
Il ne m'a pas échappé que ce forum est animé par des usagers bénévols. Et, croyez le ou non, je fais usage de ce forum avec le plus grand respect pour le dévouement des bénévoles. Il me semble en effet que vos compétences sont infiniment plus avancées que les miennes. C'est pourquoi je me permet très modestement de prendre conseil ici.
Et quand je suis confronté à un problème technique, je le soumet. Et quand j'arrive à contourner une difficulté, je partage la solution. Et si, je m'aperçois qu'il est possible d'améliorer OO, je le suggère.

Que mes communications n'aterrissent pas au bon endroit, c'est possible. J'ai explorer la documentation de ce site. De mon point de vue, trouver le bon endroit pour une communication est très difficile. Il y a beaucoup trop de canaux qui se superposent. Cette structure peut convenir à des professionnels. Mais comme vous m'en avez fait la remarque, nous sommes tous et toutes ici, des amateurs. Alors, un peu d'indulgence devrait commander nos communications.
Après tout, ce qui compte, me semble t-il, est dans nos intentions de partage avec cordialité les uns envers les autres et le refus "catégorique" (pour ce qui me concerne) d'alimenter le monopole de Microsoft.
Avec tout mon respect.
André
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4117
Inscription : 06 oct. 2008 08:03

Re: [Calc] Interdire la sélection des cellules protégées

Message par Oukcha »

Bonjour,

Pour voter pour une issue, merci de suivre ce tutoriel :
Reporter une bogue, demander une amélioration ou voter

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Harzonis
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 17 janv. 2017 22:25

Re: [Calc] Interdire la sélection des cellules protégées

Message par Harzonis »

Merci. J'ai regardé le contenu du lien. C'est en effet le bon lien. Bonne continuation.
OpenOffice 4.1.15
Système : Windows 10 ; 22H2
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Calc] Interdire la sélection des cellules protégées

Message par micmac »

Bonjour,

Si vous avez trouvé ou rédigé un rapport, merci de nous le communiquer dans votre prochain message avec le lien qui permet d'y accéder.
Revenez ensuite ici nous communiquer le numéro de rapport et le lien pour y accéder.
Ensuite éditez le titre de votre premier message en ajoutant manuellement au début du titre du premier message la balise [Issue] et en cochant l'icône Image.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] Interdire la sélection des cellules protégées

Message par Bidouille »

Dernière visite :
02 sept. 2024 18:20
Pas de vote, pas de balisage du titre comme demandé... Est-ce que vous comprenez le sujet ?
Je l'ai fait à votre place.