Organisation de plusieurs macros - Ressources

ZZR09

XLDnaute Occasionnel
Bonjour à tous,

Je viens de lire quelques fils concernant la mémoire et la lourdeur d'un programme mais, n'ai pas trouvé de réponse à un très gros problème :

Depuis quelques mois que je pose de petites questions et récupère pleins de précieux renseignements sur XLD, j'ai enfin réusii à produire quelque chose : Quelques USF pour aider des utilisateurs à créer une liste dans un nouveau fichier à partir d'une autre liste pré-existante et selon des critères assez simples mais variables.

Sommes-toutes cela me paraît assez simple en fait ... sauf qu'il faut gérer les retours arrière, annulations et autres pensées artistiques des différents utilisateurs!

Alors voilà:
Je me retrouve avec trois USF contenant chacune 7 ou 8 listebox et combobox, 4 ou 5 USF pour rectifier le tir et gérer les erreurs (exemple nom de la nouvelle feuille >31 caractères).
D'autre part j'ai une vingtaine de variables Public et ainsi de suite.
Ce n'est pas que le code soit très évolué et compliqué mais j'ai bien peur de ne pas avoir fait suffisament d'économies de mémoire ou de ressources système.

Les questions sont donc les suivantes :
Sachant que mes USF ne comportent pas de couleurs et mises en forme complexes, est-il mieux d'avoir une seule USF (telle que CalculCollector) par Thierry Lien supprimé qui gère presque tout ou plusieurs USF liées par des variables?

D'autre part, est il mieux de déclarer une variable Public ou de faire un ligne d'instruction pour aller chercher une donnée dans une autre textbox

Code:
Option Explicit
Public Var as string

'Dans USF1
var = TextBox1.value
USF1.Hide

...

USF2.show
USF2.TextBox1 = var

...
If var = 'Non' then ...

Ou
Code:
USF2.textBox1.value = USF1.TextBox1.value
...
If USF2.textBox1.value = 'Non' then ...

C'est un exemple, il n'y a rien de précis là-dedans.

Si quelqu'un a une idée, je suis preneur !!! :woohoo:

Ah si une derbière chose : comment vous faites pour saisir au clavier un retour à la ligne dans une ligne de code _ .
de le saisir avec _ et entrée ne sembe pas être la solution? :unsure:

A+
;)
 

deudecos

XLDnaute Impliqué
Bonjour ZZR09, le forum,

pour ce qui est de ta derniere question, tu peux couper ta ligne de code ou tu veux acondition d'y inclure un '_', mais il te faut imperativement un espace entre ta derniere lettre et le signe '_' sinon, vbe veut rien savoir. :)

Pour le peut que j'en sais, il semblerait que ce qui prend du temps, ca n'est pas l'USF ou les USF, mais belle et bien le travail qu'ils (ou elles) sont censes faire... Par contre, plus l'usf est important, plus il est long a se charger... Donc, perso, j'ai opte pour plusieurs usf et j'avoue ne pas perdre trop de temps. Mais il faut savoir aussi, que j'ai distribue tout ca dans plusieurs classeurs... Autrement dit, j'ai cloisonne... En gros, un dossier, plusieurs classeurs et pour le moment, ca marche plutot pas mal... Je le tiens a disposition pour ceux ou celles que ca interesse. ;)

Voila concernant ce que je sais, pour le reste, une bonne ame peut etre ? ;)

Bonne soiree

Olivier
 

ZZR09

XLDnaute Occasionnel
Salut Deudecos, le forum,

Merci pour tes réponses, la première partie m'intérresse tout autant que la seconde. En effet, même si ce n'est pas aussi important pour les macros, c'est un confort pour l'écriture et la péponse à une question que je me posais depuis longtemps déjà mais, par peur du ridicule certainement, n'avais encore jamais osé poser! :whistle:

Pour ce qui est de la mémoire, j'ai retrouvé dans un bouquin un tableau avec la mémoire occupée par chacune des variables. C'est de l'ordre de 1 à 8 octets sauf qq unes un peu plus gourmand.

Je n'ai par contre rien trouvé pour le 'coût' d'une déclaration public, private.

Il me semble quand-même préférable d'avoir le moins possible de variables en mémoire (qui tournent en même temps), donc de déclarer le plus possible par 'private' ou 'dim'.

Si tu charges/ouvres plusieurs classeurs en même temps, cela doit mobiliser pas mal de ressources. Pour ma part, j'ai opté pour la même organistion même si je ferme le classeur dès que je n'en ai plus besoin ;)

Dernière chose, j'ai aussi appris dans ce bouquin qu'il faut dès que possible 'décharger' un objet :

dim dataImport as collection

set dataImport = New Collection
...
set dataImport = Nothing

Ben voilà quelques brides de réponse à ma propre question;
je suis toujours ouvert à quelques remarques ou définitions supplémentaires. ;)


Merci encore Deudecos pour ta réponse
A+
 

Discussions similaires