dans mes macro, je declare des variables d'un meme type selon cette forme :
Code:
Dim i, k, l, t, tana, retsu, iro, bangou, shouhin, insatsu, insatsuh, insatsum, crit, critnb As Long
C'est une syntaxe qui se trouve souvent sur le net.
Recemment, je suis tombe sur cette page ou il est dit que cette syntaxe est erronee et que seule la derniere variable est declaree correctement (paragraphe Remarques).
Vu qu'on trouve tout et rien sur le net, pourriez-vous me confirmer ou non cette information ?
Re : Declaration de plusieurs variables d'un meme type en VBA
Bonjour g.milano, Jean-Marcel
oui je confirme, pour t'en convaincre dans l'éditeur vba, barre de menu => affichage => Fenêtre variables locales, tu positionnes ta série de variables dans une "sub", et F8, tu vois dans la fenêtre en face de chaque variable son type...
Re : Declaration de plusieurs variables d'un meme type en VBA
Bonjour à tous
En reprenant le code de JM, tu peux tester ceci:
Code:
'Option Explicit
Sub toto()
Dim AA As Variant, BB As Long
AA = "AE123"
BB = "12,25"
CC = 12.25
MsgBox TypeName(AA)
MsgBox TypeName(BB)
MsgBox TypeName(CC)
MsgBox AA
MsgBox BB * 5
MsgBox CC * 5
End Sub
Sachant que si tu ne mets pas option explicit, tous ce qui n'est pas déclaré sera de type variant.
Re : [Resolu] Declaration de plusieurs variables d'un meme type en VBA
Salut à tous,
Une petite précision pour "faciliter" la déclaration de variables. Il y a 2 façons de déclarer des variables soit sous la forme maVariable As Type soit sous sa forme simplifiée comme maVariable+caractère déclarant.
En clair:
déclarer maString As String est équivalent à maString$
Les différents caractères à utiliser sont:
$ pour String
% pour Integer
# pour Double
! pour Single
& pour Long
@ pour Currency
rien pour Variant
Les types Date, Boolean ou Byte doivent être explicitement déclarés.
Re : [Resolu] Declaration de plusieurs variables d'un meme type en VBA
Re à tous
Testez aussi ceci, c'est surprenant (enfin pour moi ).
Code:
'Option Explicit
Sub toto2()
'Dim AA As String , BB As Double, cc As Double
AA = "AE123"
BB = "12,25"
cc = 12.25
MsgBox TypeName(AA)
MsgBox TypeName(BB)
MsgBox TypeName(cc)
MsgBox AA
MsgBox BB * 5
MsgBox cc * 5
End Sub
Re : [Resolu] Declaration de plusieurs variables d'un meme type en VBA
Re,
regarde ceci :
Code:
Option Explicit
Sub test()
Dim b
'dans la fenêtre de variables locales variant/Empty
b = "12.25"
MsgBox TypeName(b)
'dans la fenêtre de variables locales variant/string
b = 12.25
MsgBox TypeName(b)
'dans la fenêtre de variables locales variant/double
End Sub
pour une variable de type "variant", à priori c'est le "sous-type" de la variable qui évolue suite aux diverses initialisations faites durant l'éxécution du code... voir ce qui se passe dans la fenêtre de variables locales...
Re : [Resolu] Declaration de plusieurs variables d'un meme type en VBA
Re,
MJ, concernant l'interprétation de AA de Variant en String, ceci est tout à fait normal. Car le "moteur" de VB(A) lorsqu'il rencontre une variable de type Variant cherche à la convertir dans le type le plus juste avant d'opérer une opération sur cette variable. Il est donc normal de voir la variable AA apparaître comme une String. Par ailleurs, c'est pour cette raison qu'il est déconseillé d'utiliser des variant. Cela "ralenti" le code puisque le moteur doit perdre du temps à analyser le variant.
Pour la variable BB, pour mémoire une string contient des caratères Alpha-Numéric. il est donc possible d'effectuer une opération avec des string.
Re : [Resolu] Declaration de plusieurs variables d'un meme type en VBA
Re
Merci JM, Pierrot et Jam pour ces précisions intéressantes mais si j'écris par rapport à l'aide:
String, type de données
Type de données composé d'une séquence de caractères contigus interprétésen tant que caractères et non en tant que valeurs numériques. Une donnée de type String peut inclure lettres, nombres, espaces et signes de ponctuation. Le type de données String peut stocker des chaînes de longueur fixe dont la longueur est comprise entre 0 et environ 63 Ko de caractères et des chaînes dynamiques dont la longueur est comprise entre 0 et environ 2 milliards de caractères. Dans Visual Basic, le signe dollar ($) est le caractère de déclaration du type String.
Option Explicit
Sub toto3()
Dim AA As String, BB As String, cc As String
AA = "AE123"
BB = "12,25"
cc = 12.25
MsgBox TypeName(AA)
MsgBox TypeName(BB)
MsgBox TypeName(cc)
MsgBox AA
MsgBox BB * 5
MsgBox cc * 5
End Sub
D'ou l'expression: "Avec Excel, je sais que je ne sais rien" Confucius peut-être (après la virgule, pas la peine de cliquer, j'ai pas mis de lien hypertexte) .