Eliminar celda mediante un listbox1

Tengo que eliminar cierta celda dependiendo de la elección del listbox, pero cuando le doy eliminar celda mediante un botón no lo elimina, no se que es lo que me esta faltando, les doy un ejemplo:

Tengo una tabla enlazado al listbox de las cuales tengo 6 columnas.

Columna: A, B, C, D, E, F 

Y al momento de seleccionar que me elimine la fila seleccionada de la columna a.

Esto es el código pero no se que comando me hace falta:

Private Sub ListBox1_Click()

Range("a2").Activate
cuenta = Me.ListBox1.ListCount
Set Rango = Range("a1").CurrentRegion
For i = 0 To cuenta - 1
If Me.ListBox1.Selected(i) Then
valor = Me.ListBox1.List(i)
Rango.Find(What:=valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
End Sub
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex < 0 Then
MsgBox " No has elegido ningun tracto para descuento"
Else
pregunta = MsgBox("Es correcto el tracto seleccionado para aplicar diesel?", vbYesNo)
If pregunta = bvYes Then
ActiveCell.EntireRow.Delete
End If
End If
End Sub

1 respuesta

Respuesta

El error principal en tu macro esta en esta línea If pregunta = bvYes Then la instrucción correcta es If pregunta = 6 Then aunque ya resuelto este error tu código va a generar otro error en esta línea del código del listbox Set Rango = Range("a1").CurrentRegion, el ciclo For next y la busqueda son innecesarios un listbox1. Listindex hace la misma función de búsqueda, te dejo la macro ya corregida pruébalas y comentas.

Private Sub ListBox1_Click()
Set rango = Range("datos")
With ListBox1
    cuenta = .ListCount:    fila = .ListIndex + 1
End With
rango.Rows(fila).Select
Set rango = Nothing
End Sub
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex < 0 Then
MsgBox " No has elegido ningun tracto para descuento"
Else
pregunta = MsgBox("Es correcto el tracto seleccionado para aplicar diesel?", vbYesNo)
If pregunta = 6 Then
ActiveCell.EntireRow.Delete
Range("a1").CurrentRegion.Name = "datos"
carga
End If
End If
End Sub
Private Sub UserForm_Initialize()
carga
End Sub
Sub carga()
Set datos = Range("a1").CurrentRegion
With datos
    ListBox1.RowSource = "=" & .Address
    .Name = "datos"
End With
End Sub

Acabo de modificar la Macro pero me indica que hay un error en:

El método "Range" de Objeto global

¿Que estoy haciendo mal?

¿Qué modificaciones le hiciste y en que modulo?, a mi me daba también ese error cuando cambie el bvyes por 6

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas