Creer une serie de constantes a partir d'une liste

Résolu
Fanfan20167 - 16 nov. 2012 à 14:20
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 17 nov. 2012 à 01:38
Bonjour
Ca a l'air de charabia, mais en clair peut-on éviter ceci:
Const NumVide As Byte 1, NumErreur As Byte 2, NumMasqué As Byte = 3, NumPosteInt As Byte = 4, NumFixe As Byte = 5
et cela:
Private Enum ix
NumVide = 1
NumErreur = 2
NumMasqué = 3
NumPosteInt = 4
NumFixe = 5
End Enum
pour avoir des constantes dont la valeur est incrémentée de 1 par rapport à la précédente, et dont la liste est dans une variable chaine :
liste_var="NumVide,NumErreur,NumMasqué,NumPosteInt,NumFixe"
étant bien entendu que le nombre de constantes n'est pas limité à 5 mais plutôt 30, et que leur nom n'est pas une suite logique (var1,var2,var3,...); donc très fastidieux de déclarer toutes ces constantes à la main !
Surtout si l'on veut en insérer de nouvelles par la suite !
Je sais ce n'est pas facile !
J'espère que quelqu'un aura une réponse !
Cdlt

4 réponses

Utilisateur anonyme
16 nov. 2012 à 19:19
Il n'y a pas de tableaux de constantes en VB6/VBA.
Mais en quoi cela te gène t-il d'avoir pleins de constantes de déclarer ? Il n'y a rien de grave à avoir des centaines de constantes de déclarées.
Utilise le énumérations pour les regrouper (ton cas ici)

Cependant, fait attention de voir si tu utilise bien les bonnes méthodes pour ton code. As-tu regardé les structures ? Cela t'éviterai de faire des tableaux multidimensionnels (et donc de déclarer pleins de constantes)

_____________
Kenji
3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
16 nov. 2012 à 16:56
Bonjour
Pour ne pas avoir à déclarer des constantes : n'en utilise pas? exemple

Dim listvar as String, tabvar() as string
liste_var="NumVide,NumErreur,NumMasqué,NumPosteInt,NumFixe,"
tabvar() =Split(liste_var,",")
Select case toto
case "Numvide":
....
End Select
0
Fanfan20167
16 nov. 2012 à 17:48
Merci de ta réponse mais elle ne peut convenir du fait que les constantes sont utilisées par la suite comme index dans un tableau à 2 dim.
ex: Inc T(NumMobile,Jour)
Une autre solution ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 nov. 2012 à 01:38
Bonjour,

Dans ce cas, ce ne sont pas des constantes, mais des variables.
Une variable peut aussi être le paramétrage d'un calcul.

Une constante est comme son nom l'indique constante, donc non modifiable à l'execution.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
Rejoignez-nous