Tableaux de dimension variable

Tableaux de dimension variable - VB/VBA/VBS - Programmation

Marsh Posté le 02-07-2012 à 12:41:28    

Bonjour a tous,
 
J'essaye de creer un petit code pour ressortir une matrices avec certains elements d'un tableau excel. Voici le code :  
 

Citation :

Sub Matrices()
Sheets("Sheet3" ).Activate
a = Range("A65536" ).End(xlUp).Row
 
Dim Inv(a - 3, 3)
For j = 0 To a - 4
Inv(j, 0) = Cells(0, j + 3)
Next j
 
End Sub


 
Quand je veux executer le code, il me dit a l'endroit Dim Inv(a - 3, 3) "constant expression required".
 
Que faire ? Comment creer un tableau bidimensionnel de taille variable ? L'expression " = Cells(0,j+3) " est-elle correcte ?
 
 
Merci d'avance!

Reply

Marsh Posté le 02-07-2012 à 12:41:28   

Reply

Marsh Posté le 02-07-2012 à 12:50:33    

J'ai pas excel sous la main mais essaies de changer le nom de ta variable. À mon avis, Inv doit être une fonction vba.


Message édité par vave le 02-07-2012 à 13:57:02

---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 02-07-2012 à 13:56:46    

Ca y'est, j'ai excel.
Donc, ça n'a rien à voir avec ce que j'ai posté au dessus.
 
En fait, tu ne peux pas déclarer une variable avec une autre variable en paramètre (Dim Inv(a - 3, 3) ).
 
En solution, tu peux faire un Redim :

Code :
  1. Sub Matrices()
  2. Dim Inv
  3. Sheets("Sheet3" ).Activate
  4. a = Range("A65536" ).End(xlUp).Row
  5. ReDim Inv(a - 3, 3)
  6. For j = 0 To a - 4
  7. Inv(j, 0) = Cells(0, j + 3)
  8. Next j
  9. End Sub


 
Encore plus simple si tu veux mettre une plage dans un tablo :

Code :
  1. sub tablo()
  2. dim tabl as Variant
  3. tabl = Range("A1:A30" ).Value
  4. Range("B2:B31" ) = tabl
  5. end sub


 


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 02-07-2012 à 18:05:05    

Salut, ouiche il y a aussi Cells(0, j + 3)


Message édité par kiki29 le 02-07-2012 à 18:05:36

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 03-07-2012 à 04:35:03    

Merci beaucoup !!  
Et effectivement kiki29, je me suis rendu compte que la numerotation des cellules Excel commencaient a 1 ;) C'est pas evident d'apprendre en autodidacte un nouveau langage quand meme ...

Reply

Marsh Posté le 03-07-2012 à 09:10:58    

Re, ne t'inquiéte pas on est tous passé par là , il n'y a rien d'inné mais de l'acquis, et la seule façon d'apprendre c'est de faire des erreurs.
Juste pour info, un tuto sur les tableaux : http://didier-gonard.developpez.co [...] bleau-vba/


Message édité par kiki29 le 03-07-2012 à 09:13:50

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed