Problème de résupération de valeur d'une ListBox dans une procédure

Sethomas

XLDnaute Nouveau
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.

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:

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

:
Code
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.
 

Pierrot93

XLDnaute Barbatruc
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Bonjour,

essaye peut être ainsi, code à utiliser dans le module de l'usf :

Code:
For i = 0 To fmListBox.ListCount - 1
If fmListBox.Selected([COLOR="Red"][B]i[/B][/COLOR]) = True Then

A noter, la propriété "Selected" est généralement utilisée avec des objets dont la propriété "mulstiselect" est à "true"...

bonne journée
@+
 

Sethomas

XLDnaute Nouveau
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Oui, je te joint un fichier d'exmple si tu veux regarder.
 

Pièces jointes

  • Test.zip
    45.5 KB · Affichages: 35
  • Test.zip
    45.5 KB · Affichages: 36
  • Test.zip
    45.5 KB · Affichages: 35
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Re,

ton code n'est pas dans le module de l'usf mais dans un module standard..."fmListBox" n'est pas le nom de ta "listbox" mais celui de ton USF...

Code:
    For i = 0 To fmListBox.lbOrientation.ListCount - 1
        If fmListBox.lbOrientation.Selected([B][COLOR="Red"]i[/COLOR][/B]) = True Then

@+
 

Sethomas

XLDnaute Nouveau
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Merci,
maintenant je n'ai plus d'erreur mais quand j'exécute ma macro CoordScarf, il ne garde pas en mémoire la ligne sur laquelle j'ai cliquée dans ma ListBox et donc quand il analyse la valeuil ne veut pas avancer comme tu peux le voir dans le fichier de test que je joins.
Merci d'avance
 

Pièces jointes

  • Test2.zip
    45.7 KB · Affichages: 48
  • Test2.zip
    45.7 KB · Affichages: 48
  • Test2.zip
    45.7 KB · Affichages: 42

Pierrot93

XLDnaute Barbatruc
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Re,

perso je mettrais peut être le code dans le module de l'usf, et ce lié à l'événement click de la listbox.....
Code:
Private Sub lbOrientation_Click()
    Dim Orientation As String
    For i = 0 To fmListBox.lbOrientation.ListCount - 1
        If fmListBox.lbOrientation.Selected(i) = True Then
            Orientation = fmListBox.lbOrientation.List(i)
        End If
    Next i
        
        'Calcul des doordonées extrémités du Scarf
    If (Orientation = "Arc de cercle à Droite") Then
        Range("K5").Value = "=(x_1 - x_0) + Ep_1 * Sin(alpha3)"
        Range("K6").Value = "=(y_0 - y_1) + Ep_1 * Cos(alpha3)"
        Range("K8").Value = "=(x_1 - x_0) + Ep_0 * Sin(alpha4)"
        Range("K9").Value = "=(y_0 - y_1) + Ep_0 * Cos(alpha4)"
    ElseIf (Orientation = "Arc de cercle à Gauche") Then
        Range("K5").Value = "=(x_1 - x_0) - Ep_1 * Sin(alpha3)"
        Range("K6").Value = "=(y_0 - y_1) - Ep_1 * Cos(alpha3)"
        Range("K8").Value = "=(x_1 - x_0) - Ep_0 * Sin(alpha4)"
        Range("K9").Value = "=(y_0 - y_1) - Ep_0 * Cos(alpha4)"
    End If

End Sub
 

Sethomas

XLDnaute Nouveau
Re : Problème de résupération de valeur d'une ListBox dans une procédure

Merci ça fonctionne comme je veux, mais j'ai une dernière question: comment fait-on pour fermer automatiquement la fmListBox à la fin de la boucle de click, y-a-t-il une commande pour qu'il reparde après dans mon autre procédure où je vais lui demander d'autres calculs.
Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345