Jump to content

Archived

This topic is now archived and is closed to further replies.

Antoni

Error en el método RemoveItem en un listbox

Recommended Posts

Hola  Antoni, lo he probado y me da el mismo error que a ti, con excel 2010, también quiero decirte aunque se que lo habrás probado ya que si cambiamos el listbox de nombre no da el error pero tampoco elimina el elemento seleccionado y que si usamos :

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox1.RemoveItem (ListBox1.ListIndex)
End Sub

 en vez de 

Private Sub ListBox1_Click()
ListBox1.RemoveItem ListBox1.ListIndex
End Sub

funciona perfectamente.

Share this post


Link to post
Share on other sites

Hola Antoni!!

Solo pon en tu codigo

"on error resume next"

o cambia de evento como decia JSDJSD

 en vez de un click que sea doble click, o crea un boton

la explicacion es que no funcionaba por que borraba el numero y como ya no aparecia ya no sabia que borrar y marcaba error, pero si pones

el codigo "on error resume next" brinca a las siguiente intruccion y continua

bye

Error RemoveItem ListBox1.xlsm

Share this post


Link to post
Share on other sites

Hola a todos,

Antoni aqui mi propuesta


Private Sub ListBox1_Click()
Dim var As Integer
   For var = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(var) = True Then _
            ListBox1.Selected(var) = False: ListBox1.RemoveItem var: Exit Sub
   Next
End Sub

Ikanni

Share this post


Link to post
Share on other sites
Guest Cacho R
En 19/11/2017 at 6:38 , Antoni dijo:

La conclusión es que, no se puede eliminar un elemento de un listbox en el evento click.

Mi estimado Amigo Antoni: yo no me apuraría tanto por llegar a esa conclusión. O sea:

- El error se produce porque -y a todos los efectos- hacer "click" en una fila del listbox y "seleccionar" esa fila son sinónimos.

- En tu ejemplo lo que ocurre es:

a) Seleccionas una fila mediante un click en ella.

b ) Se elimina la fila (porque -en realidad- se elimina).

c) Automáticamente pasa a seleccionarse otra fila.

d) Y c)... "dispara" un ciclo interminable desde a).

Es este ciclo "indeseado" lo que termina dándote el error. Tanto es así que si tu list(combo)box "sólo" tuviese un elemento, verías que tras eliminarse "ese elemento" ya no habría nada que seleccionar (no se produciría lo mencionado en el anterior punto c) y el evento click ya no te lanzaría el error.

La solución pasa -entonces- por "deseleccionar" la fila antes de eliminarla. O sea:

With ListBox1
  elemento_seleccionado = .ListIndex
  .ListIndex = -1
  .RemoveItem elemento_seleccionado
End With

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy