Déclaration variable en boucle affectation valeur

Bonjour

Je boucle sans arriver à avancer .... et ce n'est rien de le dire !

1) je veux déclarer des variables par une boucle, puis leur affecter une valeur, que je veux ensuite récupérer en fonction de l'avancement d'une autre boucle:

En concaténant Vl et i l'indice

For i = 5 To 14 Step 1

var = "vl" & i

Dim var As Integer 'plantage incompatibilité de type

Next i

2)J'affecte une valeur à ces variables

Vl5 = 16

Vl6 = 22

Vl7 = 28

Vl8 = 34

etc

3)je n'arrive pas à récupérer la valeur affectée à la variable par ces syntaxes :

vlg=(vl & i)

ou

vlg = vli. value

Vld = vl(i).Value

Vlf = vl & i

Merci pour votre réponse éclairante

Cordialement

FINDRH

Bonjour, bonjour !

Les déclarations de variables doivent se trouver en entête de procédure, avant toute instruction d'affectation !

Lire l'aide VBA de l'instruction Dim et son exemple concernant les variables de type tableau …

Bonsoir

Surpris de n'avoir qu'une réponse à ma question.....

J'ai réglé mon problème en générant un tableau et en y affectant les valeurs souhaitées, que j'ai ainsi récupérées.

A la lecture des docs parcourues, on peut parfaitement définir par DIm ou Set des variables en cours de procédure

Par contre je n'ai pas de Réponse à une question :

je définis 5 variables par DIM et une boucle +> Variables Var1 à Var5

J'affecte à chacune une valeur

au cours d'une autre boucle ultérieure je veux récupérer la valeur de la variable indicée ( valeur de Var 2 par ex) comment j'écris ou reconstitue en Vba , au cours de la procédure :"Var" +2

Var & i où i =2 pour récupérer la valeur de Var2 ?

Je ne voudrais pas mourir idiot !

Merci d'avance

FINDRH

FINDRH a écrit :

je définis 5 variables par DIM et une boucle +> Variables Var1 à Var5

Afin d'augmenter les chances d'obtenir une réponse et pour enlever ou confirmer un doute, poster le code devrait aider …

Bonjour,

Tu parles de tableau mais nulle part on te voit écrire les ( ) mais plutôt var1 qui ne représente pas du tout un tableau.

dim i as long, ma_var(1 to 5) as double
For i = 1 to 5
   ma_var(i) = i
Next i
For i = 1 to 5
   msgbox ma_var(i)
Next i

eric

Bonjour Jean Eric,

merci pour ta réponse éclairée.

Ci joint la macro que je souhaite utiliser pour récupérer des valeurs.

Le tableau est défini et je suis arrivé à en récupérer le bon contenu à chaque fois, c'est la syntaxe de ma dernière ligne de ma première approche qui coinçait... avec tes lumières c'est résolu !

Sub Macro3()

'

Dim cmptb(11) As Integer

cmptb(0) = 16

cmptb(1) = 22

cmptb(2) = 28

cmptb(3) = 34

cmptb(4) = 40

cmptb(5) = 46

cmptb(6) = 52

cmptb(7) = 58

cmptb(8) = 64

cmptb(9) = 70

cmptb(10) = 82

Dim i As Long, ma_var(1 To 10) As Double

For i = 1 To 10

ma_var(i) = cmptb(i - 1)

MsgBox ma_var(i)

Next i

For i = 1 To 10

val = ma_var(i) ' pour récupérer la valeur indicée par i ?c'est cette ligne qui coinçait !

Cells(1, i).Select

ActiveCell.Formula = val

Next i

End Sub

Cette procédure marche désormais comme il faut et je t'en remercie.

Cordialement

FINDRH

Bonjour,

heuuu, ça :

For i = 1 To 11
    Cells(1, i) = 10 + i * 6
Next i

ça fait pareil non ?

eric

Oui car un bon code n'a pas besoin de Select

Oui, mais je disais ce code là en tout et pour tout, en remplacement de toutes les lignes.

Pas besoin de variables tableau intermédiaires.

eric

Oui en effet …

Mais savoir manipuler des variables tableau peut alléger l'exécution d'un code, surtout en écriture de cellules …

Bonsoir

Effectivement le code est plus simple, et j'en prends bonne note. Cependant le pas entre l’avant dernier et le dernier est de 12...

Un bon code se passe de Select, je suis d'autant plus preneur que ce que j'ai développé je l'ai le plus ,souvent fait tout seul à une époque où les forums n'existaient pas..... Maintenant je récupère les codes que je comprends....

Je cherche depuis un certain temps une doc sur la syntaxe avec un point , quand l'utilise t on à part avec with et end with ?

ex

.range()

Merci pour vos conseils

FINDRH

Uniquement dans un bloc With, doc dans l'aide VBA et, en plus de celui de son aide, voici un autre exemple

Tout ce qui commence par un point fait donc référence à l'objet du bloc With.

Cependant le pas entre l’avant dernier et le dernier est de 12...

Effectivement, je n'avais pas vu. Dans ce cas :

For i = 1 To 11
    Cells(1, i) = 10 + IIf(i = 11, 12, i) * 6
Next i

eric

Bonjour Eeric

Merci pour ces précisions et cette syntaxe + l'illustration de l'utilisation de Iif.....

J'en apprends tous les jours... ça occupe les anciens...

Avec toutes mes amitiés

FINDRH

Rechercher des sujets similaires à "declaration variable boucle affectation valeur"