Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion: Protéger / déprotéger une cellule avec une macro [LibreOffice][Tableur]

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 7
    Points
    7

    Par défaut Protéger / déprotéger une cellule avec une macro

    Bonjour,

    J'ai utilisé l'enregistreur de macro afin d'obtenir un code permettant de protéger une cellule :

    Code : 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
    22
    23
    24
    25
    26
    27
    28
    29
    sub ProtegeCellule
    rem ----------------------------------------------------------------------
    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 args1(0) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "ToPoint"
    args1(0).Value = "$H$5"
     
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
     
    rem ----------------------------------------------------------------------
    dim args2(3) as new com.sun.star.beans.PropertyValue
    args2(0).Name = "Protection.Locked"
    args2(0).Value = true
    args2(1).Name = "Protection.FormulasHidden"
    args2(1).Value = true
    args2(2).Name = "Protection.Hidden"
    args2(2).Value = false
    args2(3).Name = "Protection.HiddenInPrintout"
    args2(3).Value = true
    dispatcher.executeDispatch(document, ".uno:Protection", "", 0, args2())
    end sub
    Cette macro fonctionne bien mais je me demandais si il n'y avait pas plus simple comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofeuille.ocellule.protect = True
    Par avance merci de votre aide.

    Bien sincèrement

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : septembre 2009
    Messages : 84
    Points : 112
    Points
    112

    Par défaut Protection cellule

    Bonjour,
    En partant du principe que : La protection d’une cellule n’est activée que lorsque la feuille est protégée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim laProtection As New com.sun.star.util.CellProtection
    laProtection.IsFormulaHidden = True
    maCellule.CellProtection = laProtection
    maFeuille.protect("OpenOffice") ' mettre un mot de passe
    maFeuille.protect("") ' sans mot de passe
    Cordialement
    Libre Office Version: 6.0.1.1 (x64)
    Windows 10

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Bonjour Mobydick_62,
    Merci de m'avoir mis sur la bonne voix...
    Comme je souhaitais protéger simplement une cellule, j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    laProtection.IsFormulaHidden = True
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    laProtection.IsLocked = True
    Encore Merci.
    Bien sincèrement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fusionner plusieurs cellules avec une macro
    Par ANGLIQUESOIG dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2013, 16h01
  2. remplacer le contenu d'une cellule par un autre avec une macro
    Par valentin31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2012, 09h02
  3. [XL - 2010] Mise à jour cellule avec formule macro
    Par scrouet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2011, 10h46
  4. Protéger (Verrouiller) une cellule Excel avec delphi
    Par messahel dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2011, 09h47
  5. [XL-2003] Récupérer une valeur via COM (avec une macro sur la cellule)
    Par a028762 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2010, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo