USF : problème de suppression du dernier item dans un ListBox
3 réponses
jean plante
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour
ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un
items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème:
Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code:
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Add Item"
CommandButton2.Caption = "Remove Item"
End Sub
Private Sub CommandButton1_Click()
Dim EntryCount As Single
EntryCount = 0
Dim L As Integer
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Private Sub CommandButton2_Click()
Dim L As Integer
Dim EntryCount As Single
EntryCount = 0
If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
ListBox1.Clear
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique sur le CommandButton2, c'est l'item précédent (le choix précédent dans la liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier !!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Bonjour,
Au lieu d'écrire
Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez
Dim i&
i& = ListBox1.ListIndex + 1
If i& = 0 Then i& = 1
Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO
Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour
ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un
items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème:
Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code:
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Add Item"
CommandButton2.Caption = "Remove Item"
End Sub
Private Sub CommandButton1_Click()
Dim EntryCount As Single
EntryCount = 0
Dim L As Integer
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Private Sub CommandButton2_Click()
Dim L As Integer
Dim EntryCount As Single
EntryCount = 0
If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
ListBox1.Clear
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique sur le CommandButton2, c'est l'item précédent (le choix précédent dans la liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier !!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
jean plante
Bonjour,
Malheureusement non, le problème st encore présent, mais j'ai reçue une autre solution.
La voici:
Dim L As Integer Dim EntryCount As Integer Dim NumLigne As Integer EntryCount = 0 NumLigne = ListBox1.ListIndex If NumLigne <> -1 Then ListBox1.RemoveItem NumLigne Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete Shift:=xlUp L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" a écrit dans le message de news:
Bonjour,
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Bonjour,
Malheureusement non, le problème st encore présent, mais j'ai reçue une
autre solution.
La voici:
Dim L As Integer
Dim EntryCount As Integer
Dim NumLigne As Integer
EntryCount = 0
NumLigne = ListBox1.ListIndex
If NumLigne <> -1 Then
ListBox1.RemoveItem NumLigne
Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete
Shift:=xlUp
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de
la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec
une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" <PMO@discussions.microsoft.com> a écrit dans le message de
news:B6623889-358C-43C9-8A44-5C43143D1953@microsoft.com...
Bonjour,
Au lieu d'écrire
Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez
Dim i&
i& = ListBox1.ListIndex + 1
If i& = 0 Then i& = 1
Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO
Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour
ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un
items dans la ListBox1. Les données de la ListBox1 sont dans la
Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur
le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la
Feuille5.
Problème:
Sauf que je lorsque je choisi le dernier item de la liste et que je
clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans
la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du
dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code:
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Add Item"
CommandButton2.Caption = "Remove Item"
End Sub
Private Sub CommandButton1_Click()
Dim EntryCount As Single
EntryCount = 0
Dim L As Integer
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Private Sub CommandButton2_Click()
Dim L As Integer
Dim EntryCount As Single
EntryCount = 0
If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem
ListBox1.ListIndex
ListBox1.Clear
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Malheureusement non, le problème st encore présent, mais j'ai reçue une autre solution.
La voici:
Dim L As Integer Dim EntryCount As Integer Dim NumLigne As Integer EntryCount = 0 NumLigne = ListBox1.ListIndex If NumLigne <> -1 Then ListBox1.RemoveItem NumLigne Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete Shift:=xlUp L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" a écrit dans le message de news:
Bonjour,
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
michdenis
Bonjour Jean,
Essaie ceci, tu places tout le code dans ton module formulaire :
'Dans le haut de ton formulaire, déclaration d'une variable Public Public Rg As Range
EffacerUnItem = Nom d'un bouton de commande du formulaire '--------------------------------- Private Sub EffacerUnItem_Click()
With Me.ComboBox1 Rg.Rows(.ListIndex + 1).Delete (xlUp) End With RemplirCombobox End Sub '---------------------------------
à l'ouverture de ton formulaire : '--------------------------------- Private Sub UserForm_Initialize()
'Procédure pour initialer ton formulaire, 'Tu dois adapter le nom de la feuille, ainsi que 'la plage de cellules selon ton application '---------------------------------------- Sub RemplirCombobox()
Dim Tblo As Variant
With Worksheets("Feuil1") Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row) Tblo = Rg End With
With Me.ComboBox1 .Clear .List = Tblo End With
End Sub '----------------------------------------
Salutations!
"jean plante" a écrit dans le message de news:lZ9gd.22676$ Bonjour,
Malheureusement non, le problème st encore présent, mais j'ai reçue une autre solution.
La voici:
Dim L As Integer Dim EntryCount As Integer Dim NumLigne As Integer EntryCount = 0 NumLigne = ListBox1.ListIndex If NumLigne <> -1 Then ListBox1.RemoveItem NumLigne Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete Shift:=xlUp L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" a écrit dans le message de news:
Bonjour,
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Bonjour Jean,
Essaie ceci, tu places tout le code dans ton module formulaire :
'Dans le haut de ton formulaire, déclaration d'une variable Public
Public Rg As Range
EffacerUnItem = Nom d'un bouton de commande du formulaire
'---------------------------------
Private Sub EffacerUnItem_Click()
With Me.ComboBox1
Rg.Rows(.ListIndex + 1).Delete (xlUp)
End With
RemplirCombobox
End Sub
'---------------------------------
à l'ouverture de ton formulaire :
'---------------------------------
Private Sub UserForm_Initialize()
'Procédure pour initialer ton formulaire,
'Tu dois adapter le nom de la feuille, ainsi que
'la plage de cellules selon ton application
'----------------------------------------
Sub RemplirCombobox()
Dim Tblo As Variant
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
Tblo = Rg
End With
With Me.ComboBox1
.Clear
.List = Tblo
End With
End Sub
'----------------------------------------
Salutations!
"jean plante" <jean.plante@videotron.ca> a écrit dans le message de news:lZ9gd.22676$5t4.142100@wagner.videotron.net...
Bonjour,
Malheureusement non, le problème st encore présent, mais j'ai reçue une
autre solution.
La voici:
Dim L As Integer
Dim EntryCount As Integer
Dim NumLigne As Integer
EntryCount = 0
NumLigne = ListBox1.ListIndex
If NumLigne <> -1 Then
ListBox1.RemoveItem NumLigne
Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete
Shift:=xlUp
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de
la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec
une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" <PMO@discussions.microsoft.com> a écrit dans le message de
news:B6623889-358C-43C9-8A44-5C43143D1953@microsoft.com...
Bonjour,
Au lieu d'écrire
Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez
Dim i&
i& = ListBox1.ListIndex + 1
If i& = 0 Then i& = 1
Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO
Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour
ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un
items dans la ListBox1. Les données de la ListBox1 sont dans la
Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur
le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la
Feuille5.
Problème:
Sauf que je lorsque je choisi le dernier item de la liste et que je
clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans
la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du
dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code:
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Add Item"
CommandButton2.Caption = "Remove Item"
End Sub
Private Sub CommandButton1_Click()
Dim EntryCount As Single
EntryCount = 0
Dim L As Integer
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
Private Sub CommandButton2_Click()
Dim L As Integer
Dim EntryCount As Single
EntryCount = 0
If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem
ListBox1.ListIndex
ListBox1.Clear
L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row
For L = 1 To L
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & Range("a" & L))
Next L
End Sub
'Procédure pour initialer ton formulaire, 'Tu dois adapter le nom de la feuille, ainsi que 'la plage de cellules selon ton application '---------------------------------------- Sub RemplirCombobox()
Dim Tblo As Variant
With Worksheets("Feuil1") Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row) Tblo = Rg End With
With Me.ComboBox1 .Clear .List = Tblo End With
End Sub '----------------------------------------
Salutations!
"jean plante" a écrit dans le message de news:lZ9gd.22676$ Bonjour,
Malheureusement non, le problème st encore présent, mais j'ai reçue une autre solution.
La voici:
Dim L As Integer Dim EntryCount As Integer Dim NumLigne As Integer EntryCount = 0 NumLigne = ListBox1.ListIndex If NumLigne <> -1 Then ListBox1.RemoveItem NumLigne Worksheets("Feuil5").Cells(NumLigne + 1, 1).EntireRow.Delete Shift:=xlUp L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End If
Il s'agit de l'ajout d'une variable (NumLigne) pour remplacer la valeur de la ListBox1.ListIndex
Mais j'ai encore une question, est-ce possible de faire la même chose avec une ListBox ayant plusieurs colones ?
Je te remercie pour tes commentaires.
Jean
"PMO" a écrit dans le message de news:
Bonjour,
Au lieu d'écrire Worksheets("Feuil5").Cells(ListBox1.ListIndex + 1, 1).Delete Shift:=xlUp
écrivez Dim i& i& = ListBox1.ListIndex + 1 If i& = 0 Then i& = 1 Worksheets("Feuil5").Cells(i&, 1).Delete Shift:=xlUp
Est-ce mieux ?
PMO Patrick Morange
Bonjour
J'ai fais un USF dans lequel j'ai un ListBox1, un CommandButton1 pour ajouter les items dans la ListBox1, un CommandButton2 pour supprimer un items dans la ListBox1. Les données de la ListBox1 sont dans la Feuille5 de
mon classeur.
Tout va bien, lorsque je choisi un item de la liste et que je clique sur le
CommandButton2, l'item est supprimé de la ListBox1 et aussi de la Feuille5.
Problème: Sauf que je lorsque je choisi le dernier item de la liste et que je clique
sur le CommandButton2, c'est l'item précédent (le choix précédent dans la
liste) qui est supprimé de la ListBox1 et de la Feuille5 au lieu du dernier
!!! ???
Je vous remercie pour vos commentaires et votre aide.
Code: Private Sub UserForm_Initialize() CommandButton1.Caption = "Add Item" CommandButton2.Caption = "Remove Item" End Sub
Private Sub CommandButton1_Click() Dim EntryCount As Single EntryCount = 0 Dim L As Integer L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub
Private Sub CommandButton2_Click() Dim L As Integer Dim EntryCount As Single EntryCount = 0 If ListBox1.ListIndex <> -1 Then ListBox1.RemoveItem ListBox1.ListIndex
ListBox1.Clear L = Worksheets("Feuil5").Range("A65536").End(xlUp).Row For L = 1 To L EntryCount = EntryCount + 1 ListBox1.AddItem (EntryCount & Range("a" & L)) Next L End Sub