Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1212 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Utilisation de Listview

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Utilisation de Listview

n°1794993
scaryfan
Apple Inside
Posté le 02-10-2008 à 21:18:26  profilanswer
 

:hello:  
 
Salut à tous !
Je reviens à la charge avec l'utilisation de l'outil Listview.
J'ai un tableau Excel avec 5 colonnes et 10 lignes.
Je souhaite alimenter une zone de liste dans une userform...
Quel est le code pour faire cela ???
J'ai vraiment du mal à trouver sur le net... :(
 
Merci pour votre aide... ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
mood
Publicité
Posté le 02-10-2008 à 21:18:26  profilanswer
 

n°1798775
scaryfan
Apple Inside
Posté le 12-10-2008 à 11:42:59  profilanswer
 

UP
 
Y'a vraiment personne pour m'aider ???
 
 :cry:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1798891
scaryfan
Apple Inside
Posté le 12-10-2008 à 17:58:57  profilanswer
 

UP (re) ! :D
 
Finalement, j'ai réussi à faire une Userform avec une ComboBox dans laquelle je sélectionne 1,2 ou 3 et selon le choix, la Listview en-dessous s'alimente des tableaux qui se trouvent dans la 1ère feuille, la 2ème ou la 3ème (AA, BB ou CC)...
J'utilise Change avec Combobox.
ça marche très bien...
 
Voici le bout de mon code :
 

Code :
  1. Private Sub ComboBox1_Change()
  2.     Dim Tableau, j&, y&
  3.    
  4.     If ComboBox1.Value = 1 Then
  5.         Sheets("AA" ).Select
  6.         Range("A1" ).Select
  7.         Selection.CurrentRegion.Select
  8.         Tableau = Selection.Value
  9.         Me.LISTELISTE1.View = lvwReport
  10.         Me.LISTELISTE1.ListItems.Clear
  11.         Me.LISTELISTE1.ColumnHeaders.Add 1, , "1er", 80, lvwColumnLeft
  12.         Me.LISTELISTE1.ColumnHeaders.Add 2, , "2ème", 80, lvwColumnRight
  13.         Me.LISTELISTE1.ColumnHeaders.Add 3, , "3ème", 80, lvwColumnRight
  14.         For y = UBound(Tableau, 1) To LBound(Tableau, 1) Step -1
  15.             Me.LISTELISTE1.ListItems.Add 1, , Tableau(y, 1)
  16.             Me.LISTELISTE1.ListItems(1).SubItems(1) = Tableau(y, 2)
  17.             Me.LISTELISTE1.ListItems(1).SubItems(2) = Tableau(y, 3)
  18.         Next y
  19.     End If
  20.    
  21.     If ComboBox1 = 2 Then
  22.         Sheets("BB" ).Select
  23.         Range("A1" ).Select
  24.         Selection.CurrentRegion.Select
  25.         Tableau = Selection.Value
  26.         Me.LISTELISTE1.View = lvwReport
  27.         Me.LISTELISTE1.ListItems.Clear
  28.         Me.LISTELISTE1.ColumnHeaders.Add 1, , "1er", 80, lvwColumnLeft
  29.         Me.LISTELISTE1.ColumnHeaders.Add 2, , "2ème", 80, lvwColumnRight
  30.         Me.LISTELISTE1.ColumnHeaders.Add 3, , "3ème", 80, lvwColumnRight
  31.         For y = UBound(Tableau, 1) To LBound(Tableau, 1) Step -1
  32.             Me.LISTELISTE1.ListItems.Add 1, , Tableau(y, 1)
  33.             Me.LISTELISTE1.ListItems(1).SubItems(1) = Tableau(y, 2)
  34.             Me.LISTELISTE1.ListItems(1).SubItems(2) = Tableau(y, 3)
  35.         Next y
  36.     End If
  37.    
  38.     If ComboBox1 = 3 Then
  39.         Sheets("CC" ).Select
  40.         Range("A1" ).Select
  41.         Selection.CurrentRegion.Select
  42.         Tableau = Selection.Value
  43.         Me.LISTELISTE1.View = lvwReport
  44.         Me.LISTELISTE1.ListItems.Clear
  45.         Me.LISTELISTE1.ColumnHeaders.Add 1, , "1er", 80, lvwColumnLeft
  46.         Me.LISTELISTE1.ColumnHeaders.Add 2, , "2ème", 80, lvwColumnRight
  47.         Me.LISTELISTE1.ColumnHeaders.Add 3, , "3ème", 80, lvwColumnRight
  48.         For y = UBound(Tableau, 1) To LBound(Tableau, 1) Step -1
  49.             Me.LISTELISTE1.ListItems.Add 1, , Tableau(y, 1)
  50.             Me.LISTELISTE1.ListItems(1).SubItems(1) = Tableau(y, 2)
  51.             Me.LISTELISTE1.ListItems(1).SubItems(2) = Tableau(y, 3)
  52.         Next y
  53.     End If
  54. End Sub


 
