CHOIX DANS LISTVIEW

Résolu
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 - 11 déc. 2011 à 16:17
Ichiflo Messages postés 7 Date d'inscription mardi 20 décembre 2011 Statut Membre Dernière intervention 4 janvier 2012 - 22 déc. 2011 à 14:16
bonjour
je cherche a tri ma listview avec un combobox.

voici mon code:
Private Sub CommandButton1_Click()
Me.Hide
Sheets("Menu").Select
End Sub

Private Sub Barbecue_Click()
 Load Barbecues
 Barbecues.Show
 Unload UserForm1
 UserForm1.Show
 Sheets("Menu").Select
End Sub


Private Sub Retour_Menu_Click()
 Sheets("Menu").Select
 Range("P5").Select
 Application.DisplayFormulaBar = False
 Unload UserForm1
 End Sub

Private Sub TextBox1_Change()
Me.TextBox1 = Sheets("Barbecue").Range("I2")
End Sub
Private Sub userform_activate()

 Sheets("Barbecue").Select
 Application.DisplayFullScreen = True
 
 TextBox1.Value = Sheets("Barbecue").Range("I2").Value



With Me
.StartUpPosition = 3
.Width = Application.Width
.Height = Application.Height
.Left = 0
.Top = 0
End With

'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear

'Alimentation des titres de colonne :

ListView1.ColumnHeaders.Add , , "Mois", ListView1.Width * 0.1, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width * 0.22, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Nº MobilHome", ListView1.Width * 0.15, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Duree", ListView1.Width * 0.1, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Reglement", ListView1.Width * 0.12, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Prix Location", ListView1.Width * 0.13, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Total", ListView1.Width * 0.08, lvwColumnRight
ListView1.ColumnHeaders.Add , , "Caution", ListView1.Width * 0.1, lvwColumnCenter

'on remplit la listview

With Me.ListView1
.ListItems.Clear
    For Each V In Range("A4:A" & Range("A65536").End(xlUp).Row)
        X = X + 1
        .ListItems.Add , , V.Text
        .ListItems(X).ForeColor = V.Font.Color

        For j = 1 To 8
            .ListItems(X).ListSubItems.Add , , V.Offset(0, j).Text
            .ListItems(X).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color

        Next j
Next V
End With

End Sub



a l'aide d'un combobox ou j'ai une liste des mois de l'annee
apres choix dans ce comboboxavoir l'affichage du mois choisi ainsi que ses donnees
dans le combobox
Tous les mois
Janvier
Février
Mars
etc...

cris

2 réponses

chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
11 déc. 2011 à 18:19
personne n'as de piste
merci
cris
3
Ichiflo Messages postés 7 Date d'inscription mardi 20 décembre 2011 Statut Membre Dernière intervention 4 janvier 2012
22 déc. 2011 à 14:16
J'ai pas tout compris tu parles de 2 combobox et ton code parle de textbox et de listview?! Le sujet est "choix dans listview" et tu cherches finalement à faire un tri...

Je n'ai pas ton fichier donc c'est assez flou et je vais assez de répondre en espérant que cela convienne à ton application...

** Pour trier:
- Pour le tri je présume que le .sorted=true glissé après le chargement ne te conviendra pas car il te faut mettre les mois dans l'ordre "calendaire" et non alphabétique
- Je te suggèrerais de gérer le tri sur ta feuille avant le chargement. Avec l'aide d'un "Application.ScreenUpdating" (pour éviter que cela dure trop longtemps) tu scrute chaque ligne
If mois = "Janvier" then
ligne+1
Janv= Janv+1
Endif
If mois = "Février" then
'Déplacer la ligne en Janv+Fev+1
Fev=Fev+1
Endif
...
C'est barbare mais l'idée est là, à toi d'optimiser le code (j'suis même pas sur que ce soit ce que tu cherches)


** Pour n'afficher que ce qui a été sélectionné par la combobox, essayes:
Private Sub ComboBox1_Change()
Me.ComboBox1 = Sheets("Barbecue").Range("I2")
Call userform_activate
End Sub

.
.
.

With Me.ListView1
.ListItems.Clear
For Each V In Range("A4:A" & Range("A65536").End(xlUp).Row)
If Cells(V,1)=Combobox.value then
X = X + 1
.ListItems.Add , , V.Text
.ListItems(X).ForeColor = V.Font.Color

For j = 1 To 8
.ListItems(X).ListSubItems.Add , , V.Offset(0, j).Text
.ListItems(X).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color

Next j
Endif
Next V
End With

En espérant que tu tombes sur ma réponse et qu'elle ne soit pas trop pourave
3
Rejoignez-nous