Remplir 2 ListView à partir de 2 feuilles

Baboune

XLDnaute Nouveau
Bonsoir le forum,

J'ai 2 ListView sur un UserForm. Chaqu'une de ces listview affiche le contenu filtré de deux feuilles, et supprime les doublons dans l'une des lisview.

J'ai fais un bout de code (avec votre aide) qui ne fonctionne pas correctement.
Je m'explique:
2 listwiew, 1 appelé LvForfait l'autre LvPneu.

Si LvForfait est vide, l'affichage dans LvPneu est correct. J'ai toutes les valeurs filtrées.

Si LvForfait contient des valeurs, alors dans LvPneu, seul la première valeur de la première colonne s'affiche.

Les doublons présents dans LvPneu doivent être supprimé.

Autre souci, mais seulement esthétique. Si une ListView ne contient pas de valeur, j'ai les en tête de colonne qui s'affiche en double.

Voici le code :

Private Sub MajListView()
Dim y, Flag As Integer

LVpneu.ListItems.Clear
LVforfait.ListItems.Clear

k = Sheets('RefStock').Range('A65536').End(xlUp).Row
k1 = Sheets('Tourisme été').Range('A65536').End(xlUp).Row
Sheets('Tourisme été').Activate

With LVforfait
For Each Cell In Sheets('Tourisme été').Range('A9:A' & k1)
If Sheets('Tourisme été').Rows(Cell.Row).Hidden = False Then
x = x + 1
.ListItems.Add , , Cell
For m = 1 To 7
.ListItems(x).ListSubItems.Add , , Cell.Offset(0, m)
Next m
End If
Next
End With

m = LVforfait.ListItems.Count
x = 0
Flag = 0

Sheets('RefStock').Activate

With LVpneu
For Each Cell In Sheets('RefStock').Range('A5:A' & k)
If Sheets('RefStock').Rows(Cell.Row).Hidden = False Then
x = x + 1
For y = 1 To m 'Vérifie doublon
If Cell = LVforfait.ListItems(y) Then Flag = 1
Next y
If Flag = 0 Then
LVpneu.ListItems.Add , , Cell
For y = 1 To 10
LVpneu.ListItems(x).ListSubItems.Add , , Cell.Offset(0, y)
Next y
End If
End If
Flag = 0
Next
End With

End Sub

Merci de bien vouloir m'apporter votre aide.
 

Baboune

XLDnaute Nouveau
Je met à jour le fichier. Il y avait une petite erreur.

Je desirerai également que lors que je click sur une ligne d'une listview, elle passe en bleu. [file name=TestTarifPneus_20051127123318.zip size=37503]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TestTarifPneus_20051127123318.zip[/file]
 

Pièces jointes

  • TestTarifPneus_20051127123318.zip
    36.6 KB · Affichages: 104

Baboune

XLDnaute Nouveau
Remplir 2 ListView à partir de 2 feuilles (RESOLU)

J’ai résolu le problème. Fin du monologue !

Je donne ma solution pour quelle puisse aider.

Donc, quand je cherché à supprimer un doublon lors du remplissage de LVpneu en comparant avec les valeurs contenues dans LVforfait, j’avais seulement la première valeur de la première colonne qui s’affichée.

Apres quelques jours de recherche et la réflexion de ma femme sur ma calvitie naissante, je décide de changer d’approche.

Je rempli mes deux listView qui ont les même filtres de sélection mais sur deux feuilles différentes.
Ensuite, je compare les valeurs dans chaque ListView et supprime les doublons.

Voici le code utilisé :

'Suppression doublons dans LVpneu
For x = LVpneu.ListItems.Count To 1 Step -1
For y = LVforfait.ListItems.Count To 1 Step -1
If LVpneu.ListItems(x) = LVforfait.ListItems(y) Then
LVpneu.ListItems.Remove x
End If
Next y
Next x

J’aurai préféré une solution qui soit plus directe, mais je n’ai pas trouvé.





Aide toi, le ciel t’aidera.

Message édité par: Baboune, à: 27/11/2005 22:12
 

Discussions similaires

Réponses
1
Affichages
203
Réponses
2
Affichages
183
Réponses
0
Affichages
185

Statistiques des forums

Discussions
312 582
Messages
2 089 942
Membres
104 310
dernier inscrit
Mich Dehez