Afectation d'une plage a un tableau VBA
Résolu
ccm81
Messages postés
11033
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
2 questions en VBA
1. Comment affecter une plage à un tableau vba
quelque chose du genre Tablo = L1C1:L20C20
et comment declarer ce tabeau (qui doit etre de dimension variable)
2. Comment recuperer le n° de la 1° colonne non vide d'une ligne (d'une feuille)
merci
2 questions en VBA
1. Comment affecter une plage à un tableau vba
quelque chose du genre Tablo = L1C1:L20C20
et comment declarer ce tabeau (qui doit etre de dimension variable)
2. Comment recuperer le n° de la 1° colonne non vide d'une ligne (d'une feuille)
merci
3 réponses
-
Salut ccm81,
Question 1 : Je ne suis, loin de là même , pas spécialiste en variable tableau... Je débute là dedans. Je te conseille fortement ce lien :
tout sur les variables tableau ici
Tu peux toujours faire comme ceci :Dim Tablo Tablo = Sheets(1).Range("A1:AZ20").Value
Question 2 :sources'donne la lettre de la dernière colonne renseignée de la feuille de calculs Dercol = Split(Worksheets("Feuil2").UsedRange.Address, "$")(3) 'Donne le numéro de la dernière Colonne de la feuille de calculs Dercol = Range(Split(Worksheets("Feuil2").UsedRange.Address, "$")(3) & 1).column--
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges --
Tablo = Sheets(1).Range("A1:AZ20").Value donne un tableau à 2 dimensions (genre (g(1)->g(1,0) etc). comment en faire un à une suele dimension (si on a qu'une ligne par exemple) genre (g(0) g(1) etc...)?
merci- Bonjour,
Tablo = Sheets(1).Range("A1:AZ20").Value
donne un tableau à 2 dimensions
Normal, déjà la plage est constituée de plusieurs lignes ET de plusieurs colonnes.
Sinon, il est vrai que :Tablo = Sheets(1).Range("A1:A20").Value
donne également un tableau à 2 dimensions en Base 1 (le premier indice du tableau est égal à 1, pas à 0).
Donc, pour obtenir un tableau à une dimension, il faut boucler sur celui-ci et le transférer dans un tableau à 1 dimension.
Exemple :Dim Tablo, i AS Long, Tb_Out() Tablo = Sheets(1).Range("A1:A20").Value 'redimensionne en base 0. Pour Base 1, enlever le - 1 ReDim Tb_Out(UBound(Tablo, 1) - 1) For i = LBound(Tablo, 1) To Ubound(Tablo, 1) 'en Base 0. Pour la Base 1 enlever le - 1 Tb_Out(i - 1) = Tablo(i, 1) Next i
-