Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
867 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Durée de vie d'une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Durée de vie d'une variable

n°1702256
Henri Demo​lins
Posté le 14-03-2008 à 11:14:57  profilanswer
 

Bonjour à tous,
 
Je me pose quelques question sur la durée de vie des variable en VBA, j'utilise excel 97 sous XP.
 
Il m'avait semblé comprendre que les variables déclarées en tant que static étaient conservées entre deux appels à la procédure. Cependant, j'ai l'impression que lorsque je ferme excel, la valeur des variables est perdues.
 
En effet, dans mon cas, j'ai besoin de retrouver d'une exécution à l'autre le chemin d'un fichier.
 
D'ailleurs c'est un fichier qui se trouve sur le réseau, et j'ai pas mal galéré pour obtenir les lettres des lecteurs réseaux que je voulais.
Conaissez-vous un moyens facile de récupérer uniquement le chemin d'un fichier où la lettre de lecteur lorsque l'on a une chaîne de caractère représentant l'adresse d'un fichier(ex: "c:\repertoire\temp\mon fichier.xls" ).  j'aimerai pouvoir  récupérer "repértoire\temp\" pour pouvoir faire un chdir et "c:\" pour pouvoir faire un chdrive.
 
Ca fait un peu beaucoup de questions, mais ça fait quelque temps que je galère et que je n'arrive pas trop à me dépatouiller de tout ça :heink: , alors merci bien de votre aide quelque qu'elle soit. :jap:


Message édité par Henri Demolins le 14-03-2008 à 11:18:03
mood
Publicité
Posté le 14-03-2008 à 11:14:57  profilanswer
 

n°1702262
MagicBuzz
Posté le 14-03-2008 à 11:17:51  profilanswer
 

y'a une certainement différence entre "deux appels consécutifs" et "deux lancement d'excel consécutifs"...
 
si tu veux conserver des données d'un lancement d'excel à un autre, bah tu travailles avec des données stockées par exemple dans ta feuille excel (c'est là pour ça à la base :o)
 
comment veut tu qu'excel se souvienne de ce qu'il a mis dans une variable si tu le fermes entre temps ? heureusement qu'il oublie, parce si les programmes devaient travailler comme ça, faudrait autant de place en mémoire que sur ton disque dur :o

n°1702270
Henri Demo​lins
Posté le 14-03-2008 à 11:23:01  profilanswer
 

arf c'est bien ce que j'ai fini par comprendre.
En fait ce n'est pas pratique d'enregistrer dans une feuille excel, car ce sont des informations que je voudrai garder transparente vis-à-vis de l'utilisateur et je dois pouvoir y avoir accès même lorsqu'aucune feuille excel n'est ouverte.
 
De plus lorsque l'on déclare une variable static, excel aurait très bien pu réserver quelques octets dans le module VBA afin de conserver la valeur entre différentes utilisations d'excel. Et ça n'aurait pas demander une quantité gigantesque de mémoire.
 
Merci pour ta réponse, et si tu as quelques éléments de réponse pour les autre questions, merci d'avance.

n°1702271
ccp6128
Syntax error
Posté le 14-03-2008 à 11:23:06  profilanswer
 

Portée des variables : http://mhubiche.developpez.com/Access/variables/
 
Les static sont bien conservées entre deux appels d'une procédure, mais elles disparaissent bien évidemment lorsque tu fermes ta feuille. Si tu veux conserver leur contenu ad vitam eternam, faut sauvegarder cette valeur quelque part sur le disque.
 
Pour ta deuxième question, utilise les fonctions de traitement de chaînes de caractères. Le lecteur est représenté par l'ensemble des caractères jusqu'au premier "\" compris. Le chemin, c'est ta chaîne jusqu'au dernier "\" compris.
 
Edit - damn proxy, j'ai du retard sur les messages affichés :/


Message édité par ccp6128 le 14-03-2008 à 11:23:51
n°1702276
Henri Demo​lins
Posté le 14-03-2008 à 11:26:49  profilanswer
 

merci bien c'est ce que j'ai fini par faire, mais je me demandais s'il n'y avait pas des fonctions VBA pour celà, j'aivais cru les croiser une fois dans l'aide.

n°1702282
ccp6128
Syntax error
Posté le 14-03-2008 à 11:30:03  profilanswer
 

Tu peux aussi utiliser les fonctions FSO oui : http://warin.developpez.com/access/fichiers/#LI-E
 
Par exemple pour le disque tu as GetDriveName.
 
Par contre pour le chemin sans le disque y'a pas de fonctions par défaut.

n°1702310
Henri Demo​lins
Posté le 14-03-2008 à 11:47:24  profilanswer
 

Arf oui ça j'avais vu, mais je ne suis pas vraiment à l'aise avec les objet, surtout que l'aide en ligne n'est pas vachement clair sur ce point là. J'ai donc préféré ne pas l'utilisé. D'ailleur le bout de code pour trouver la lettre du lecteur réseau qui m'intéresse, c'est un bout de code que j'ai trouvé sur le net et que j'ai adapté à mon besoin.

n°1704053
Henri Demo​lins
Posté le 18-03-2008 à 13:58:15  profilanswer
 

Finalement, j'ai utilisé GetSetting et SaveSetting qui permettent d'enregistrer des clefs dans la base de registre. C'est simple et efficace.
 
Merci encore à tous pour les renseignements

n°1704152
kiki29
Posté le 18-03-2008 à 16:25:17  profilanswer
 

Jour Bon, sous forme de fichier Ini, à adapter
http://cjoint.com/?dsqykfZaah

n°1704407
Henri Demo​lins
Posté le 19-03-2008 à 10:02:34  profilanswer
 

Merci, je vais voir.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Durée de vie d'une variable

 

Sujets relatifs
AS3 : Transmettre une variable entre SWFComment afficher le code binaire du contenu d'une variable quelconque
[C pour PIC] Variable en I2Cprobléme pasage texte dans une variable
[Résolu] Problème de variable qui veut pas sortir d'une fonction.partager de variable entre plusieurs threads
Passer une variable C en Shell avec un system()Quel est la durée de vie d'une variable session
Variable positionnee pendant une courte duree?c'est combien la durée de vie d'une variable PHP ? Aidez moi SVP !
Plus de sujets relatifs à : Durée de vie d'une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR