Variables

Bonjour

j'ai crée le bout de code suivant :

Dim v1, v2, v3 As Integer

t = Array(v1, v2, v3)
 For t(k) = 0 To UBound(t) - 1
  MsgBox t(k)
 Next

end sub

la variable posée sous la forme t(k) ne semble pas comprise par vba , comment y remedier ?

Merci


mon code etait incomplet , désolé

Dim v1, v2, v3 As variant

t = Array(v1, v2, v3)
 tabl = Array("a", "b", "c", "d")
limite = 2
While k <= UBound(t) - 1

  For t(k) = 0 To limite
    MsgBox tabl(t(k))
  Next

  k = k + 1
Wend

Bonjour,

Dans une boucle For-Next, seule une variable servant de compteur peut être utilisée donc, si tu veux utiliser par la suite les différentes valeurs de ton tableau, il te faut utiliser la variable compteur pour avoir accès aux différents éléments :

Sub Test1()

    Dim v1, v2, v3 As Variant
    Dim T As Variant
    Dim K As Integer

    v1 = 1
    v2 = 2
    v3 = 3

    T = Array(v1, v2, v3)

    For K = 0 To UBound(T) '- 1

        MsgBox T(K)

    Next K

End Sub

mais je suppose que ta problématique est un peu plus complexe que ça donc expliques nous ce que tu veux faire en détails de façon à voir si on peut t'aider !

bonjour,

remplace tes déclarations de variables par

Dim t()

c'est l'array que tu déclares en variant.

cordialement,

Bonjour

Dim v1, v2, v3 As Integer

déclare seulement V3 en integer, v1 et v2 sont donc en variant car non typés

Une déclaration doit préciser le type pour chaque variable : si les 3 sont des Integer

Dim v1 As Integer, v2As Integer , v3 As Integer

Bonjour à tous,

Un peu plus... :

t => variable non déclarée (donc Variant), accueille un tableau de 3 éléments (indices 0 à 2) constituées par des variables (2 Variant, 1 Integer) non initialisées, donc t(0) et t(1) ont la valeur Empty (vide) et t(2) la valeur 0.

While k <= UBound(t) -1 => k variable non déclarée (Variant), non initialisée (Empty), placée en contexte numérique (tant que inférieure ou égale à 1) a donc la valeur 0 au départ...

For t(k) = 0 To limite => limite non déclarée, initialisée à 2... on veut donc faire varier une variable de 0 à 2... mais t(k) est t(0) et t(0) = Empty, n'est pas une variable mais une valeur constante...

A suivre...

Merci pour vos réponses ..

avec vos conseils cela marcherait finalement avec ces modifications

Dim v1(), v2(), v3() As Variant
Dim t(), tabl() As Variant
t = Array(v1, v2, v3)
 tabl = Array("a", "b", "c", "d")
limite = 2
While k <= UBound(t) - 1

  For t(k) = 0 To limite
    MsgBox tabl(t(k))
  Next

  k = k + 1
Wend
End Sub

..en fait cela me permet de ne pas utiliser de boucles successives en for

bonjour

peux être comme ça

  • Sub Test()
    Dim T() As Variant
    Dim K As Long
    T = Array("v1", "v2", "v3")
    For K = 0 To UBound(T) - 1
    MsgBox T(K)
    Next
    End Sub

A+

Maurice

Rechercher des sujets similaires à "variables"