Combobox listindex sur valeur variable

Bonjour

comme vous pouvez voir dans le fichier test.xlm j'ai un userform avec un combobox

celle ci est remplis à l'aide dans le initialize avec un array

dans la macro userform1_initialize j'ai une valeur de cette array qui s"'appelle (gagnant) et j'aimerai que la combo l'affiche au moment de l'initialize

donc combobox.listindex = index du gagnant

j'espère que j'ai été clair...

merci à vous

127test.xlsm (15.01 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

180test-v1.xlsm (21.72 Ko)

bonjour

alors oui effectivement j'ai pas précisé que le gagnant est variable et que donc je ne peux pas aller dans le code à chaque fois pour le modifier....

il faudrait idéalement que je trouve un moyen avec ça

arr_donnees = Array("A1", "A2", "A3")

gagnant = "A2"

de trouver index_gagnant=1 sans le taper à la main dans le code évidemment ...peut être existe t il une fonction qui renvoie la clé d'une valeur d'un array

merci


en fouillant chez les ricains j'ai trouvé cette fonction

Function IsInArray(stringToBeFound As String, arr As Variant) As Long

Dim i As Long

' default return value if value not found in array

IsInArray = -1

For i = LBound(arr) To UBound(arr)

If StrComp(stringToBeFound, arr(i), vbTextCompare) = 0 Then

IsInArray = i

Exit For

End If

Next i

End Function

à utiliser comme ça

Private Sub UserForm_Initialize()

Dim gagnant As String

arr_donnees = Array("A1", "A2", "A3")

gagnant = "A2"

Set cbo1 = Me.Frame1.Controls("Combobox1")

cbo1.List = arr_donnees

indexg = IsInArray(gagnant, arr_donnees)

If indexg > 0 Then

cbo1.ListIndex = indexg 'ici il faudrait mettre l'index du gagnant

End If

End Sub

merci à vous

Bonjour

Je suis désolé mais je ne comprends pas ce que tu veux obtenir.

Qu'as-tu au départ sur ta feuille de calcul ?

Que veux-obtenir ?

Bye !

Rechercher des sujets similaires à "combobox listindex valeur variable"