Affectation et initialisation sur la meme ligne en VBA [Résolu]

Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Dernière intervention
9 mars 2010
- - Dernière réponse : bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 26 févr. 2010 à 16:39
bonjour,

Pourquoi est-ce que j'obtiens une erreur sur le "=" avec message "Erreur de compilation: Fin de ligne attendue" lorsque j'écris ceci en VBA dans Excel 2003:

dim test as integer = 1


Je souhaite initialiser la variable en meme temps que la créer, car je trouve cela plus propre et ca prend moins de ligne que

dim test as integer
test = 1


Merci bonne journée!

Rémi
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
Et si tu tiens vraiment (on se demande bien pourquoi) à tout mettre sur une seule ligne, voimà :
dim test as integer : test = 1

Et on n'en parle plus !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Parce-que VBA est VBA et que sa syntaxe est celle de VBA ===>> tu "types"' d'une part, tu définis de l'autre.
Et tu ne gagnerais rien (après compilation) s'il en était autrement (sur une seule ligne)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Dernière intervention
9 mars 2010
0
Merci
Je comprends que cela n'est pas plus rapide à l'exécution, mais je trouve que visuellement quand tu regardes le code, voir un paquet de DIM suivi par un paquet d'affectations, ca fait pas très beau...

mais bon, s'il n'existe pas d'autre moyen en VBA, je vais tout faire sur 2 lignes...

Merci!!

Rémi
Commenter la réponse de RoGx
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Ah ...
Mais en contre-partie, toute autre syntaxe te conduirait à d'autres lignes !
Ex :
Sous VBA (ou VB6, d'ailleurs) :
Dim toto as integer, titi as string, tata as double
toto 12 : titi "bonjour" : tata = 1.425
et que voudrais-tyèu trouver de mieux dans :
dim toto as integer = 12
Dim titi as string = "bonjour"
Dim tata as double = 1.425
?
C'est pinailler pour pinailler !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Dernière intervention
9 mars 2010
0
Merci
Personnellement, je trouve ca beaucoup mieux visuellement et ca permet déviter d'oublier d'initialiser des variables...

question de gout j'imagine!

merci de tes explications et bonne journée!

Rémi
Commenter la réponse de RoGx
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
0
Merci
Salut,

j'ajouterais qu'il existe une méthode proche de ce que tu souhaites et qui s'applique aux constantes mais comme leur nom l'indique ce sont des constantes, pas des variables. Donc a ne surtout pas confondre.

Const azerty As String = "FrKeyBoard"


A+
Commenter la réponse de bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
0
Merci
Ah, j'oubliais,

pour éviter d'oublier de dimensionner les variables il suffit d'ajouter :

Option Explicit


en premiere ligne de tes modules. En cas d'oublie un gentil message d'erreur te sera renvoyé à la compilation

A+
Commenter la réponse de bigfish_le vrai

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.