Adaptation Listview

alexga78

XLDnaute Occasionnel
Bonjour à tous,

j'essaie d'adapter un listview créer par un pro de ce forum (merci à lui) en ajoutant des combo pour le tri de la listview sans sucès.
Initialement il y avait 2 combo, j'en ai ajouter 3 mais je n'arrive pas à adapter les codes tablo et Restitue_Tablo.

Si quelqu'un pouvait se pencher sur le probleme pour permettre de progresser sur les tableaux que je ne maîtrise pas du tout.

D'avance merci
 

Pièces jointes

  • Adaptation_ListView.zip
    30 KB · Affichages: 41
  • Adaptation_ListView.zip
    30 KB · Affichages: 48
  • Adaptation_ListView.zip
    30 KB · Affichages: 44

alexga78

XLDnaute Occasionnel
Re : Adaptation Listview

bonjour à tous,

merci Jp14, mais cette facon de faire m'oblige à modifier l'ensemble du code de Gael, non ?
il n'y aurait pas une solution plus facile si je peux dire.
Merci en tout cas de votre aide.

Bon samedi à tous
 

alexga78

XLDnaute Occasionnel
Re : Adaptation Listview

Bonjour à tous,

j'ai réglé mon probleme il "suffit" d'utiliser le sub de tri créer par Mr Boisgontier

Code:
Sub tri(a, gauc, droi) 
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call tri(a, g, droi)
  If gauc < d Then Call tri(a, gauc, d)
End Sub


Un grand merci à tous ceux qui m'ont apporté leur aide.
bonne journée
 

Gael

XLDnaute Barbatruc
Re : Adaptation Listview

Bonjour à tous,

Pour Christian:

Pour Gael,
peut-tu me dire ou, dans ton code
ce quil faut modifier pour avoir toutes les colonnes de la BDD dans la listView

Il faut modifier l'initialisation, la procédure Tablo et restitue_Tablo comme suit:

Code:
Private Sub UserForm_Initialize()
.
.
    [COLOR=red]ListView1.Width = 500[/COLOR]   'Largeur totale de la Listview
    [COLOR=red]Colonne(1) = 30         'Largeur de chaque colonne
    Colonne(2) = 30[/COLOR]
    Colonne(3) = 70
    [COLOR=red]Colonne(4) = 70[/COLOR]
    Colonne(5) = 70
    Colonne(6) = 70
    Colonne(7) = 70
    Colonne(8) = 70
.
.
  With ListView1.ColumnHeaders
     
    For Col = [COLOR=red]1[/COLOR] To DerCol
       .Add , , Cells(1, Col), Colonne(Col)
     Next
  End With
.
.
         ListView1.ListItems.Add , , .Cells(Li, [COLOR=red]1[/COLOR])  'On part de la colonne 1
           For Col = [COLOR=red]2 To DerCol[/COLOR]                    ' Puis colonnes 2 à dernière colonne

Dans la procédure "Tablo":

Code:
.
.
     ReDim Preserve Tablo1(1 To [COLOR=red]DerCol[/COLOR], 1 To m)
     Tablo1(1, m) = .ListItems(x).Text ' Première colonne
       For k = 1 To [COLOR=red]DerCol - 1[/COLOR][COLOR=black]             ' De 2 à dernière[/COLOR]
[COLOR=black].[/COLOR]
[COLOR=black].[/COLOR]

Dans "Restitue_Tablo":

Code:
.
.
       For x = [COLOR=red]2 To DerCol[/COLOR]
          .ListItems(.ListItems.Count).ListSubItems.Add , , Tablo1(x, k)
.
.

Enfin dans les procédures Combo(1) à Combo(5), il faut s'assurer que les n°s de colonnes souhaitées soient en cohérence avec l'index de l'item ou du subitem, de même que pour les Combobox1 à 5 _Click.

Pour combobox2_Click:
Code:
Private Sub ComboBox2_Click()
.
.
    If .ListItems(x).ListSubItems([COLOR=red]4[/COLOR]).Text <> ComboBox2 Then
       .ListItems.Remove x
.
.

Pour combo2:
Code:
Private Sub Combo2()
Dim x As Long, Sptd As Object
  
Set Sptd = CreateObject("Scripting.Dictionary")
    With ListView1
       For x = 1 To ListView1.ListItems.Count
           If Not Sptd.Exists(.ListItems(x).ListSubItems([COLOR=red]4[/COLOR]).Text) Then Sptd.Add .ListItems(x).ListSubItems([COLOR=red]4[/COLOR]).Text, .ListItems(x).ListSubItems([COLOR=red]4[/COLOR]).Text

Cf exemple joint.

@+

Gael
 

Pièces jointes

  • ListView_complet.zip
    30.1 KB · Affichages: 37

jp14

XLDnaute Barbatruc
Re : Adaptation Listview

Bonsoir vaucluse immo
Bonjour a tous

Pour JP14
Une fois tu m'avais expliqué ce que ,pour toi signifait
le sigle "£", que tu utilise dans tes codes,,je l'ai noté mais je sais plus ou je l'ai noté
peut-tu me réexpliquer, merci

Bon week-end a tous

Cordialement

J'utilise le caractère £ pour éviter de commettre des erreurs au niveau des noms de variables . Un variable avec £ aura comme visibilité uniquement la procédure.

JP
 

MuscatMimi

XLDnaute Accro
Re : Adaptation Listview

Bonsoir Le forum Gael, et JP14

Gael,
Merci pour ta réponse précieuse; franchement jamais je n'aurai trouvé
tout seul


JP14,
Merci de ta réponse, c'est trés gentil de ta part

Heureusement qu'il y a les Pros Excel de ce merveilleux site

Bonne soirée a tous les deux

Cordialement
 

Statistiques des forums

Discussions
312 525
Messages
2 089 327
Membres
104 121
dernier inscrit
bobquad01