Entrer des données dans un Listbox dans un USF à partir d'une variable matricielle

Gringo

XLDnaute Junior
Bonjour forum,

Je commence à me débrouiller pas si mal avec VBA mais je viens de frapper un mur. Je vous explique mon problème et je joins mon fichier pour une meilleure compréhension de ce dernier.

Je détermine des scénarios de taux d'intérêts sur 5 ans que je mémorise dans une variable matricielle (Scénario(1000,5)), où la première variable (1000) est le nombre de scénario possibles, et où la deuxième variable est le taux pour les 5 années.
Je veux pouvoir choisir parmis les scénarios valables celui que je désire. Je vais donc me faire un userform qui contiendra un listbox dans lequel j'aimerais avoir les choix possibles. Or, mon problème, c'est que je ne sais pas comment faire en sorte que le premier choix de mon listbox soit les 5 valeurs des taux d'intérêts qui sont en fait les valeurs Scénario(1,1), Scénario(1,2), ... et Scénario(1,5). Je ne sais pas si je me fais bien comprendre alors j'ai mis des explications dans mon fichier ci-joint.

Notez bien, je ne veux pas que vous fassiez le travail à ma place (mon userform n'est pas encore créé), mais j'aimerais que vous me disiez comment m'y prendre pour que je puisse le faire par moi-même et apprendre du même coup.

Merci de votre aide.

Gringo
 

Pièces jointes

  • Rendcroissant.zip
    24.4 KB · Affichages: 35
  • Rendcroissant.zip
    24.4 KB · Affichages: 34
  • Rendcroissant.zip
    24.4 KB · Affichages: 36

Gringo

XLDnaute Junior
Re : Entrer des données dans un Listbox dans un USF à partir d'une variable matricielle

Bonjour Jean-Marie, le forum

Merci beaucoup pour le code, c'est exactement ce que je recherchais.

Comment pourrais-je m'y prendre maintenant si mes valeurs ne sont pas affichées dans une feuille de calcul mais qu'elles sont enregistrées dans une variable matricielle? Dans ce cas, par quoi devrais-je remplacer le code suivant?

Code:
Tabtemp = .Range("B7:F" & .Range("B65536").End(xlUp).Row).Value 'on rempli le tableau temporaire

Ma variable matricielle est se nomme Scénario et elle enregistre les 5 données des taux pour chaque ligne. Est-ce que c'est possible de prendre les données enregsitrées dans cette variable qui se situe dans le module 1 et de l'intégrer dans le code comme suit:

Code:
With Me.ListBox1 'avec Me.listbox1 évite de répéter cette partie de code
For L = 1 To UBound(Scénario, 1) 'pour chaque ligne du tableau

  .AddItem Format(Scénario(L, 1), "##0.0000 %")     'ici on rempli la listBox via sa la propriété Additem
  .Column(1, .ListCount - 1) = Format(Scénario(L, 2), "##0.0000 %") 'et Column
  .Column(2, .ListCount - 1) = Format(Scénario(L, 3), "##0.0000 %")
  .Column(3, .ListCount - 1) = Format(Scénario(L, 4), "##0.0000 %")
  .Column(4, .ListCount - 1) = Format(Scénario(L, 5), "##0.0000 %")
Next
End With

J'ai essayé mais les données de la variable Scénario ne suivent pas dans mon code du userform. Pourtant, quand j'ai déclaré mes variables, j'ai fait
Code:
Static Scénario(1000,5) as double
Était-ce correct?

Merci pour votre aide et bonne journée,

Gringo
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Entrer des données dans un Listbox dans un USF à partir d'une variable matricielle

Salut Gringo

moi je ne suis pas un matheux lol
quand tu parles de variable Matricielle cela me semble lol; être ce que j'appelle un tableau dans ton cas nommé

Static Scénario(1000,5) as double​

pourquoi mets tu static cela veut dire ,dont les valeurs ne changent jamais c'est ça Lol​

ensuite si tes valeurs ne suivent pas c'est quelles ne sont pas la comment remplis tu ta matrice ou comment arrrivent t'elles, dans ton fichier arff c'est pas évident la ,je ne sais pas comment ça fonctionne Lol une matrice lol les tableaux oui mais les mat.... ????
as tu essayé d'afficher des valeurs de ta matrice pour voir si elles existent dans ta Matrice lol ex Msgbox Scenario(1,1)
explique moi et l'on pourra faire quelque chose​

Bonne fin de Soirée​
 

Gringo

XLDnaute Junior
Re : Entrer des données dans un Listbox dans un USF à partir d'une variable matricielle

Bonjour Jean-Marie, le forum,

Effectivement, quand je parle de variable matricielle, je parle d'un tableau qui est mémorisé dans ma variable. Aussi, j'ai réussi à afficher les valeurs qui sont enregistrées dans Scénario, donc je sais qu'elles y sont.

Le but de l'exercice est de ne pas afficher les résultats sur une feuille Excel, mais bien de les enregistrer dans mon tableau, qui servirait ensuite à remplir mon listbox qui est dans mon userform. Ouf!!! pas si facile à expliquer, j'imagine que ca l'est encore moins à comprendre...

Voici donc la question que j'ai:
1- Comment faire pour que je puisse utiliser, dans mon Userform, les valeurs de mon tableau (Scénario) qui sont compilées dans la macro Rendcroissant du Module1? Autrement dit, est-ce que je peux appeler les valeurs de mon tableau dans mon userform? Si oui, comment dois-je faire? Comment dois-je dimensionner ma variable pour faire en sorte que je puisse l'utiliser dans mon userform?

Je joins mon fichier avec des commentaires dans le code pour une meilleure compréhension.

Merci de votre patience et bonne journée,

Gringo
 

Pièces jointes

  • Rendcroissantforum.zip
    31.1 KB · Affichages: 26
  • Rendcroissantforum.zip
    31.1 KB · Affichages: 25
  • Rendcroissantforum.zip
    31.1 KB · Affichages: 30

Gringo

XLDnaute Junior
Re : Entrer des données dans un Listbox dans un USF à partir d'une variable matricielle

Bonjour Jean-Marie, le forum,

C'est parfait! C'est d'ailleurs ce que j'avais commencé à faire, c'est-à-dire de mettre mon code non pas dans un module mais de le mettre directement dans mon userform. Je vais le savoir la prochaine fois! Ta solution est parfaite.

Merci beaucoup!

Gringo :)
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 887
Membres
103 672
dernier inscrit
ammarhouichi