Listbox Multiselection et Réinitialisation

  • Initiateur de la discussion Phil.Brrd
  • Date de début
P

Phil.Brrd

Guest
Bonjour au forum,

(Débutant en VBA)
Voila, j'ai 1 petit pb à résoudre, si quelqu'un pouvait me donner un coup de pouce...

Dans un USF j'ai une combobox qui en fonction de la sélection, m'affiche des valeurs dans une ListBox multisection. Je dois traiter l'ensemble des valeurs sélectionnées de la lisbox vers de nouveaux classeurs excel en faisant des tris.
Comment puis-je récupérer ces valeurs pour pouvoir les traiter? du genre: 'en fonction des champs sélectionnés de la listbox, je lance telle ou telle action)

Ci-dessous le code de ma listbox:(qui m'a gentillement été proposé sur le forum ...)

Dim I As Integer
Dim tmp As Integer
ReDim myArray(0) As Variant
'************ remplissage du tableau *******
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) Then
tmp = tmp + 1
ReDim Preserve myArray(tmp)
myArray(tmp) = ListBox1.List(I)
End If
Next
'************* vérification ****************
For I = 1 To UBound(myArray)
MsgBox I & ' ' & myArray(I)
Next

Merci pour votre aide à venir.

Philippe
[file name=Serv_20060428114953.zip size=17335]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Serv_20060428114953.zip[/file]
 

Pièces jointes

  • Serv_20060428114953.zip
    16.9 KB · Affichages: 56

Bebere

XLDnaute Barbatruc
bonjour Philippe
le code suivant devrait résoudre ton problème

Private Sub CommandButton1_Click()
Dim I As Integer
Dim tmp As Integer
Dim myArray() As Variant
'************ remplissage du tableau *******
With ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) = True Then
ReDim Preserve myArray(tmp)
myArray(tmp) = ListBox1.List(I)
tmp = tmp + 1
End If
Next
End With

'************* vérification ****************
For I = 0 To UBound(myArray)
MsgBox I & ' ' & myArray(I)
Next

With ListBox1 'deselect
For I = 0 To .ListCount - 1
If .Selected(I) = True Then .Selected(I) = False
Next I
End With

End Sub

Private Sub UserForm_Initialize()
IniListbox1
End Sub

Private Sub IniListbox1()

Dim Plg As Variant
Plg = Feuil3.Range('A2:A' & Feuil3.Range('A6536').End(xlUp).Row)
With ListBox1
.Clear
.MultiSelect = fmMultiSelectMulti
.List = Plg
End With

End Sub

à bientôt
 

AeroPlanneur

XLDnaute Junior
bonjour Philippe,

hier, dans ton post 'Elements séléctionnés dans ListBox', tu cherchais 'Comment récupérer les éléments sélectionnés dans une ListBox pour pouvoir les passer en 'variable''.
Aujourd'hui, ton post est intitulé 'Listbox Multiselection et Réinitialisation' et a pour objet la recherche d'un code pour 'récupérer ces valeurs ', ce qui n'est pas en soi un gros problème (je t'ai fourni comment créer un tableau des valeurs selectionnées) et ensuite 'les traiter' i.e 'je lance telle ou telle action' ...
Je ne doute pas que ce que tu souhaites faire soit très clair dans ton esprit, mais pour ceux qui sont sensés venir à ton secours, ça ne l'est guère !
Peux-tu nous mettre en pièce jointe un fichier avec ce que tu veux obtenir en fonction des choix effectués ?

cordialement
 
P

Phil.Brrd

Guest
Re bonjour,

Pour commencer, je vous remercie tous les 2 de vous être penchés sur mon pb.
1 - Bebere, je n’ai pas eu le temps de me pencher sur ta proposition, dès que ce sera fait je te tiens au courant du résultat. Merci encore pour ta contribution.
2 - Aeroplanneur, je suis désolé d’avoir utilisé un autre nom de sujet pour traiter mon problème d’hier.
Je n’ai pas l’habitude des forums, ce sont les premiers « post » que j’envoie, je m’y suis donc mal pris et ferais attention la prochaine fois.
En effet, ce que l’on cherche à obtenir par un programme est clair dans nos esprits, mais cela l’est beaucoup moins quand on doit l’exprimer, surtout par écrit et que l’on cherche des solutions depuis … des heures … d’où ces appels « au secours » sur le forum qui cela dit en passant est une sacrée mine d’or.
Donc désolé de m’être mal exprimé, mea culpa. (désolé également pour le smiley qui s’est glissé involontairement dans le texte original de ce message)
Je joins à ce post un zip de ce que je dois réaliser afin de mieux faire comprendre (j’espère) ma demande.
Nota: le USF n'est pas finalisé c'est juste pour la demo, le btn 'Annuler' en fait sera un btn 'Valider' qui devra lancer mon programme de tri (résultat => 1 fichier selon la sélection de gauche et 1 fichier selon la ou les sélections de droite)
En fait je veux trier des éléments dans une feuille, et en fonction de ce premier tri je dois en faire d’autres selon d’autres critères, et les enregistrer dans de nouveaux classeurs, et tout ça en vba

Merci encore à tous les 2

Cordialement
philippe [file name=Serv_20060428152537.zip size=18118]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Serv_20060428152537.zip[/file]
 

Pièces jointes

  • Serv_20060428152537.zip
    17.7 KB · Affichages: 98

Discussions similaires

Réponses
17
Affichages
841

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote