Problème de récupération de valeur d'une ListBox dans une procédure - VB/VBA/VBS - Programmation
Marsh Posté le 26-07-2010 à 09:31:36
Hello,
l'index des items d'une listbox commence à 0. de plus tu fais une boucle mais tu n'utilise pas la variable qui est incrementé.
Ca donnerait plutot :
Private Sub ListBox1_Click()
Dim Orientation As String
For i = 0 To fmListBox.ListCount -1
If fmListBox.Selected(i) Then
Orientation = fmListBox.List(i)
Exit for
End If
Next i
End Sub
Marsh Posté le 26-07-2010 à 10:48:32
Merci,
J'ai donc mis ta fonction dans la procédure dans fmListBox dans Feuilles mais j'ai un problème c'est de savoir comment je récupère la valeur de Orientation dans ma procédure coordScarf qui dans les Modules pour pouvoir l'utiliser.
Merci d'avance
Marsh Posté le 26-07-2010 à 13:19:31
la tu as plusieurs solutions, ca dépend de quand tu as besoins d'appeler coordScarf
- le mieux c'est d'appeler ta fonction coordScarf dans l'evenement "click" de la listbox (la procédure que je t'ai donnée) et tu donnes Orientation en argument à coordScarf
- tu peux mettre la variable Orientation en public, c'est pas très conseillé mais si tu le fait, prend garde qu'aucune autre variable n'ait le même nom. pour faire cela, il faut déclarer ta variable en début de module, en dehors des procédures. enfin si t'as besoin d'utiliser ta variable a un moment différent du click dans la listbox, le plus simple est de faire comme ça.
ah oui la procédure que je t'ai donné, renomme la juste en "Private Sub fmListbox_Click()" sinon l'evenement ne va pas se déclencher. j'ai oublié de changer le nom désolé.
Marsh Posté le 26-07-2010 à 08:39:32
Bonjour,
Je travail actuellement sur un modè excel que je programme sous Microsoft Visual Basic pour Excel 2003.
Je crée une ListBox, appelée fmListBox, dans les Feuilles de mon fichier avec le code suivant.
[quote]
[b] Code [\]
Option Explicit
Private Sub Label1_Click()
End Sub
Private Sub lbOrientation_Click()
End Sub
Private Sub UserForm_Initialize()
lbOrientation.AddItem "Arc de cercle à Droite"
lbOrientation.AddItem "Arc de cercle à Gauche"
End Sub
[\quote]
Puis j'appelle ma fenêtre à s'ouvrir, dans une procédure d'un module du fichier, pour demander à la personne qui l'utilise
quel type de profil elle utilise avec la commande:
[quote]
fmListBox.Show
[\quote]
Puis je veux récupérer la valeur qui a été sélectionner. Pour cela j'ai écrit à la suite dans la procédure le code suivant
:
[quote]
[b] Code[\b]
Dim Orientation As String
For i = 1 To fmListBox.ListCount
If fmListBox.Selected(1) = True Then
Orientation = fmListBox.List(1)
Else
Orientation = fmListBox.List(2)
End If
Next i
[\quote]
Le problème est qu'il me sort une erreure de compilation en me surlignant ListCount et en me disant Membre de méthode ou
de données introuvable.
Quelqu'un saurait-il comment je epux faire pour récupérer la valeur qui est sélectionnée dans ma fmListBox, dnas ma
procédure pour utiliser son résultat par la suite.
Merci d'avance de vos réponses.