Magic_Doctor
XLDnaute Barbatruc
Bonsoir,
J’ai une ComboBox avec sa liste d’items. Quand je choisis un item dans la liste je dois alors le valider avec un ComboBox et quelque chose se passe.
Il se trouve que dans cette liste d’items il y en a un (à la 4ème position) qui s’intitule "Image". Quand je le valide, cet item devient (dans la liste de la ComboBox) "No Image", et si je revalide, il redevient "Image". Bref, ça marche très bien.
Pour peaufiner la macro qui gère tout ça, plutôt que d’écrire, pour que cet item soit toujours sélectionné :
Je voudrais automatiquement récupérer la position de cet item dans la liste. Voilà comment je m’y suis pris, mais ça ne marche pas :
J’ai une ComboBox avec sa liste d’items. Quand je choisis un item dans la liste je dois alors le valider avec un ComboBox et quelque chose se passe.
Il se trouve que dans cette liste d’items il y en a un (à la 4ème position) qui s’intitule "Image". Quand je le valide, cet item devient (dans la liste de la ComboBox) "No Image", et si je revalide, il redevient "Image". Bref, ça marche très bien.
Pour peaufiner la macro qui gère tout ça, plutôt que d’écrire, pour que cet item soit toujours sélectionné :
VB:
Sheets("Hoja1").ComboChx.ListIndex = 3 ‘nous sommes en Base 0
VB:
Sub Actualiser_ComboChx(item$)
'Actualisation la liste de la ComboBox "ComboChx" après avoir sélectionné et validé l'item "Image" / "No Image"
'- item : l'item de la liste de la ComboBox "ComboChx" que l'on veut modifier
Application.ScreenUpdating = False
Dim dico As Object, listeoptions As Variant, i%, NewItem$
Set dico = CreateObject("Scripting.Dictionary")
If item = "Image" Then
Compteurs 7, 2 '--> compt(7) compteur associé au CommandButton qui valide l'item "Image" / "No Image"
ActiveSheet.Shapes("LatLong").Visible = IIf(compt(7) = 1, True, False) 'une image qui apparaît ou pas
NewItem = IIf(compt(7) = 1, "No Image", "Image")
listeoptions = Array("Calculatrice", "Bloc Note", "Relooking", NewItem, "Help") 'items de la ComboChx "ComboChx" de la feuille "Hoja1"
For i = 0 To UBound(listeoptions) 'rempli le dictionnaire ("dico") avec les éléments de la matrice "listeoptions" (Option Base 0)
dico(listeoptions(i)) = ""
Next
Sheets("Hoja1").ComboChx.List = dico.keys 'dresse la liste de la ComboBox "ComboChx" à partir du dictionnaire
'***************** NE MARCHE PAS *****************
'For i = -1 To UBound(listeoptions)
' i = i + 1
' If listeoptions(i) = NewItem Then Exit For
'Next
'*************************************************
Sheets("Hoja1").ComboChx.ListIndex = 3 'sélection du 4ème item ("Image" / "No Image") de la liste de la ComboBox "ComboChx"
'***************** NE MARCHE PAS *****************
'Sheets("Hoja1").ComboChx.ListIndex = i 'sélection du 3ème item (Image / No Image) de la liste de la ComboBox "ComboChx"
'*************************************************
End If
[C2500].Select: Application.ScreenUpdating = True
End Sub