Supprimer des Item dans une listbox a choix multiple
3 réponses
Bob
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer
Cette listbox a comme rowsource une plage d'une feuille de calcul.
Je selectionne un item dans la liste, je clique sur supprimer et ma macro va
supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier
Item est supprimé ma listebox raffraichit et les autres sélections
disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click()
Dim i As Integer
Dim sht As Worksheet
Application.ScreenUpdating = False
'--------------->Je fais une sélection multiple.
Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN",
"JUILLET", "AOUT", _
"SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select
'-------------->Le classeur janvier est actif
Sheets("JANVIER").Activate
i = 0
'------------->Avec ma listbox
With Me.lstbx_agt
'------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item
je test si l'item est sélectionné. Si oui j'efface sinon suivant
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Rows(i + 10 & ":" & i + 10).Select
'MsgBox (i)
Selection.Delete Shift:=xlUp
i = -1
End If
Next i
End With
Application.ScreenUpdating = True
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
Youky
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme boucle on supprime Youky
Dim lig(1000) As Boolean For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(k + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i + 10).Delete Next End With
"Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True
End Sub
Cordialement
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme
boucle on supprime
Youky
Dim lig(1000) As Boolean
For i = 0 To .ListCount - 1
If .Selected(i) = True Then lig(k + 1) = True
Next i
For i = .ListCount To 1 Step -1
If lig(i) = True Then Rows(i + 10).Delete
Next
End With
"Bob" <bob@inconnu.fr> a écrit dans le message de news:
ers7ZHzVGHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer
Cette listbox a comme rowsource une plage d'une feuille de calcul.
Je selectionne un item dans la liste, je clique sur supprimer et ma macro
va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier
Item est supprimé ma listebox raffraichit et les autres sélections
disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click()
Dim i As Integer
Dim sht As Worksheet
Application.ScreenUpdating = False
'--------------->Je fais une sélection multiple.
Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN",
"JUILLET", "AOUT", _
"SEPTEMBRE", "OCTOBRE", "NOVEMBRE",
"DECEMBRE")).Select
'-------------->Le classeur janvier est actif
Sheets("JANVIER").Activate
i = 0
'------------->Avec ma listbox
With Me.lstbx_agt
'------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item
je test si l'item est sélectionné. Si oui j'efface sinon suivant
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Rows(i + 10 & ":" & i + 10).Select
'MsgBox (i)
Selection.Delete Shift:=xlUp
i = -1
End If
Next i
End With
Application.ScreenUpdating = True
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme boucle on supprime Youky
Dim lig(1000) As Boolean For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(k + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i + 10).Delete Next End With
"Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True
End Sub
Cordialement
Youky
Rectif........(message précédant) Dim lig(1000) As Boolean With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(i + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i).Delete Next .ListFillRange = "A1:A" & [A65536].End(3).Row' selon la page et la colonne End With "Youky" a écrit dans le message de news:
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme boucle on supprime Youky
Dim lig(1000) As Boolean For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(k + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i + 10).Delete Next End With
"Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True
End Sub
Cordialement
Rectif........(message précédant)
Dim lig(1000) As Boolean
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then lig(i + 1) = True
Next i
For i = .ListCount To 1 Step -1
If lig(i) = True Then Rows(i).Delete
Next
.ListFillRange = "A1:A" & [A65536].End(3).Row' selon la page et la colonne
End With
"Youky" <bruno.jeune@wanadoo.fr> a écrit dans le message de news:
uG9s5A0VGHA.2492@TK2MSFTNGP11.phx.gbl...
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme
boucle on supprime
Youky
Dim lig(1000) As Boolean
For i = 0 To .ListCount - 1
If .Selected(i) = True Then lig(k + 1) = True
Next i
For i = .ListCount To 1 Step -1
If lig(i) = True Then Rows(i + 10).Delete
Next
End With
"Bob" <bob@inconnu.fr> a écrit dans le message de news:
ers7ZHzVGHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton
supprimer
Cette listbox a comme rowsource une plage d'une feuille de calcul.
Je selectionne un item dans la liste, je clique sur supprimer et ma macro
va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le
premier Item est supprimé ma listebox raffraichit et les autres
sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click()
Dim i As Integer
Dim sht As Worksheet
Application.ScreenUpdating = False
'--------------->Je fais une sélection multiple.
Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN",
"JUILLET", "AOUT", _
"SEPTEMBRE", "OCTOBRE", "NOVEMBRE",
"DECEMBRE")).Select
'-------------->Le classeur janvier est actif
Sheets("JANVIER").Activate
i = 0
'------------->Avec ma listbox
With Me.lstbx_agt
'------------->Pour chaque Item de ma listbox jusqu'au nombre total
d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Rows(i + 10 & ":" & i + 10).Select
'MsgBox (i)
Selection.Delete Shift:=xlUp
i = -1
End If
Next i
End With
Application.ScreenUpdating = True
Rectif........(message précédant) Dim lig(1000) As Boolean With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(i + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i).Delete Next .ListFillRange = "A1:A" & [A65536].End(3).Row' selon la page et la colonne End With "Youky" a écrit dans le message de news:
Bonsoir, essaie ceci qui fait un tablo en 1ere boucle ensuite en 2eme boucle on supprime Youky
Dim lig(1000) As Boolean For i = 0 To .ListCount - 1 If .Selected(i) = True Then lig(k + 1) = True Next i For i = .ListCount To 1 Step -1 If lig(i) = True Then Rows(i + 10).Delete Next End With
"Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True
End Sub
Cordialement
Bob
Merci pour le tuyau, avec quelques modifs ça marche du tonnerre. "Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True
End Sub
Cordialement
Merci pour le tuyau, avec quelques modifs ça marche du tonnerre.
"Bob" <bob@inconnu.fr> a écrit dans le message de news:
ers7ZHzVGHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer
Cette listbox a comme rowsource une plage d'une feuille de calcul.
Je selectionne un item dans la liste, je clique sur supprimer et ma macro
va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier
Item est supprimé ma listebox raffraichit et les autres sélections
disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click()
Dim i As Integer
Dim sht As Worksheet
Application.ScreenUpdating = False
'--------------->Je fais une sélection multiple.
Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN",
"JUILLET", "AOUT", _
"SEPTEMBRE", "OCTOBRE", "NOVEMBRE",
"DECEMBRE")).Select
'-------------->Le classeur janvier est actif
Sheets("JANVIER").Activate
i = 0
'------------->Avec ma listbox
With Me.lstbx_agt
'------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item
je test si l'item est sélectionné. Si oui j'efface sinon suivant
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Rows(i + 10 & ":" & i + 10).Select
'MsgBox (i)
Selection.Delete Shift:=xlUp
i = -1
End If
Next i
End With
Application.ScreenUpdating = True
Merci pour le tuyau, avec quelques modifs ça marche du tonnerre. "Bob" a écrit dans le message de news:
Bonjour à toutes et tous,
J'affiche un userform avec une listbox multiselect, et un bouton supprimer Cette listbox a comme rowsource une plage d'une feuille de calcul. Je selectionne un item dans la liste, je clique sur supprimer et ma macro va supprimer la bonne ligne sur ma feuille de calcul. Ca fonctionne bien.
Mon Pb est le suivant :
Je ne peut pas supprimer plusieurs Items à la fois, car dés que le premier Item est supprimé ma listebox raffraichit et les autres sélections disparaissent.
Je vous met le code ci-dessous.
Private Sub Btn_Sup_Click() Dim i As Integer Dim sht As Worksheet Application.ScreenUpdating = False '--------------->Je fais une sélection multiple. Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", _ "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select '-------------->Le classeur janvier est actif Sheets("JANVIER").Activate i = 0 '------------->Avec ma listbox With Me.lstbx_agt '------------->Pour chaque Item de ma listbox jusqu'au nombre total d'item je test si l'item est sélectionné. Si oui j'efface sinon suivant For i = 0 To .ListCount - 1 If .Selected(i) = True Then Rows(i + 10 & ":" & i + 10).Select 'MsgBox (i) Selection.Delete Shift:=xlUp i = -1 End If Next i End With Application.ScreenUpdating = True