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

Résolu/Fermé
Dog killer - 28 mai 2007 à 09:36
Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 - 29 mai 2007 à 15:33
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 mai 2007 à 09:51
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 mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183
28 mai 2007 à 09:53
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25
28 mai 2007 à 13:09
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 mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183 > Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007
28 mai 2007 à 13:44
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25 > xjl Messages postés 232 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007
28 mai 2007 à 13:47
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25 > Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007
29 mai 2007 à 13:50
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
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25
28 mai 2007 à 14:42
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 mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183
28 mai 2007 à 14:48
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25 > xjl Messages postés 232 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007
28 mai 2007 à 14:50
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 mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183 > Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007
28 mai 2007 à 15:09
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 mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183 > Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007
28 mai 2007 à 15:24
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 lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25
28 mai 2007 à 15:34
merci beaucoup!!!
0
Dog killer Messages postés 57 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 12 juin 2007 25
29 mai 2007 à 15:33
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