Borrar de listbox en multiselección y hoja de excel, datos seleccionados

Requiero su ayuda para hacer que en un formulario de excel 2007 pueda borrar tanto de un listbox como de la hoja de calculo, varios datos seleccionados en dicho listbox el cual se encuentra con la propiedad multiselecmulti. Además requiero que la información borrada del listbox y la hoja de cálculo me la copie en una nueva hoja.

He intentado el siguiente código pero solo me funciona cuando el listbox tiene la propiedad en single:

Private Sub CommandButton1_Click()

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = TextBox1

Dim valor, final As String

valor = ListBox1.Value

Set busca = Sheets("hoja1").Range("a1:a" & Sheets("hoja1").Range("a65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)

If Not busca Is Nothing Then

busca.EntireRow.Copy

ActiveSheet.Paste

End If

End Sub

Aquí Me borra de en uno los datos del listbox y de la hoja de cálculo y me los copia cada dato en una nueva hoja. Yo necesito que los que seleccione me los corte dela hoja original y me los envíe a la nueva hoja.

1 Respuesta

Respuesta
1

Intenta con lo siguiente, para leer todos los valores seleccionados en el listbox con propiedad multiselect.

Private Sub CommandButton1_Click()'lee un listbox multiselect'Por.damSheets.Add After:=Sheets(Sheets.Count)ActiveSheet.Name = TextBox1 Dim valor, final As String     With ListBox1        For li = 0 To .ListCount - 1            If .Selected(li) Then                valor = ListBox1.List(li)                Set busca = Sheets("hoja1").Range("a1:a" & Sheets("hoja1").Range("a65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)                If Not busca Is Nothing Then                    busca.EntireRow.Copy                    ActiveSheet.Paste                End If            End If        Next    End WithEnd Sub

En esta parte ya tienes uno de los valores del listbox, tienes que poner las instrucciones que requieres cuando tienes el valor del listbox, en el siguiente ciclo te pondrá otro valor y así sucesivamente.If .Selected(li) Then valor = ListBox1.List(li)

Saludos. DamSi es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas