Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
Bonjour , ai un soucis avec le code suivant, il est censé geré
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
Bonjour , ai un soucis avec le code suivant, il est censé geré
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
Bonjour , ai un soucis avec le code suivant, il est censé geré
d'une liste ( ce qu'il fait très bien) le problème vient de manière
alétaoire une fois tous X click
le problème qui survient est : plustôt que de passer à l'index suivant il
saute 2 index
Ai essayé de réduire ce code à 2 lignes pour tester
IndexPrécédent= lstTest.listindex
listTest1.removeitem (lstTest.ListIndex)
lstTest.listIndex = Indexprécédent
et bien le problème est le même!!!!!!!!!!
VB6 à un bug connu concernant les listes?
Merci de votre aide
Pascal
A tout hasard voici mon code:
========================================== > Private Sub cmEffacer_Click()
Dim indexPrécédent As Integer
Dim Ecart As Integer
With Me.LstTest
'si la liste est vide il n'y a rien à effacer...
If .ListCount = 0 Then
GoTo suivant
Else
'la liste contient au moins 1 élement
'enlève l'élement selectionné
indexPrécédent = .ListIndex
Ecart = (.ListCount - 1) - indexPrécédent
.RemoveItem (.ListIndex)
'repositionnement de l'index
'la liste est-elle vide après effacement de l'item?
If .ListCount = 0 Then
'envoie un message
lblTitre.Caption = Msg(3)
GoTo suivant
Else
' si on est sur le dernier item de la liste
If .ListCount = 1 Then
.ListIndex = 0
Else
'sinon on se repositionne sur l'ancien index
'si on n'est pas au dernier
If Ecart = 0 Then
.ListIndex = indexPrécédent - 1
Else
.ListIndex = indexPrécédent
End If 'Ecart
End If 'listcount =1
End If 'listcount = 0
End If
End With
suivant:
'affiche le nombre d'item
lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
End Sub
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR lstTest
> lstTest.listIndex = Indexprécédent
ca va planter
Hello,
Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
suppression alors que tu utilises l'objet "lstTest" pour récupérer
Lorsque tu supprime le dernier élément de la liste, il y a une erreur
(dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
simplement la sélection ?
De plus, si aucun élément n'est sélectionné et si ta procédure est
ca va planter.
A ta place, je ferait simple.. Enfin si ca convient au mode de
fonctionnement de ton "cahier des charges".
If (lstTest.ListIndex >= 0) Then
lstTest.RemoveItem (lstTest.ListIndex)
End If
"Pascal" a écrit dans le message de
news:
> Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR lstTest
> lstTest.listIndex = Indexprécédent
ca va planter
Hello,
Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
suppression alors que tu utilises l'objet "lstTest" pour récupérer
Lorsque tu supprime le dernier élément de la liste, il y a une erreur
(dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
simplement la sélection ?
De plus, si aucun élément n'est sélectionné et si ta procédure est
ca va planter.
A ta place, je ferait simple.. Enfin si ca convient au mode de
fonctionnement de ton "cahier des charges".
If (lstTest.ListIndex >= 0) Then
lstTest.RemoveItem (lstTest.ListIndex)
End If
"Pascal" <inconnu@hotmail.com> a écrit dans le message de
news:uUiVSj2zGHA.1268@TK2MSFTNGP02.phx.gbl...
> Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR lstTest
> lstTest.listIndex = Indexprécédent
ca va planter
Hello,
Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
suppression alors que tu utilises l'objet "lstTest" pour récupérer
Lorsque tu supprime le dernier élément de la liste, il y a une erreur
(dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
simplement la sélection ?
De plus, si aucun élément n'est sélectionné et si ta procédure est
ca va planter.
A ta place, je ferait simple.. Enfin si ca convient au mode de
fonctionnement de ton "cahier des charges".
If (lstTest.ListIndex >= 0) Then
lstTest.RemoveItem (lstTest.ListIndex)
End If
"Pascal" a écrit dans le message de
news:
> Bonjour , ai un soucis avec le code suivant, il est censé geré
l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
Bonjour,
Tiens, ça, ça devrait marcher:
Sub Command1_Click() ' suppression index
Dim ou As Integer
On Error Resume Next
ou = List1.ListIndex
List1.RemoveItem ou
List1.Refresh
List1.ListIndex = ou ' index nouveau = ancien
End Sub
--
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Pascal" a écrit dans le message de news:
> Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
Bonjour,
Tiens, ça, ça devrait marcher:
Sub Command1_Click() ' suppression index
Dim ou As Integer
On Error Resume Next
ou = List1.ListIndex
List1.RemoveItem ou
List1.Refresh
List1.ListIndex = ou ' index nouveau = ancien
End Sub
--
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Pascal" <inconnu@hotmail.com> a écrit dans le message de news:
uUiVSj2zGHA.1268@TK2MSFTNGP02.phx.gbl...
> Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
Bonjour,
Tiens, ça, ça devrait marcher:
Sub Command1_Click() ' suppression index
Dim ou As Integer
On Error Resume Next
ou = List1.ListIndex
List1.RemoveItem ou
List1.Refresh
List1.ListIndex = ou ' index nouveau = ancien
End Sub
--
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Pascal" a écrit dans le message de news:
> Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> d'une liste ( ce qu'il fait très bien) le problème vient de manière
> alétaoire une fois tous X click
> le problème qui survient est : plustôt que de passer à l'index suivant
> saute 2 index
> Ai essayé de réduire ce code à 2 lignes pour tester
> IndexPrécédent= lstTest.listindex
> listTest1.removeitem (lstTest.ListIndex)
> lstTest.listIndex = Indexprécédent
> et bien le problème est le même!!!!!!!!!!
> VB6 à un bug connu concernant les listes?
> Merci de votre aide
> Pascal
>
>
> A tout hasard voici mon code:
> ========================================== > > Private Sub cmEffacer_Click()
> Dim indexPrécédent As Integer
> Dim Ecart As Integer
>
> With Me.LstTest
>
> 'si la liste est vide il n'y a rien à effacer...
> If .ListCount = 0 Then
> GoTo suivant
> Else
> 'la liste contient au moins 1 élement
> 'enlève l'élement selectionné
> indexPrécédent = .ListIndex
> Ecart = (.ListCount - 1) - indexPrécédent
> .RemoveItem (.ListIndex)
>
>
> 'repositionnement de l'index
> 'la liste est-elle vide après effacement de l'item?
> If .ListCount = 0 Then
> 'envoie un message
> lblTitre.Caption = Msg(3)
> GoTo suivant
> Else
> ' si on est sur le dernier item de la liste
> If .ListCount = 1 Then
> .ListIndex = 0
> Else
> 'sinon on se repositionne sur l'ancien index
> 'si on n'est pas au dernier
> If Ecart = 0 Then
> .ListIndex = indexPrécédent - 1
> Else
> .ListIndex = indexPrécédent
> End If 'Ecart
> End If 'listcount =1
> End If 'listcount = 0
> End If
>
> End With
> suivant:
> 'affiche le nombre d'item
> lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> End Sub
>
hello Thierry,
merci pour ta réponse
mais dans mon code je n'utilise pas l'objet list1???
sauf dans ceci ou j'expliquai que j'avais essayé de réduire et ou j'ai
une erreur de retranscription
le code réel est plus loin
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR
au lieu de listTest1
> > lstTest.listIndex = Indexprécédent
======= > > De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter
euh non pas du tout! soit la liste est vide et rien n'est exécuté, soit
contient au minimum 1 élément et l'index est d'office postionné sur le
premier! au remplissage de la liste
Mon code fonctionne très bien (pas sorcier comme code non plus) mais
survient quand on l'utilise à répétition toutes les 4 à 5 secondes et
les X fois (alétoire)
je cherche, je cherche
merci
Pascal
a écrit dans le message de
news:
> Hello,
> Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
> suppression alors que tu utilises l'objet "lstTest" pour récupérer
l'indice.
> Lorsque tu supprime le dernier élément de la liste, il y a une erreur
> (dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
>
> Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
> simplement la sélection ?
> De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter.
>
> A ta place, je ferait simple.. Enfin si ca convient au mode de
> fonctionnement de ton "cahier des charges".
> If (lstTest.ListIndex >= 0) Then
> lstTest.RemoveItem (lstTest.ListIndex)
> End If
>
> "Pascal" a écrit dans le message de
> news:
> > Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> > d'une liste ( ce qu'il fait très bien) le problème vient de manière
> > alétaoire une fois tous X click
> > le problème qui survient est : plustôt que de passer à l'index suivant
il
> > saute 2 index
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex)
> > lstTest.listIndex = Indexprécédent
> > et bien le problème est le même!!!!!!!!!!
> > VB6 à un bug connu concernant les listes?
> > Merci de votre aide
> > Pascal
> >
> >
> > A tout hasard voici mon code:
> > ========================================== > > > Private Sub cmEffacer_Click()
> > Dim indexPrécédent As Integer
> > Dim Ecart As Integer
> >
> > With Me.LstTest
> >
> > 'si la liste est vide il n'y a rien à effacer...
> > If .ListCount = 0 Then
> > GoTo suivant
> > Else
> > 'la liste contient au moins 1 élement
> > 'enlève l'élement selectionné
> > indexPrécédent = .ListIndex
> > Ecart = (.ListCount - 1) - indexPrécédent
> > .RemoveItem (.ListIndex)
> >
> >
> > 'repositionnement de l'index
> > 'la liste est-elle vide après effacement de l'item?
> > If .ListCount = 0 Then
> > 'envoie un message
> > lblTitre.Caption = Msg(3)
> > GoTo suivant
> > Else
> > ' si on est sur le dernier item de la liste
> > If .ListCount = 1 Then
> > .ListIndex = 0
> > Else
> > 'sinon on se repositionne sur l'ancien index
> > 'si on n'est pas au dernier
> > If Ecart = 0 Then
> > .ListIndex = indexPrécédent - 1
> > Else
> > .ListIndex = indexPrécédent
> > End If 'Ecart
> > End If 'listcount =1
> > End If 'listcount = 0
> > End If
> >
> > End With
> > suivant:
> > 'affiche le nombre d'item
> > lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> > End Sub
> >
>
>
hello Thierry,
merci pour ta réponse
mais dans mon code je n'utilise pas l'objet list1???
sauf dans ceci ou j'expliquai que j'avais essayé de réduire et ou j'ai
une erreur de retranscription
le code réel est plus loin
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR
au lieu de listTest1
> > lstTest.listIndex = Indexprécédent
======= > > De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter
euh non pas du tout! soit la liste est vide et rien n'est exécuté, soit
contient au minimum 1 élément et l'index est d'office postionné sur le
premier! au remplissage de la liste
Mon code fonctionne très bien (pas sorcier comme code non plus) mais
survient quand on l'utilise à répétition toutes les 4 à 5 secondes et
les X fois (alétoire)
je cherche, je cherche
merci
Pascal
<thierry@free> a écrit dans le message de
news:Ov9GeC4zGHA.5048@TK2MSFTNGP05.phx.gbl...
> Hello,
> Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
> suppression alors que tu utilises l'objet "lstTest" pour récupérer
l'indice.
> Lorsque tu supprime le dernier élément de la liste, il y a une erreur
> (dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
>
> Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
> simplement la sélection ?
> De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter.
>
> A ta place, je ferait simple.. Enfin si ca convient au mode de
> fonctionnement de ton "cahier des charges".
> If (lstTest.ListIndex >= 0) Then
> lstTest.RemoveItem (lstTest.ListIndex)
> End If
>
> "Pascal" <inconnu@hotmail.com> a écrit dans le message de
> news:uUiVSj2zGHA.1268@TK2MSFTNGP02.phx.gbl...
> > Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> > d'une liste ( ce qu'il fait très bien) le problème vient de manière
> > alétaoire une fois tous X click
> > le problème qui survient est : plustôt que de passer à l'index suivant
il
> > saute 2 index
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex)
> > lstTest.listIndex = Indexprécédent
> > et bien le problème est le même!!!!!!!!!!
> > VB6 à un bug connu concernant les listes?
> > Merci de votre aide
> > Pascal
> >
> >
> > A tout hasard voici mon code:
> > ========================================== > > > Private Sub cmEffacer_Click()
> > Dim indexPrécédent As Integer
> > Dim Ecart As Integer
> >
> > With Me.LstTest
> >
> > 'si la liste est vide il n'y a rien à effacer...
> > If .ListCount = 0 Then
> > GoTo suivant
> > Else
> > 'la liste contient au moins 1 élement
> > 'enlève l'élement selectionné
> > indexPrécédent = .ListIndex
> > Ecart = (.ListCount - 1) - indexPrécédent
> > .RemoveItem (.ListIndex)
> >
> >
> > 'repositionnement de l'index
> > 'la liste est-elle vide après effacement de l'item?
> > If .ListCount = 0 Then
> > 'envoie un message
> > lblTitre.Caption = Msg(3)
> > GoTo suivant
> > Else
> > ' si on est sur le dernier item de la liste
> > If .ListCount = 1 Then
> > .ListIndex = 0
> > Else
> > 'sinon on se repositionne sur l'ancien index
> > 'si on n'est pas au dernier
> > If Ecart = 0 Then
> > .ListIndex = indexPrécédent - 1
> > Else
> > .ListIndex = indexPrécédent
> > End If 'Ecart
> > End If 'listcount =1
> > End If 'listcount = 0
> > End If
> >
> > End With
> > suivant:
> > 'affiche le nombre d'item
> > lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> > End Sub
> >
>
>
hello Thierry,
merci pour ta réponse
mais dans mon code je n'utilise pas l'objet list1???
sauf dans ceci ou j'expliquai que j'avais essayé de réduire et ou j'ai
une erreur de retranscription
le code réel est plus loin
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex) ' IL FAUT LIRE BIEN SUR
au lieu de listTest1
> > lstTest.listIndex = Indexprécédent
======= > > De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter
euh non pas du tout! soit la liste est vide et rien n'est exécuté, soit
contient au minimum 1 élément et l'index est d'office postionné sur le
premier! au remplissage de la liste
Mon code fonctionne très bien (pas sorcier comme code non plus) mais
survient quand on l'utilise à répétition toutes les 4 à 5 secondes et
les X fois (alétoire)
je cherche, je cherche
merci
Pascal
a écrit dans le message de
news:
> Hello,
> Dans ta procedure d'effacement, tu utilise l'objet "listTest1" pour la
> suppression alors que tu utilises l'objet "lstTest" pour récupérer
l'indice.
> Lorsque tu supprime le dernier élément de la liste, il y a une erreur
> (dernier indice = 4, si tu le supprimes, alors le dernier indice est 3).
>
> Ne serait-il pas plus "logique" qu'en cas de suppression, d'oter tout
> simplement la sélection ?
> De plus, si aucun élément n'est sélectionné et si ta procédure est
exécuté..
> ca va planter.
>
> A ta place, je ferait simple.. Enfin si ca convient au mode de
> fonctionnement de ton "cahier des charges".
> If (lstTest.ListIndex >= 0) Then
> lstTest.RemoveItem (lstTest.ListIndex)
> End If
>
> "Pascal" a écrit dans le message de
> news:
> > Bonjour , ai un soucis avec le code suivant, il est censé geré
> l'effacement
> > d'une liste ( ce qu'il fait très bien) le problème vient de manière
> > alétaoire une fois tous X click
> > le problème qui survient est : plustôt que de passer à l'index suivant
il
> > saute 2 index
> > Ai essayé de réduire ce code à 2 lignes pour tester
> > IndexPrécédent= lstTest.listindex
> > listTest1.removeitem (lstTest.ListIndex)
> > lstTest.listIndex = Indexprécédent
> > et bien le problème est le même!!!!!!!!!!
> > VB6 à un bug connu concernant les listes?
> > Merci de votre aide
> > Pascal
> >
> >
> > A tout hasard voici mon code:
> > ========================================== > > > Private Sub cmEffacer_Click()
> > Dim indexPrécédent As Integer
> > Dim Ecart As Integer
> >
> > With Me.LstTest
> >
> > 'si la liste est vide il n'y a rien à effacer...
> > If .ListCount = 0 Then
> > GoTo suivant
> > Else
> > 'la liste contient au moins 1 élement
> > 'enlève l'élement selectionné
> > indexPrécédent = .ListIndex
> > Ecart = (.ListCount - 1) - indexPrécédent
> > .RemoveItem (.ListIndex)
> >
> >
> > 'repositionnement de l'index
> > 'la liste est-elle vide après effacement de l'item?
> > If .ListCount = 0 Then
> > 'envoie un message
> > lblTitre.Caption = Msg(3)
> > GoTo suivant
> > Else
> > ' si on est sur le dernier item de la liste
> > If .ListCount = 1 Then
> > .ListIndex = 0
> > Else
> > 'sinon on se repositionne sur l'ancien index
> > 'si on n'est pas au dernier
> > If Ecart = 0 Then
> > .ListIndex = indexPrécédent - 1
> > Else
> > .ListIndex = indexPrécédent
> > End If 'Ecart
> > End If 'listcount =1
> > End If 'listcount = 0
> > End If
> >
> > End With
> > suivant:
> > 'affiche le nombre d'item
> > lblNbrTest.Caption = Me.LstTest.ListCount & " Titres"
> > End Sub
> >
>
>