Sauvegarde des valeurs d'une variable

adebrux

XLDnaute Occasionnel
Salut le forum,

comment c'est-y que ca va bien en ce lundi si froid ??? lol

J'ai une petite question pour vous.

Savez vous si une macro conserve la valeur de ses variables, même après fermeture ??

Je m'explique, lors de l'exécution de mon application, certaine valeures, comme le nombre de pièces, de process etc s'incrémente.
Je voudrais que à la deuxième exécution, ces mêmes variables aient gardées la valeur qui leur était attibuée avant que la macro ne soit déactivée/terminée

Y'a-t-il une solution plus simple que l'écriture des valeurs dans une autre feuille? (compte tenu du fait qu'un certain nombres de variables sont interdépendantes et susceptible de ramplir des tableaux en 3D, c pas gagné...)

Merci de votre aide

Arnaud
 

Abel

XLDnaute Accro
Bonjour adebrux,

Une variable déclarée en 'Public' va conserver ses valeurs d'un module à l'autre (sauf instruction contraire).

Mais à la fin de l'exécution ou après enregistrement ou fermeture du fichier, tout est réinitialisé.

Dans ton cas, je créerais un onglet dédié à 'la dernière position' connue des variables qui t'intéressent. Celles ci peuvent alors facilement être réinitialisées à l'ouverture du fichier.
L'avantage d'une feuille dédiée est qu'on ne se pose pas de question pour savoir où sont les informations, qu'est-ce qu'il se passe si on ajoute des lignes, etc.
Cette feuille peut être masquée.


Abel.
 

Hellboy

XLDnaute Accro
Bonjour adebrux

Oui ça se fait avec des variables dites Globales. C-à-d que les variables conserve leur valeur en mémoire en permanace tant que le fichier n'est pas fermé. Il y a une petite nuance dans ces variables tout comme celles des procédures(macro) C'est variables peuveut être déclaré privé(Private) ou publique(Public). La différence entre les deux, c'est que dans le cas de Privé, la variable ne peut être accédé que par les procédure du même module ou elle est située. cette limitation n'est pas applicable pour la variable dite Public.

Exemple:

Private intVarPri    As Integer
Public intVarPub    As Integer

Private Sub Test(intVarPri As Integer)

End Sub


Bon courage !

Bon pas assez vite ce matin !

Message édité par: Hellboy, à: 14/11/2005 16:25
 

adebrux

XLDnaute Occasionnel
Merci philippe pour la précision.

Une petite question tt de même. Je connaissais la différencenetre Private et Public, par contre pr des variables globales, je les déclares comment?
global mavar as variant ???

ou alors peut-être que g pas été suffisament explicite...
Mes variable sont effectivement globale puisqu'elle sont en tête de ma feuille.
Le truc c que à chaque fois que g fini une pièce ma feuille(USF, pas excel) se ferme. Et puis g pas forcément besoin d'en créer une 2eme tt de suite après.
Du coup, ce que je voudrais, c pouvoir garder les variables de mon USF même après que celle ci ait été fermée...

Merci encore une fois
Arnaud

Message édité par: adebrux, à: 14/11/2005 16:39
 

adebrux

XLDnaute Occasionnel
Arghh...
51Ko, et je peux plus rien supprimer....
C pas grave, je tente l'envoi malgré tout, mais garanti pas le succès.
Sinon peut être en MP...

Ca passe pas, je te l'envoi en MP, si je trouve comment on fait !!!

Message édité par: adebrux, à: 14/11/2005 16:56
 

Hellboy

XLDnaute Accro
re adebrux

Ouf, y a quelques anomalies que j'ai retenu dans ton application.

Entre autre ReDim Preserve finalprice(i, 1)
Preserve Facultatif. Mot clé utilisé pour conserver les données d'un tableau préexistant dont vous modifiez la taille de la dernière dimension.

Ensuite, les varibles tableau ne peuvent être global dans un module objet. Elles doivent être misent dans un module de classe régulier.

Finalement, ça semble destiné a être assez gros ton affaire. Je dois dire que je suis un perdu dans ce grand projet.

Il y a peut être d'autre approche pour accomplir ce que tu veux faire, mais il faudrait mieux comprendre ce que ton application veux faire avec des exemples précis.

Bon courage !
 

adebrux

XLDnaute Occasionnel
effectivement c le départ d'un gros projet de recomposition des coût de prod d'une pièce ou d'un assemblage.
Le but est de générer une trame de base pr cette recomposition en fonction de qq options choisies lors de l'exécution de l'USF.
il fo que en plus se soit souple et simple d'utilisation, puisque je veux pouvoir faire des simulation 'à la volée' et comparer les résultats ensuite.

Il faut que se soit simple, mais y'a tellement de paremètres à prendre en compte...

Pour l'utilisation, pour faire simple, àprès avoir choisi 'single part', la 2 ème page te demande l'index de la pièce, en fait je devrait dire l'index ou le numéro de simulation. (dans l'absolu Il faudrait que se soit soit à la place d'une simulation existance soit à la suite de ce qui existe déjà), un nom de pièce et le nombre de process intervenant ds la fabrication du machin !!!
En 3 ème page, tu détermines le(s) process de fabrication, et caa te génère ta feuille.

Ensuite, ce sont des paramètres de prod ou de localisation qui sont à remplir/choisir dans la feuille excel, telle que le secteur géographique, la tranche de prix, taille des série, poid, matière, type de machines etc... de la production en fait...
Au final t'arrive au prix simulé de ta pièce.

Maintenant, g besoin de mes variables car je vais rajouter un module d'assemblage des pièces déjà créées par ma simulation.
Par exemple, assempbler les pièces 1, 3 et 4 ou n'importe quelle combinaison.

J'était aussi en train de créer une fonction de remise à zéro, notament de ttes les listes que je créer, et j'ai donc besoin d'un certian nb de renseignement contenus dans mes différent tableaux...

Voilà le but du programme.

En espérant avoir été clair. :whistle:

Mais bon, il est sur que ce n'est que la première phase du projet, avec de l'écriture de code sans aucune optimisation (je suis pas informaticien au départ...:-( !!!) Et que du coup, je m'achemine vers un bon morceau de post production !

A bientôt

Arnaud
 

Jam

XLDnaute Accro
Salut Adebrux, Hellboy,

Je reprend d'assez loin, mais sache - dans le cas que tu exposes - qu'une variable ne reste pas en mémoire sauf dans 2 seule cas:
Si elle est écrite en dur dans un un fichier (registry, ini, txt...)
Si tu utilises les noms cachés...Ceux là, même quand Excel est fermé ils restent là ! Si, si...Si tu veux en savoir plus rend toi à cette adresse Ce lien n'existe plus. Ce site rend humble !

Bref, tu n'as pas cinquante solutions.
Heu, sinon, si je puis me permettre de te demander une chtite copie de ton projet, histoire de me donner quelques idées quand à la mise en place de coûts de production sur des chaînes de fabrication de livre...ben ça pourrait éventuellement m'être très utile ;)

A+
 

adebrux

XLDnaute Occasionnel
Salut Jam,

Je peux te faire passer une version de mon projet, mais se sera avec des bases de données vides. En effet, les données de prix et de coût st des données récupérées en cours de missions depuis plusieurs année que nous utilisons dans des bases Knowledge ou benchmark. Je ne peux dc pas te les communiquer. Par contre je peux très bien te donner l'armature du projet!

Attention cependant, c'est tjs en cours de développement, seuls certains process sont opérationels etc. Mais c'est très facilement adaptable à chaque problématique.

Tiens moi au courant.

A+
Arnaud
 

Jam

XLDnaute Accro
Salut Adebrux,

Ce sera avec plaisir que je lirai ton code...Pour les données, il est bien évidement compréhensible que tu ne les transmette pas et je m'en passerai :)
Mon adresse mèl: ntwibeo AT hotmail.com (version anti spam ;))

Merci d'avance
Bonne journée
 

Statistiques des forums

Discussions
312 211
Messages
2 086 289
Membres
103 170
dernier inscrit
HASSEN@45