Chaque feuille contient un tableau de 3 colonnes sur un certains nombre de lignes.
LISTELISTE1 est la Listview dans ma Userform.
 
;)


Message édité par scaryfan le 12-10-2008 à 18:02:24

---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1804637
scaryfan
Apple Inside
Posté le 26-10-2008 à 07:38:33  profilanswer
 

UP  :D  
 
Je souhaiterais améliorer la lisibilité de ma listeview en fonction de certaines informations contenues dans mes tableaux.
Comme décrit ci-avant, j'ai 3 feuilles contenant chacunes un tableau de X lignes sur 3 colonnes.
Dans la 3ème colonne, j'ai une valeur qui est soit 1 soit 2...
En fonction de la valeur de cette colonne, comment faire pour que mes lignes soient de couleurs différentes (rouge pour 1 et vert pour 2 par exemple) ???
Quelqu'un a une idée ???  :whistle:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1804641
scaryfan
Apple Inside
Posté le 26-10-2008 à 08:38:16  profilanswer
 

scaryfan a écrit :

UP  :D  
 
Je souhaiterais améliorer la lisibilité de ma listeview en fonction de certaines informations contenues dans mes tableaux.
Comme décrit ci-avant, j'ai 3 feuilles contenant chacunes un tableau de X lignes sur 3 colonnes.
Dans la 3ème colonne, j'ai une valeur qui est soit 1 soit 2...
En fonction de la valeur de cette colonne, comment faire pour que mes lignes soient de couleurs différentes (rouge pour 1 et vert pour 2 par exemple) ???
Quelqu'un a une idée ???  :whistle:


 
Finalement, j'ai quand même réussi à coloriser les caractères... mais pas la ligne...
Voici le code inséré à la fin de la macro juste avant le "End Sub" :

Code :
  1. For j = LISTELISTE1.ListItems.Count To 1 Step -1
  2.         Set MItem = LISTELISTE1.ListItems(j)
  3.         If MItem.SubItems(2) = 2 Then
  4.             With MItem
  5.                 .Bold = True
  6.                 .ForeColor = RGB(255, 51, 0)
  7.                 .ListSubItems(1).ForeColor = RGB(255, 51, 0)
  8.                 .ListSubItems(2).ForeColor = RGB(255, 51, 0)
  9.                 .ListSubItems(1).Bold = True
  10.                 .ListSubItems(2).Bold = True
  11.             End With
  12.         End If
  13.         If MItem.SubItems(2) = 1 Then
  14.             With MItem
  15.                 .Bold = True
  16.                 .ForeColor = RGB(51, 102, 0)
  17.                 .ListSubItems(1).ForeColor = RGB(51, 102, 0)
  18.                 .ListSubItems(2).ForeColor = RGB(51, 102, 0)
  19.                 .ListSubItems(1).Bold = True
  20.                 .ListSubItems(2).Bold = True
  21.             End With
  22.         End If
  23.     Next j
  24.    
  25.     LISTELISTE1.Refresh



---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1804862
scaryfan
Apple Inside
Posté le 27-10-2008 à 08:49:28  profilanswer
 

:cry:  
 
VBA m'énerve !!!
En fonction de la version Excel, ça marche ou ça ne marche pas...
Quand je lance ma macro avec Excel 2003 SP2, j'ai le message :
"Erreur de compilation : projet ou bibliothèque introuvable" et le débogueur pointe sur : "MItem" sur la ligne 2. (voir post précédent).
 
Quelqu'un aurait-il une soluce ???  ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1804867
scaryfan
Apple Inside
Posté le 27-10-2008 à 09:17:19  profilanswer
 

:p  
 
J'ai trouvé la soluce tout seul !
En fait, selon la version Excel, il faut déclarer ou non la variable au début de la macro...
Sous Excel 2003, il faut la déclarer... et pas sous Excel 2000...  :o


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Utilisation de Listview

 

Sujets relatifs
VBA - accèder au nom de sous-repertoire avec FileSystemeObject[VBA] Fermer Excel et enregistrer
VBA : rompre les liaisons, sauf les liens hypertextesVBA - Souci avec récupération données DTPicker
[VBA] Macro exécutée pas à pas...[VBA] Listview : dernière ligne ajoutée
[VBA] Zone de liste... question alignement colonnes !utilisation base de donnée
[VBA] Erreur d'exécution '-2147417848 (80010108)' 
Plus de sujets relatifs à : [VBA] Utilisation de Listview


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR