Macro Fonction tableau

  • Initiateur de la discussion Initiateur de la discussion suistrop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

suistrop

XLDnaute Impliqué
Salut, je me pose une question !!!

Je voudrais savoir si y avais pas mieux que ce que je fais :

j ai la fonction fonction_tableau(h) renvoi un tableau

pour remplir un autre tableau je fais

for i = 1 to 100
new_tableau(i) = fonction_tableau(i)
next i

la c est la galere car il va faire tourner 100 fois la fonction 🙁

merci !!

PS : si je veux faire new_tableau = fonction_tableau
y a une erreur impossible d affecter un tableau

PS2: ma fonction tourne en 5 minute donc 5*100 = trop 🙁
Merci !
 
Dernière édition:
Re : Macro Fonction tableau

Bonsoir,

Même si je ne comprends pas l'utilité de recopier ton tableau...
le code suivant te donne le résultat escompté (Tout est dans la déclaration de ton nouveau tableau...
Code:
Sub test()
Dim fonction_tableau(100) As Variant
Dim new_tableau() As Variant

For i = 0 To 99
    fonction_tableau(i) = i
Next

new_tableau = fonction_tableau

For i = 0 To 99
Cells(i,1) = new_tableau(i)
Next i
End Sub
Cordialement

Edit :
ma fonction tourne en 5 minute donc 5*100
Laisse tomber les rames😛 et passe au moteur...
 
Re : Macro Fonction tableau

Je n ai pas d exemple simple 🙁
Je vais essayer d expliquer !

J ai mon classeur excel, dessus je fais tourner un code qui est super long , qui affiche tres bien un tableau sous une feuille excel !
Ce que je veux c est récupéré ce tableau dans un autre sub !

Je ne peux pas récupéré le tableau valeur par valeur c est trop long (mais possible)

La seul option serait d utiliser un pointeur mais je ne sais pas comment ca marche sous vba 🙁

Autre probleme pour passer un tableau en argument d une routine ca plante...

Plein de pbl que je suis en train de réglé en tapant des truc redondant mais au final ca va marcher mais ca ne sera pas élégant 🙁
 
Re : Macro Fonction tableau

Bonjour à tous,

Comme te l'as suggéré Spitnolan, il ne faut pas passer de tableau en argument mais un variant contenant un tableau. C'est simple :
Dim MaVar as variant, MonTab(1 to 5) as string
'remplit MonTab
Mavar = MonTab
 
Re : Macro Fonction tableau

oui j ai vu
le pbl c est que ma fonction et la ou je l apel sont dans 2 module différents

module 1
sub tab1(tab as single)
'a la fin j obtient le tableau toto
toto
end sub

module 2
sub tab2()

'ici je voudrais utiliser la sub( ou fonction du module 1)
toto1 = module1.tab1(tab1)
'ca n as pas l air de marcher !!

end sub

Car je pense pouvoir sinon faire tout ca dans un meme sub mais c est pas gérable au niveau le la longeur !

Ce que j ai fais comme solution :
J ai mis des tableau en public
et je fais des sub différente pour avoir les tableau déclaré en public comme ca je les récupere .... mais bon vu que les sub utilisé sont les meme y a beaucoup de redondance juste pour avoir au final des nom de tableau différents
 
Re : Macro Fonction tableau

Re,

Visiblement tes lunettes de soleil (cf ton avatar😛) t'empêchent de voir...
Donc je vais allumer les projecteurs😀
Code:
Private fonction_tableau(100) As Variant

Sub test1()
Dim i As Integer
For i = 0 To 99
    fonction_tableau(i) = i
Next
Call test2
End Sub

Sub test2()
Dim new_tableau() As Variant

new_tableau = fonction_tableau

For i = 0 To 99
    Cells(i + 1, 1) = new_tableau(i)
Next i
End Sub
Fais gaffe à la conjonctivite😛

Cordialement

Edit : on s'est croisé, le temps que j'écrive toutes mes â.....s
 
Re : Macro Fonction tableau

y a pas de soucis....
mais c est vraiment pas évident de gérer un gros projet sous VBA 🙁 l éditeur n est vraiment pas pratique on peut pas réduire des sub avec des + - ....

enfin jme débrouille comme je peux !
 
Re : Macro Fonction tableau

Re,

et un autre exemple avec 2 modules...
Code:
'[COLOR=Green][B]Module 1[/B][/COLOR]
Public fonction_tableau(100) As Variant

Sub test()
tab1 99
End Sub

Sub tab1(n As Variant)
Dim i As Integer
For i = 0 To n
    fonction_tableau(i) = i
Next
Call tab2
End Sub
Code:
[B][COLOR=Green]'Module 2[/COLOR][/B]
Sub tab2()
Dim new_tableau() As Variant

new_tableau = fonction_tableau

For i = 0 To 99
    Cells(i + 1, 1) = new_tableau(i)
Next i
End Sub
Si avec tout ça tu ne trouves pas ton bonheur...😱

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
782
Réponses
25
Affichages
1 K
Retour