Comment utiliser la zone de liste.ListIndex
Je vais dans une seule zone de liste à sélection, afin de déterminer quelle série pour le sélectionner. Le développeur précédent sur ce n'suivantes:
For i = 0 To ListBox4.ListCount - 1
If ListBox4.Selected(i) Then
Series_Msg = Series_Msg & ListBox4.List(i) & vbNewLine
ActiveChart.SeriesCollection(i + 1).Select
'other commands
Next i
Dans une tentative pour nettoyer son code, j'ai essayé de faire quelque chose comme ce qui suit:
If ListBox4.ListIndex <> -1 then
ActiveChart.SeriesCollection(ListBox4.ListIndex + 1).Select
Mais je reçois un objet nécessaire d'erreur. J'ai essayé en déclarant j'ai comme un objet, et de l'affecter la propriété ListIndex de la valeur, mais cela ne fonctionne pas.
Quelqu'un peut-il suggérer comment je peux le faire sans la boucle? Je ne peux pas croire que cette boucle est nécessaire.
Toute aide est grandement appréciée!
Russ
- Ne
Debug.Print ActiveChart.Name
. Ne vous obtenez un message d'erreur sur cette déclaration?
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous avez au graphique bien choisi:
ActiveChart
est sujette à ce genre d'erreur 🙂Trye à l'aide de:
ActiveChart.SeriesCollection(ListBox4.List(ListBox4.ListIndex)).Select
Ce code fonctionne très bien pour moi, à condition qu'il existe un
ActiveChart
. Ajouter un peu de manipulation pour s'assurer que ActiveChart n'est pas Rien. Sinon, vous obtiendrez cette erreur,Object Variable or With Block not set
.i
si je me souviens parce que vous aviez dimensionnée en tant qu'objet et n'ont pas le définir. Si vous la dimension int/long, cela devrait fonctionner (et il ne fonctionne pas, j'ai vérifier) carListBox1.ListIndex+1
est un entier long numérique de données. Aussi, une raison quelconque vous utilisez la valeur par défaut_Click
événement plutôt que de la_AfterUpdate
événement?ActiveChart
n'en est Rien, au moment où le code s'exécute. Vous avez besoin de déboguer pourActiveChart
pour vous assurer que c'est réglé correctement. Je soupçonne que, pour résoudre votre problème.