Creer une serie de constantes a partir d'une liste [Résolu]

Signaler
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
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

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
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

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 ?
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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