Rechercher : dans
Par :

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

Dernière réponse le 29 mai 2007 à 15:33:45 Dog killer, le 28 mai 2007 à 09:36:51 
 Signaler ce message aux modérateurs

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...

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [VBA] Récupération variable pour créer tablo » dans :
VBScript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Il s'agit en fait d'une zone de la mémoire réservée pour le stockage d'une valeur. Les...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
Objet FileSystemObject (FSO) VoirFileSystemObject L'objet FileSystemObject (FSO) permet de manipuler le système de fichiers de Windows. L'utilisation du modèle d'objet FileSystemObject s'effectue en créant une instance de l'objet Scripting.FileSystemObject l'intermédiaire de la...

1

lermite222, le 28 mai 2007 à 09:51:25

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

Répondre à lermite222

2

xjl, le 28 mai 2007 à 09:53:20

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...

Répondre à xjl

4

Dog killer, le 28 mai 2007 à 13:09:42

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)!

Répondre à Dog killer

5

xjl, le 28 mai 2007 à 13:44:47

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 !

Répondre à xjl

6

Dog killer, le 28 mai 2007 à 13:47:20

Je vais essayer de faire comme tu dis !!!
Merci baucoup !!!!!
bonne continuation !

Ps: je cloture le post

Répondre à Dog killer

13

Dog killer, le 29 mai 2007 à 13:50:00

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.

Être ou ne pas etre acoudé au comptoir , tel est la véritabl­e question (Martini au Shak_spear) ; ) 
HAVE FUN 

Répondre à Dog killer

3

Dog killer, le 28 mai 2007 à 10:23:42

Re:
je ne sais pas ce qu'est initialisé ???
merci en tout cas je vais essayer tout de suite vos solution!
Au plaisir!

Répondre à Dog killer

7

Dog killer, le 28 mai 2007 à 14:42:31

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 :)

Répondre à Dog killer

8

xjl, le 28 mai 2007 à 14:48:13

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 !!

Répondre à xjl

9

Dog killer, le 28 mai 2007 à 14:50:25

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

Répondre à Dog killer

10

xjl, le 28 mai 2007 à 15:09:16

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...

Répondre à xjl

11

xjl, le 28 mai 2007 à 15:24:56

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

Répondre à xjl

12

Dog killer, le 28 mai 2007 à 15:34:54

Merci beaucoup!!!

Répondre à Dog killer

14

 Dog killer, le 29 mai 2007 à 15:33:45

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 : ) Être ou ne pas etre acoudé au comptoir , tel est la véritabl­e question (Martini au Shak_spear) ; ) 
HAVE FUN 

Répondre à Dog killer