![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Barbatruc
|
Bonjour à toutes et à Tous
je me suis interressé aux ListView et ce présente à moi un problème que je n'arrive pas a résoudre j'ai un Userform avec une ListView j'aimerai inclure une icon dans la Colonne 1 et j'ai un message Code:
Private Sub UserForm_Initialize() Rem On place le Listview en mode rapport Rem qui permet de créer des colonnes LV_Trains.View = lvwReport Dim imgX As ListImage Dim wItem As ListItem Me.ImageList1.ListImages.Clear Me.ImageList1.ImageHeight = 16 Me.ImageList1.ImageWidth = 16 Set imgX = Me.ImageList1.ListImages.Add(, , LoadPicture(ThisWorkbook.Path & '\\' & 'printer.ico')) Rem Création des colonnes Call LV_Trains.ColumnHeaders.Add(, , 'Départ', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Arrivée', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4) '----------- Rem Ajout de la première ligne Set wItem = Me.LV_Trains.ListItems.Add(, , 'Chambéry',1,1) wItem.SubItems(1) = '06:00' wItem.SubItems(2) = 'Paris' wItem.SubItems(3) = '09:15' Rem Ajout de la deuxième ligne Set wItem = LV_Trains.ListItems.Add(, , 'Chambéry') wItem.SubItems(1) = '15:30' wItem.SubItems(2) = 'Lyon' wItem.SubItems(3) = '17:15' End Sub au niveau de cette ligne inclure l'icone d'index 1 de ma ListImage1 dans la Colonne 1(0)de ma listView Set wItem = Me.LV_Trains.ListItems.Add(, , 'Chambéry',1,1) j'ai un message ImageList doit être initialisé avant de pouvoir être utilisé alors que je peux utiliser cette image dans la procèdure suivante Code:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CommandButton Then
Ctrl.MousePointer = 99
Set Ctrl.MouseIcon = Me.ImageList1.ListImages(1).Picture
End If
Next
End Sub
si quelqu'un peut me dire ou le Bas Blesse et m'indiquer la marche a suivre pour résoudre ce problème(un petit exemple ) Merci D'avance Message édité par: Chti160, à: 20/10/2005 12:54 |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: mai 2005
Messages: 589
|
Salut Jean-Marie, le forum,
Tu peux pas poser une question plus facile pour commencer...lol Si tu remplaces 'Chambéry' par 'Brunoy' et tu colles ton avatar à la place de ton icone number one... je suppose que çà va toujours planter...lol... T'en as pas assez de te compliquer la vie, il faut que tu viennes compliquer la nôtre avec tes histoires de trains qui se croisent... Bon, c'était juste pour te dire un p'tit bonjour au passage (du train pour Chambéry...) Allez, tant que le message d'erreur ne vient pas de la SNCF, t'as de l'espoir... Ahhh...c'est toujours passionnant ces histoires de trains, de tête de train et d'arrière train...lol
__________________
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
|
Salut
arfff je vois un message et c'est qui???? c'est Guy qui vient me parler du boulot tu vas bien j'espère ,j'essaie d'apprendre mais c'est pas évident malgré mes nombreuses recherches je ne comprends pas pourquoi, je n'y arrive pas Lol Enfin j'attends avec impatience la visite de Michel XLD pour qu'il me sorte de cette impasse Lol j'ai consulté sa Page WiKi mais bon A plus Guy et bonne fin de Journée |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 714
|
bonjour chers Jean-Marie et Guy
Jean-Marie : tu m'apelles , j'accoures ... j'espere que cette adaptation répondra à ta demande (testé avec Excel2002 et WinXP) je te laisse decouvrir les modifications Private Sub UserForm_Initialize() Dim imgX As ListImage Dim wItem As ListItem LV_Trains.View = lvwReport Me.ImageList1.ListImages.Clear Me.ImageList1.ImageHeight = 16 Me.ImageList1.ImageWidth = 16 Set imgX = _ Me.ImageList1.ListImages.Add(, 'AA', LoadPicture(ThisWorkbook.Path & '\\\\\\\\' & 'printer.ico')) LV_Trains.SmallIcons = ImageList1 Call LV_Trains.ColumnHeaders.Add(, , 'Départ', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Arrivée', LV_Trains.Width / 4) Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4) '----------- Rem Ajout de la première ligne Set wItem = Me.LV_Trains.ListItems.Add(, , 'Chambéry') wItem.SubItems(1) = '06:00' wItem.SubItems(2) = 'Paris' wItem.SubItems(3) = '09:15' wItem.SmallIcon = 'AA' Rem Ajout de la deuxième ligne Set wItem = LV_Trains.ListItems.Add(, , 'Chambéry') wItem.SubItems(1) = '15:30' wItem.SubItems(2) = 'Lyon' wItem.SubItems(3) = '17:15' wItem.SmallIcon = 'AA' End Sub bonne soiree MichelXld |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
|
Salut Michel
tout d'abord merci de veiller et de répondre à ces compléments d'infos je suis aller sur ta page WiKi j'ai beaucoup appris je viens de tester et ça marche j'ai testé en faisant varier la valeur de LV_Trains.View = 0 to 3 peut on adapter ce code pour que cet Icone se situe dans l'entête de Colonne aurais tu un syte à me conseiller pour en apprendre plus sur ce type de Control? Merci par Avance |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 714
|
rebonsoir Jean-Marie
je ne sais pas s'il est possible de placer un icone dans les entetes de colonne malheureusement je ne connais pas de site qui traite particulierement des ListView bonne soiree MichelXld |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Barbatruc
|
bonsoir MichelXLD
bonsoir le fil sans prétention mis ici on partage donc Michel je me permet puisque tu ne savais si l'on pouvait mettre des icones dans les ent^tes de colonnes eh bien OUI j'ai cherché et j'ai adapté ce que j'ai trouvé je me permettrai peut être de mettre un petit fichier exemple qui reprendra ces diverses possibilités d'adaptation des colonnes et autres entêtes de colonne. Donc pour Info Dim imgX As ListImage après avoir approvisionné le ListImage For i = 1 To 4 Set imgX = ImageList1.ListImages.Add(, 'AA' & i, LoadPicture(ThisWorkbook.Path & '\\' & 'img' & i & '.ico')) Next il faut lier les entêtes de colonne au listImage Set LV_Trains.ColumnHeaderIcons = ImageList1 'ici rempli les entêtes de colonne avec une îcones 'AA4'ou 'AA3' 'sans texte en colonne 1 Call LV_Trains.ColumnHeaders.Add(, , , LV_Trains.Width / 4, , 'AA4') 'sans îcone en colonne 2 Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4) 'avec texte et îcone en colonne 3 Call LV_Trains.ColumnHeaders.Add(, , 'Arrivée', LV_Trains.Width / 4, , 'AA3') Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4, lvwColumnCenter) une autre méthode en colonne 1 on colle l'îcone d'index 2 LV_Trains.ColumnHeaders(1).Icon = 2 en espèrant avoir fait avancer le sujet Lol A Bientôt Message édité par: Chti160, à: 22/10/2005 22:24 |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Barbatruc
|
Salut MichelXLD
bonjour le Forum bonjour le Fil Michel je suis très touché car tes pages Wiki m'apprennent beaucoup et c'est Ok pour compléter ce que tu as déjà fait je vais comme je te l'ai dit mettre un fichier qui reprendra ce que j'ai trouvé concernant les ListView ce sont des adaptations de ce que j'ai trouvé sur le net(Merci aux personnes dont je n'ai pas relevées les noms) par exemple: Centrer une colonne de la Listeview Call LV_Trains.ColumnHeaders.Add(, , 'Heure', LV_Trains.Width / 4, lvwColumnCenter) ajuster la Largeur des colonnes à celle du Textevia une fonction RefreshLV LV_Trains dans un Module Standart Code:
Option Explicit
Private Declare Function SendMessage Lib 'user32' Alias 'SendMessageA' (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function LockWindowUpdate Lib 'user32' (ByVal hwndLock As Long) As Long
Private Const LVM_FIRST = &H1000
Private Const LVM_SETCOLUMNWIDTH = LVM_FIRST + 30
Private Const LVSCW_AUTOSIZE = -1
Code:
Sub RefreshLV(LV_Trains As ListView)
LockWindowUpdate LV_Trains.Hwnd
Call SendMessage(LV_Trains.Hwnd, LVM_SETCOLUMNWIDTH, 0, LVSCW_AUTOSIZE)
If LV_Trains.ColumnHeaders(1).Width < LV_Trains.Width Then
If LV_Trains.Height > (LV_Trains.ListItems.Count * 270) Then
LV_Trains.ColumnHeaders(1).Width = LV_Trains.Width - 80
Else
If LV_Trains.ColumnHeaders(1).Width < LV_Trains.Width - 320 Then
LV_Trains.ColumnHeaders(1).Width = LV_Trains.Width - 320
End If
End If
End If
LockWindowUpdate 0&
End Sub
Code:
Private Sublv_ColumnClick (ByVal ColumnHeader As MSComctlLib.ColumnHeader)
LV_Trains.SortKey = ColumnHeader.Index - 1
LV_Trains.Sorted = True
LV_Trains.SortOrder = lvwAscending
End Sub
Code:
Set subItm = wItem.ListSubItems.Add(, , '15:30')
subItm.ForeColor = vbRed
Bonne Journée |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|