Mission modification de script ... (passage d'une listbox, à une listview) [Résolu]

Signaler
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Salut, bah voilà j'ai besoin d'aide, j'était a la recherche de la réponse a ma question qui était, comment identifié par couleur, différent evenement placer dans une listbox ? là la réponse fut, pour changer la couleur d'une ligne il faut une listview, Ok !!


Donc j'ai placé ma listview problème rien n'est comme avec la listbox et j'avoue avoir un grand mal a trouver comment refaire mon script ... alors pouriez vous m'aidez un peu  ... voici un ptit bout d'mon code, le script ci-dessous et celui utilisant la listbox, suivi de celui qui me fait galérer ... j'ai moult erreur car je ne sais plus comment mis prendre pour remètre en forme via listview                       

avec listbox:



Public Function AddEvent(Description As String, Categorie As Integer)

'recupere le numero du prochain evenement
If (FrmFond.LstEvent.ListCount <> 0) Then
    NumEvent = Left(FrmFond.LstEvent.List(FrmFond.LstEvent.ListIndex), 3)
End If
'incremente le nuemro du prochain
NumEvent = NumEvent + 1

'construction de l'evenement
Even = Format$(NumEvent, "000") & "     " & Now & "     " _
  & Description

'inscriptin de l'evenement
FrmFond.LstEvent.AddItem Even

'selection du dernier element dans la listbox
FrmFond.LstEvent.ListIndex = (FrmFond.LstEvent.ListCount) - 1

'selection de la couleur en fonction de la categorie de l'evenement
Select Case Categorie
    Case -1
        FrmFond.LstEvent.ForeColor = &HFF&
    Case 0
        FrmFond.LstEvent.ForeColor = &H80000008
    Case 1
        FrmFond.LstEvent.ForeColor = &HFF0000

End Select

'suppresion d'un element a partir de Max_Event_list
If (FrmFond.LstEvent.ListCount) - 1 = Max_Event_list Then
    FrmFond.LstEvent.RemoveItem (0)
End If

End Function,

----

(Coloration syntaxique automatique par Kenji)




avec listview:





Public Function AddEvent(Description As String, Categorie As Integer)

'recupere le numero du prochain evenement
If (FrmFond.LstVEvent.ListItems <> 0) Then
    NumEvent = Left(FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index), 3)
End If

'incremente le nuemro du prochain
NumEvent = NumEvent + 1

'construction de l'evenement
Even = Format$(NumEvent, "000") & "     " & Now & "     " _
  & Description

'inscriptin de l'evenement
FrmFond.LstVEvent.ListItems.Add = (Even)

'selection du dernier element dans la listbox
FrmFond.LstVEvent.index = _
  (FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index)) - 1

'selection de la couleur en fonction de la categorie de l'evenement
Select Case Categorie
    Case -1
        FrmFond.LstVEvent.ForeColor = &HFF&
    Case 0
        FrmFond.LstVEvent.ForeColor = &H80000008
    Case 1
        FrmFond.LstVEvent.ForeColor = &HFF0000
End Select

'suppresion d'un element a partir de Max_Event_list
If (FrmFond.LstVEvent.ListItems) - 1 = Max_Event_list Then
    FrmFond.LstVEvent.ListItems.Remove (0)
End If

End Function,

----

(Coloration syntaxique automatique par Kenji)


 MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe

7 réponses

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,


Si ton problème se situe au niveau du changement de coukeur d' une ligne :
 
>  FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index).ForeColor = &HFF&


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />




 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
dans  FrmFond.LstVEvent.ListItems (?) il manque le numéro de la ligne
 
 
>FrmFond.LstVEvent.ListItems (FrmFond.LstVEvent.index)

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

mrc!!
j'ai tjs un prob même plusieur ...

If (FrmFond.LstVEvent.ListItems 
<> 0) Then
    NumEvent = Left(FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index), 3)
End If

 il me dit
Erreur de compilation :
   cette argument n'est pas facultatif

que'est ce je doit en déduire ??

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
dans  If (FrmFond.LstVEvent.ListItems(?) 
<> 0) bien sûr

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

If

 (FrmFond.LstVEvent

.ListItems(FrmFond.LstVEvent.index)


 





<>
 
0

Then


    NumEvent 
=
 Left(FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index), 
3





)

End
 
If





et maintenant il me dit !!

erreur d'execution '343':
Cet objet n'est pas un tableau

que faire !!

de plus j'ai tester en suprimant ce morco de script, et j'ai constaté que les info que je place dans ma listview, ne son pas sous forme de list, mais sous espèce de ptit fichier ... comme si c'était des images ... :-/

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

wé j'ai remarqué j'ai changer ca just après mais ca marche tjs po

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bon , on reprend depuis le début ...


'construction de l'evenement
Even = Format$(NumEvent, "000") & "     " & Now & "     " _
  & Description


'inscriptin de l'evenement,
> OU ? SUR QUELLE LIGNE ?
>incrémente le nombre de lignes de ta listeview de 1
NouvelleLigne=FrmFond.LstVEvent.ListCount + 1



FrmFond.LstVEvent.ListItems.Add NouvelleLigne, , Even     'RESPECTES BIEN LA SYNTHAXE


Par la suite ta ligne sera référencée par FrmFond.LstVEvent.ListItems(NouvelleLigne)
au lieu de FrmFond.LstVEvent.ListItems(FrmFond.LstVEvent.index)


Pour récupèrer le contenu
> de la 1° colonne :sur une ligne X
NumEvent  =Left(FrmFond.LstVEvent.ListItems(X).Text, 3)

>Si le contenu est sur une autre colonne , la troixième par exemple





NumEvent =Left(FrmFond.LstVEvent.ListItems(X).ListSubItems(2).Text, 3

)
Mais dans ce cas il faut que ta listview soit de type Report





<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />