Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Variables invisibles

10 réponses
Avatar
Rabaté
Bonjour à tous,

Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
(comme cela est possible avec Word avec l'objet Variables)

Merci
Nicolas
--------

--
Nicolas
--------

10 réponses

Avatar
Caetera
> Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur



La "méthode du nom caché" est pas mal du tout :

Le créer :

A
Names.Add "NomCaché", "=" & A, False

Le modifier :
Names("NomCaché").RefersTo = 100

Etc
Avatar
Rabaté
Merci Caetera

En effet je connais ce principe, mais sauf erreur cela ne permet pas de
mettre une chaine de plus de 255 caractères alors que l'objet variable de
word permet de stocker 65280 caractères.

Nicolas
--------


"Caetera" wrote:

> Est-il possible de définir programmatiquement des variables stockées dans le
> fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur

La "méthode du nom caché" est pas mal du tout :

Le créer :

A
Names.Add "NomCaché", "=" & A, False

Le modifier :
Names("NomCaché").RefersTo = 100

Etc





Avatar
MichDenis
Bonjour Rabaté,

Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
La limite de 255 caractères existe aussi !

Application.Names.Add "toto", "MaValeur", False



"Rabaté" a écrit dans le message de groupe de discussion
:
Bonjour à tous,

Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
(comme cela est possible avec Word avec l'objet Variables)

Merci
Nicolas
--------

--
Nicolas
--------
Avatar
Rabaté
Comme indiqué dans le précédent échange, cette solution n'est pas acceptable
à cause de la limitation à 255 caractères.
Nicolas
--------


"MichDenis" wrote:

Bonjour Rabaté,

Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
La limite de 255 caractères existe aussi !

Application.Names.Add "toto", "MaValeur", False



"Rabaté" a écrit dans le message de groupe de discussion
:
Bonjour à tous,

Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
(comme cela est possible avec Word avec l'objet Variables)

Merci
Nicolas
--------

--
Nicolas
--------




Avatar
MichDenis
Tu peux utiliser une feuille de calcul, tu pourras y entrer tout le texte que tu désires
à raison de 32768 caractères par cellules.

Et en vba, tu masques cette feuille en utilisant :
Worksheets("MaFeuille").Visible = xlSheetVeryHidden

Il n'y a aucun moyen pour l'usager d'afficher une feuille
masquée de cette manière.


"Rabaté" a écrit dans le message de groupe de discussion
:
Comme indiqué dans le précédent échange, cette solution n'est pas acceptable
à cause de la limitation à 255 caractères.
Nicolas
--------


"MichDenis" wrote:

Bonjour Rabaté,

Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
La limite de 255 caractères existe aussi !

Application.Names.Add "toto", "MaValeur", False



"Rabaté" a écrit dans le message de groupe de
discussion
:
Bonjour à tous,

Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
(comme cela est possible avec Word avec l'objet Variables)

Merci
Nicolas
--------

--
Nicolas
--------




Avatar
Rabaté
Merci pour l'info.
Nicolas
--------


"MichDenis" wrote:

Tu peux utiliser une feuille de calcul, tu pourras y entrer tout le texte que tu désires
à raison de 32768 caractères par cellules.

Et en vba, tu masques cette feuille en utilisant :
Worksheets("MaFeuille").Visible = xlSheetVeryHidden

Il n'y a aucun moyen pour l'usager d'afficher une feuille
masquée de cette manière.


"Rabaté" a écrit dans le message de groupe de discussion
:
Comme indiqué dans le précédent échange, cette solution n'est pas acceptable
à cause de la limitation à 255 caractères.
Nicolas
--------


"MichDenis" wrote:

> Bonjour Rabaté,
>
> Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
> Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
> La limite de 255 caractères existe aussi !
>
> Application.Names.Add "toto", "MaValeur", False
>
>
>
> "Rabaté" a écrit dans le message de groupe de
> discussion
> :
> Bonjour à tous,
>
> Est-il possible de définir programmatiquement des variables stockées dans le
> fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
> (comme cela est possible avec Word avec l'objet Variables)
>
> Merci
> Nicolas
> --------
>
> --
> Nicolas
> --------
>
>



Avatar
anonymousA
Certes, mais il est souhaitable de connaitre les limitations d'une telle
pratique, à savoir:

-si le classeur Excel n'est pas protégé, le code suivant fera apparaitre
toutes les feuilles même si le code est protégé par mot de passe, et ce
avec le risque de voir l'utilisateur altérer les données.
For Each sh In Workbooks("toto.xls").Sheets
sh.Visible = True
Next

-si le classeur est protégé alors, il ne sera pas possible d'appliquer
le code précédent sans déprotéger le classeur mais il est extrêmement
simple de déprotéger un classeur - en dehors de la protection
d'ouverture bien sur -.

Il est toujours possible de stocker dynamiquement des variables dans le
code lui-même y. c dans du code protégé mais au prix il est vrai de
manipulations un peu complexes . Ceci dit, Mich Denis sachant tout faire
, il sait aussi faire celà donc je le laisse répondre.

MichDenis a écrit :
Tu peux utiliser une feuille de calcul, tu pourras y entrer tout le texte que tu désires
à raison de 32768 caractères par cellules.

Et en vba, tu masques cette feuille en utilisant :
Worksheets("MaFeuille").Visible = xlSheetVeryHidden

Il n'y a aucun moyen pour l'usager d'afficher une feuille
masquée de cette manière.


"Rabaté" a écrit dans le message de groupe de discussion
:
Comme indiqué dans le précédent échange, cette solution n'est pas acceptable
à cause de la limitation à 255 caractères.
Nicolas
--------


"MichDenis" wrote:

Bonjour Rabaté,

Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
La limite de 255 caractères existe aussi !

Application.Names.Add "toto", "MaValeur", False



"Rabaté" a écrit dans le message de groupe de
discussion
:
Bonjour à tous,

Est-il possible de définir programmatiquement des variables stockées dans le
fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
(comme cela est possible avec Word avec l'objet Variables)

Merci
Nicolas
--------

--
Nicolas
--------






Avatar
Rabaté
Il est clair qu'il est tout à fait regrettable que le même objet variable
n'existe ni dans Excel, ni dans PPT. Le commentaire de anonymousA est bien
sûr tout à fait pertinent. Il semble qu'il n'y ait aucune solution sérieuse
en tous les cas pour Xl version 2003 et avant. En revanche, il me semble que
l'utilisation de l'objet CustomXMLPart serait la voie la plus cohérente avec
cependant le problème de la rétro compatibilité.

Je ne vois pas comment stocker des valeurs dynamiques dans du code, à partir
du moment où l'on souhaite que ce stockage fasse partie du document en
question.
--
Nicolas
--------


"anonymousA" wrote:

Certes, mais il est souhaitable de connaitre les limitations d'une telle
pratique, à savoir:

-si le classeur Excel n'est pas protégé, le code suivant fera apparaitre
toutes les feuilles même si le code est protégé par mot de passe, et ce
avec le risque de voir l'utilisateur altérer les données.
For Each sh In Workbooks("toto.xls").Sheets
sh.Visible = True
Next

-si le classeur est protégé alors, il ne sera pas possible d'appliquer
le code précédent sans déprotéger le classeur mais il est extrêmement
simple de déprotéger un classeur - en dehors de la protection
d'ouverture bien sur -.

Il est toujours possible de stocker dynamiquement des variables dans le
code lui-même y. c dans du code protégé mais au prix il est vrai de
manipulations un peu complexes . Ceci dit, Mich Denis sachant tout faire
, il sait aussi faire celà donc je le laisse répondre.

MichDenis a écrit :
> Tu peux utiliser une feuille de calcul, tu pourras y entrer tout le texte que tu désires
> à raison de 32768 caractères par cellules.
>
> Et en vba, tu masques cette feuille en utilisant :
> Worksheets("MaFeuille").Visible = xlSheetVeryHidden
>
> Il n'y a aucun moyen pour l'usager d'afficher une feuille
> masquée de cette manière.
>
>
> "Rabaté" a écrit dans le message de groupe de discussion
> :
> Comme indiqué dans le précédent échange, cette solution n'est pas acceptable
> à cause de la limitation à 255 caractères.
> Nicolas
> --------
>
>
> "MichDenis" wrote:
>
>> Bonjour Rabaté,
>>
>> Tu peux toujours créer un "NOM" et passer le paramètre "Visible" à False
>> Ce nom n'apparaîtra pas dans la liste des noms via l'interface de la feuille de calcul
>> La limite de 255 caractères existe aussi !
>>
>> Application.Names.Add "toto", "MaValeur", False
>>
>>
>>
>> "Rabaté" a écrit dans le message de groupe de
>> discussion
>> :
>> Bonjour à tous,
>>
>> Est-il possible de définir programmatiquement des variables stockées dans le
>> fichier Excel mais qui sont invisibles et inaccessibles pour l'utilisateur
>> (comme cela est possible avec Word avec l'objet Variables)
>>
>> Merci
>> Nicolas
>> --------
>>
>> --
>> Nicolas
>> --------
>>
>>



Avatar
Caetera
"Rabaté" a écrit dans le message de news:


Je ne vois pas comment stocker des valeurs dynamiques dans du code, à partir
du moment où l'on souhaite que ce stockage fasse partie du document en
question.



En lisant les réponses précédentes....

Etc
Avatar
LSteph
Bonjour,


C'est surtout de supposer qu'il puisse exister une solution
incontournable qui ne serait pas sérieux!
Les solutions proposées et leurs limites évoquées sont AMHA tout à
fait pertinentes!

Cordialement.

--
lSteph

Cordialement.
On 12 août, 09:07, Rabaté wrote:
Il est clair ......qu'il n'y ait aucune solution sérieuse