Nom de tableau variable

Bonjour,

Un petit truc, peut-être tout bête.

En VBA j'ai une boucle qui appelle un tableau différent à chaque fois.

Si a=1 j'appelle ep1(i,1)

Si a=2 j'appelle ep2(i,1)

J'essaye de coder comme ça:

for a=1 to 10

If (ep & "(&CStr(a)&)"(i, 1) = 1) then...

et ça ne marche pas. Idem avec "ep"&a(i,1)

Il doit bien y avoir une solution...

Merci!!!

Mostat

bonjour,

ajoute une dimension à ton tableau

ep(a,i,1)

Merci c'est certainement la meilleur solution.

Mais je déclarais mes tableaux comme ceci:

ep1 = Sheets("Elèves").Range("F2:F" & Sheets("Elèves").Range("F" & Rows.Count).End(xlUp).Row)

ep2 = Sheets("Elèves").Range("G2:G" & Sheets("Elèves").Range("G" & Rows.Count).End(xlUp).Row)

ep3 = Sheets("Elèves").Range("H2:H" & Sheets("Elèves").Range("H" & Rows.Count).End(xlUp).Row)

ep4 = Sheets("Elèves").Range("I2:I" & Sheets("Elèves").Range("I" & Rows.Count).End(xlUp).Row)

Comment je transforme.

Encore merci!

Bonjour,

pour ce cas précis, le plus simple (mais F doit être la colonne qui contient le plus d'élèves)

ep= Sheets("Elèves").Range("F2:I" & Sheets("Elèves").Range("F" & Rows.Count).End(xlUp).Row)

tu peux utiliser ep ainsi

ep(i,a)

alternative avec des tableaux de tableaux

dim ep(4)

ep(1) = Sheets("Elèves").Range("F2:F" & Sheets("Elèves").Range("F" & Rows.Count).End(xlUp).Row)
ep(2) = Sheets("Elèves").Range("G2:G" & Sheets("Elèves").Range("G" & Rows.Count).End(xlUp).Row)
ep(3) = Sheets("Elèves").Range("H2:H" & Sheets("Elèves").Range("H" & Rows.Count).End(xlUp).Row)
ep(4) = Sheets("Elèves").Range("I2:I" & Sheets("Elèves").Range("I" & Rows.Count).End(xlUp).Row)

à utiliser ainsi

ep(a)(i,1)

non testé

La dernière solution marche nickel!!

Merci encore!!

Rechercher des sujets similaires à "nom tableau variable"