Plusieurs variables - Comment les définir ?

  • Initiateur de la discussion Jean P.
  • Date de début
J

Jean P.

Guest
Bonjour au forum

J'ai une petite questions pour vous tous.

J'ai grâce à l'aide des gens du forum développer une application qui comporte 6 classeurs et une multitudes de macro ainsi qu'environ une 30 de variables que j'utilise dans différentes procédures et modules.

Donc ma question est comment dois-je déclarer toutes ces variables afin d'être le plus efficace et d'optimiser tout le fonctionnement de mon application.

Pour l'instant je déclare les variables au début de chacune de mes procédures avec l'instruction Dim et ensuite j'utilise l'instruction SET pour la "définir".

Merci d'avance pour vos suggestions et commentaires.

Bonne journée


Jean P.
 
R

Robert

Guest
Salut Jean P., salut le forum.

Je pense que pour éviter tout problème tu dois, dans la première ligne d’un module (pas d’une Feuille ou d’un UserForm), écrire “Option Explicit”. Cette ligne t’obligera á déclarer toutes tes variables et t’interdira les confusions.

Les variables déclarées Dim dans une procédure perdent leur portée à la fin de cette procédure. Cela veut dire que si dans plusieurs procédures différentes tu as une boucle à faire tu peux déclarer [Dim i as Byte] et utiliser [For i = 1 To …] sans qu’il n’y ait de problème tant que i se trouve dans des procédures différentes et qu’aucune d’elle fait appel à l’autre. Tu ne seras pas obligé de changé de nom de variable.

Les variable déclarées Private au niveau Module (avant toute procédure) ont une portée dans tout le module, donc dans toutes les procédures de ce module. Si, par exemple, tu as 3 procédures dans le Module 1 et tu déclares [Private i as byte]
Si dans chaque procédure tu as une boucle à faire, tu n’auras pas besoin de déclarer dans chacune d’entre elles [Dim i as Byte] puisque tu l’as déclaré au début. Tu pourras utiliser directement [For i = 1 To …]

Les variable déclarée Public au niveau Module (avant toute procédure) ont une portée dans tout le projet VBA. Tu pourras les utiliser n’importe où dans ton projet (pense quand même à les définir…). Par exemple [Public Const f As String = "ma_feuille_a_un_nom_trop_long"] te permettra de sélectionner cette feuille par [Sheets(f).Select] n’importe où dans ton projet.

Lis dans l’aide VBA la rubrique [Portée et visibilité]…

À plus,

Robert
 

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005