XL 2016 Créer des indices de variable pour listbox vba

Makovitch

XLDnaute Nouveau
Bonjour,
j'aimerai savoir si c'est possible, dans une listbox, de faire appel à des indices (ex: 1, 2, 3...) et lorsque l'utilisateur choisit l'un de ces indices, alors on lui affiche dans différentes tables des variables associées à cet indice (ex : on choisit l'indice 1 les variables CHOMAGE/NOMBRE D'HABITANTS/PIB s'affichent dans 3 tables différentes).
J'aimerai en gros faire appel à plusieurs variables en même temps grâce à un indice.

Avez-vous des pistes à me suggérer svp ?

Sachant que j'ai beaucoup de variables dans mon tableau, j'aimerai seulement pouvoir saisir ces variables dans des tables différentes afin de faire des comparaisons par la suite.
 

fhoest

XLDnaute Accro
Bonjour,
est ce que c'est cela que vous souhaitez ?
Code:
Private Sub ListBox1_Click()
TextBox1.Text = ListBox1.ListIndex + 1
End Sub


Private Sub UserForm_Initialize()
For i = 1 To 10
ListBox1.AddItem i
Next
End Sub
exemple avec un usf et une ListBox + TextBox.
 

Makovitch

XLDnaute Nouveau
Bonjour fhoest, merci pour ton aide que j'ai essayé mais les chiffres ne sont que des exemples, en réalité mes tags sont des chaines de caractères à récupères dans des cellules sur un autre onglet...
Sinon j'ai ce code que je dois répliquer plusieurs fois ce qui est un peu embêtant et plutôt volumineux
Capture%20bench.JPG

Avez-vous une idée pour simplifier cela ? C'est un bout de code que j'ai tapé dans une private sub
 

fhoest

XLDnaute Accro
Bonjour
pour simplifier le code je propose ça:
Code:
.range("AB3").select
ActiveCell.offset(0,1).FormulaR1C1 = "=VLOOKUP(RC1,'Tickers List'!R2C1:R150C43,33,False)"

Dim i as byte
    For i = 2 to 25
    i= i + 28
    ActiveCell.Offset(0,i).FormulaR1C1="BDH(RC29,""PX_LAST"",R2C" & i & ",R2C" & i & ")"
    Next
.range("AC3:BA3".Autofill .Range("AC3:BA6")
End if
Attention j'ai recopier car c'est une image, faire attention de ne pas avoir d'erreur de recopie de ma part.
lorsqu'un code se répète, il faut envisager une routine avec des paramètres définis dans cette dernière.

comme cet exemple:
Code:
'Appel de la routine avec comme argument .range("AB3").select
Call routine(.range("AB3").select)
'suite du code
.range("AC3:BA3".Autofill .Range("AC3:BA6")

End if

'routine appeler routine,le nom choisi ici routine peut être différent

Sub routine(r as range)
ActiveCell.offset(0,1).FormulaR1C1 = "=VLOOKUP(RC1,'Tickers List'!R2C1:R150C43,33,False)"

Dim i as byte
    For i = 2 to 25
    i= i + 28
    ActiveCell.Offset(0,i).FormulaR1C1="BDH(RC29,""PX_LAST"",R2C" & i & ",R2C" & i & ")"
    Next

End Sub
A bientôt. (pour le sujet de départ listbox je ne vois pas pour l'instant comment aider plus.)
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T