Para dante - Eliminar Registro de hoja de excel desde listbox
Estimado Dante:
Tengo un listbox de 18 columnasque se cargan de la Tabla1 que esta en la hoja LVT . La columna 18 contiene el numero de fila( se calcula con =fila()-1 el -1 es porque la tabla tiene encabezado).
Cargamos os datos con este código:
Dim i, items, xFactura 'variables globales
Private Sub UserForm_Initialize()
'Le digo cuántas columnas
ListBox1.ColumnCount = 14' se cargan solo 14 de las 18 columnas
'Asigno el ancho a cada columna
Me.ListBox1.ColumnWidths = "60;60;60;60;60;60;60;60;60;60;60;60;60;60"
'El origen de los datos es la Tabla1 de la hoja LVT
ListBox1.RowSource = "Tabla1"
End Sub
Luego después de cargado el listbox. Al hacerle click a un registro este se guarda en xFactura
Private Sub ListBox1_Click()
'Determino que cuando selecciono un item,
'el valor seleccionado, sea asignado a la variable xEmpleado
items = Me.ListBox1.ListCount
For i = 0 To items - 1
If Me.ListBox1.Selected(i) Then
xFactura = Me.ListBox1.List(i)
End If
Next i
End Sub
por ultimo al hacer click al boton eliminar se ejecuta este codigo:
Private Sub btn_Eliminar_Click()
Dim Fila As Integer
Dim Final As Integer
'Buscamoos la última fila
Fila = 2
Do While Sheets("LVT").Cells(Fila, 1) <> ""
Fila = Fila + 1
Loop
Final = Fila - 1
If MsgBox("¿Seguro que quiere eliminar este Registro?", vbQuestion + vbYesNo) = vbYes Then
For Fila = 2 To Final
If Sheets("LVT").Cells(Fila, 1) = xEmpleado Then
Sheets("LVT").Cells(Fila, 1).EntireRow.Delete
Exit For
End If
Next
MsgBox "Registro eliminado", vbInformation + vbOKOnly
Else
Exit Sub
End If
End Sub
El código funciona bien pero cuando la columna 1 no tiene datos no elimina nada o cuando tienen datos similares elimina el registro en el orden en que aparescen. Necesito modificar el código para que elimine los registros tomando en cuenta los datos de la columna 18. Como esta columna numera las filas nunca se repetirán.
¿
Podrías ayudarme?
Gracias