Variables invisibles

Le
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
--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Caetera
Le #19912771
> 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
Rabaté
Le #19913441
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





MichDenis
Le #19913731
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é" :
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
--------
Rabaté
Le #19913721
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é" :
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
--------




MichDenis
Le #19913871
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é" :
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é" 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
--------




Rabaté
Le #19913911
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é" :
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é" > 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
> --------
>
>



anonymousA
Le #19916061
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é" :
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é" 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
--------






Rabaté
Le #19916881
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é" > :
> 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é" >> 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
>> --------
>>
>>



Caetera
Le #19916981
"Rabaté"

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
LSteph
Le #19917201
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é
Il est clair ......qu'il n'y ait aucune solution sérieuse


Publicité
Poster une réponse
Anonyme