IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Macros et VBA Excel Discussion :

Informations cachées dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut Informations cachées dans une cellule
    Bonjour,

    Provenant du monde .Net (C#), je suis en train de m'initier au VBA Excel.

    Je me retrouve face à un petit problème :

    J'aimerais faire un système qui permettrais de locker une partie des cellules d'une feuille.
    Pour cela j'avais pensé lier à certaines cellules (celles que je veux locker) une donnée totalement invisible à l'utilisateur de façon à les différencier des cellules normales.
    Ainsi, au chargement de la feuille il me suffirais de locker toutes les cellules ayant cette donnée (exemple un booléen à true)

    Problème : Je ne trouve pas le moyen d'ajouter à une cellule des (meta) données accessible uniquement en VBA.

    Suis-je sur la bonne piste ? ou totalement égaré ?

    Et existe-t-il une solution à mon problème ?

    Merci d'avance.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une petite explication :
    Par défaut, toutes les cellules sont verrouillées.
    Pour que ce verrouillage prenne effet, la feuille doit être protégée.
    Il existe plusieurs types de protection dont une qui empêche la modification des cellules... sauf modifications effectuées par macro.
    Chaque cellule peut être verrouillée ou nom : Dans Excel -> Format -> Cellule -> Onglet Protection.
    Dans le même onglet, tu as également l'option "Masqué"
    Tu regardes déjà ça et si tu n'y arrives pas, tu dis
    Bonne journée

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut
    Bonjour,

    Merci pour cette précision, j'ai oublié de préciser que mon problème n'était pas sur le fait de protéger les cellules mais plutôt sur le fait de "tagger" les cellules devant-être protégée.

    Un autre exemple serait de pouvoir, sur n'importe quelle feuille, reconnaitre une zone précise en parcourant les cellules et en recherchant un marqueur spécial, qui m'indiquerais par exemple que cette ligne est une ligne de résultat qu'il faut traiter (sachant qu'a la base je n'ai aucunes information concernant l'emplacement de cette ligne).

    Et je voudrais pouvoir la localiser autrement qu'en utilisant le contenu visible d'une cellule pour des raisons de sécurité et de confort de lecture.

    Pour être plus clair, voici mon objectif final, permettre à un utilisateur identifié de choisir quelles cellules il veux protéger pour ensuite diffuser le document en toute sécurité.

    (On pourrais imaginer que l'utilisateur marque les cellules devant être protéger en changeant la couleur de fond, ensuite à l'ouverture je lock toutes les cellules ayant un fond rose^^ par exemple. Mais c'est pas vraiment propre)

    Je voudrais réussir a faire tout cela sans passer par l'interface de Excel, uniquement en VBA.

    J'espère avoir été plus compréhensible.

    Bonne journée

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonjour,

    En fait je comprends pas en quoi c'est plus simple de colorer une cellule en rose que directement la protéger depuis excel ?

    on peu par exemple rajouter une modification de la cellule sur double clic

    avec un code dans ce genre pour le code de la feuille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Locked Then
          Target.Locked = False
          Target.Interior.ColorIndex = xlNone
      Else
          Target.Locked = True
          Target.Interior.Color = vbBlue
          Target.Interior.ColorIndex = 7
          Target.Interior.Pattern = xlSolid
      End If
      Cancel = True
     
    End Sub
    faudrai surement rajouter quelques tests sur target, pour être sur d'être sur une zone verrouillable .

    Ou bien modifier le menu contextuel "Cells" d'excel et rajouter une entrée verrouiller/deverouiller...

    dis nous quoi.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Par défaut
    Merci pour l'exemple, cela se rapproche de ce dont j'ai besoin.

    Cependant mon véritable problème est d'ajouter des données personnalisé à la cellule qui sont invisible à l'utilisateur de la feuille. Pour ensuite locker "automatiquement" certaines cellules.

    D'après ce que j'ai vu on peut donner un "name" à une cellule, c'est presque ce dont j'ai besoin à ceci près qu'il me faudrait pouvoir stocker plusieurs informations.

    Exemple :

    Rechercher les cellules marquées "Résultat".
    Pour ensuite locker les 3 cellules de dessous. (Car elles contiennent des formules qui ne doivent pas être édité par les simple lecteurs)
    Sachant que je ne sais pas où sont les cellules "Résultat".

    J'imagine que se sont des réflexes typique du dev C#, mais je ne vois pas d'autres solutions pour l'instant.

    Reformulation :

    Je voudrais pouvoir typer les cellules, sachant que chaque cellule pourrais avoir plusieurs types simultanément.

    Pour avoir des cellules du Type "Protected", ou "à exporter", ou "legende".

    Pour effectuer des traitement automatiques spécifiques à ces cellules précisément.

    C'est peut-être plus clair.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu pourrais nommer les cellules "résultat" en créant un index à un nom identique puis, avec offset, verrouiller les cellules qui t'intéressent dans une boucle.
    Juste une idée
    Mais qu'est censé faire l'utilisateur dans l'histoire ?

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Et en créant une image de ta feuille avec une feuille en mode hidden ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/07/2014, 16h46
  2. [LibreOffice][Tableur] Mettre informations dans une cellule depuis InputBox
    Par phildu80 dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 28/06/2014, 11h01
  3. Comment recuperer information page web dans une cellule ? (question 1)
    Par gsweet1981 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/04/2013, 08h54
  4. [XL-2007] Mettre les informations d'une userform dans une cellule
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/03/2011, 09h20
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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