[VBA] Récupération variable pour créer tablo

Résolu
Dog killer -  
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, ma question est:
Récupérer la valeur d'une variable dans une feuille excel dans le but de créer un tableau avec un nombre de colonne correspondant à la variable:

Variable:
Nbre_colonne_tableau

dans [vba]:

Dim Tbl(Nbre_colonne_tableau;1 To 4)


Merci de vos réponses...
A voir également:

6 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
bonjour,
quand est-ce que la variable Nbre_colonne_tableau est initialisée !!

ta déclaration devrait être..

dans [vba]:

Dim Tbl()
dim Nbre_colonne_tableau as integer

Après que la variable Nbre_colonne_tableau a été initialisée
dans la Sub qui l'emploi mettre
Sub(XX)
redim Tbl(Nbre_colonne_tableau;1 To 4)
..
..
End sub
ou fonction.
'-----------------------------------
Solution 2
const Nbre_colonne_tableau =xx (le nombre de colonne)
dim Tbl(Nbre_colonne_tableau;1 To 4)

A+
louis
0
xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   183
 
Salut,

d'abord, ne pas oublier que le premier paramètre correspond au nombre de lignes de ton tableau, alors soit ta variable porte un nom peu approprié, soit il faut la mettre en deuxième paramètre.

Ensuite, il est préférable de définir un type de données pour ton tableau, par exemple, si celui-ci contient des entiers, tu peux mettre:

Dim Tbl(3; Nbre_colonne_tableau - 1) As Integer

Tu obtiendras donc un tableau de 4 lignes, Nbre_colonne_tableau colonnes, et contenant des entiers...
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25
 
D'après ton post voila ce que j'ai tapé:

Sheets("TEST").Select
Range("B1").Select

Dim Tbl(3, Nbr_ajout_colonne) As Integer

Qaund je test ça me donne une erreur: erreur de compilation constante requise et Nbr_ajout_colonne est en surligné !!!

cela signifie que Nbr_ajout_colonne n'est pas initialisé ???
si oui , comment l'initialisé ?

Merci de votre patience a tous !!!
(vive les boulet en VBa)!
0
xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   183 > Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
Non, le problème c'est qu'il n'est apparement pas possible de mettre une variable dans la définition d'un tableau, donc je pense que le mieux dans ton cas c'est simplement de le définir dynamiquement en mettant simplement Dim Tbl() As Integer et ensuite si tu veux faire varier sa taille dans une procédure, éventuellement en conservant son contenu intact, tu pourras utiliser des instructions du type:

ReDim Preserve Tbl(UBound(Tbl) + 1)

Bon courage !
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25 > xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention  
 
Je vais essayer de faire comme tu dis !!!
Merci baucoup !!!!!
bonne continuation !

Ps: je cloture le post
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25 > Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
Re: Je n'ai finalement pas réeussi xjl désolé !!!!

Je crois que je vais reformuler ma demande plus précisement :

Je souhaite créer un tableau (avec contour a chaque cellule) avec 4 lignes et X colonnes où X est une variable que je récupère dans une cellule d'une autre feuille du classeur.

0
Dog killer
 
re:
je ne sais pas ce qu'est initialisé ???
merci en tout cas je vais essayer tout de suite vos solution!
Au plaisir!
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25
 
Bonjour,
ben non ça ne marche pas ; avec la solution de xjl je n'est pas de message d'erreur dans VBA mais quand j'exécute la macro je n'obtien qu'un déplacement dans une autre cellule sans création de mon tableau !!!!

Aidez moi !!! snif!


Merci :)
0
xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   183
 
Sauf que tu n'as jamais demandé à ce qu'il t'affiche un tableau, t'as demandé à ce qu'il te le crée, donc le tableau existe virtuellement, mais il n'est visible nulle part !!
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25 > xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention  
 
lol :) grossière erreur de ma part !!!! je suis désolé !!!
donc il y a une fonction différente pour faire achicher le tableau ?
Merci
0
xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   183 > Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
En fait ce que tu veux c'est simplement que la macro t'affiche des bordures et éventuellement te remplisse les cellules à l'intérieur avec des données qu'elle irait chercher ailleurs si j'ai bien compris, ça n'a donc rien à voir avec la création de ce qui est appellé tableau de données ou de variables dans vba... Cherches plutôt dans ce sens là, je ne crois pas pouvoir t'aider beaucoup plus...
0
xjl Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   183 > Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention  
 
Si ça peut t'aider...

Sub tableau()

With Sheets(Sheets.Count).Range("A1:E10").Borders
.Color = 50
.LineStyle = xlSolid
.Weight = xlThin
End With
Sheets(Sheets.Count).Range("A1:E10").BorderAround ColorIndex:=3, Weight:=xlThick, LineStyle:=xlSolid

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25
 
merci beaucoup!!!
0
Dog killer Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   25
 
je me suis mal exprimer lors de ma demande .
je relance une nouveau post plus précis :
vba select plage de 4 lignes et x colonnes

merci a tous : )
0