Eliminar fila

Hola Elsa
El siguiente código elimina una fila si en esa fila existe el valor que se introduce en un texCodigo
Este cogió función, lo que sucede es que al elimianr la fila, se activa la celda dejando una fila en blanco de por medio después de ela ultima fila ocupada.
Es decir tengo de la fila 4 a la 50 una derie de datos, al elimianr una fila el curosr se me ubica en la fila 52 cuando debería ubicarse en la fila 51 que es la siguiente fila libre o la primer fila vacía puesto que hasta la 50 tiene datos.
Muchas gracias
Private Sub C1_Click()
Dim i As Integer
Dim D As Double
For i = 4 To UltimaFila
Range("A" & i).Select
D = ActiveCell
If D = txtCodigo Then
Range("A" & i).EntireRow.Delete
Else
End If
Next i
End Sub

1 respuesta

Respuesta
1
Si solo se elimina 1 fila al ejecutar ese botón, bastará con que incluyas la instrucción delante del For:
Ultimafila = ultimafila-1
(Seguramente tenés una rutina que te encuentra la primer fila vacía y no la última ocupada)
Si se van a eliminar varias filas en cada ejecución del botón, ya van a ser varias las filas a descontar, entonces te conviene utilizar una instrucción While ActiveCell <> "" o sea que ejecute hasta encontrar una celda vacía. Esa será la última (siempre y cuando no haya vacías en esa col de datos)
Entonces será:
Private Sub C1_Click()
Dim i As Integer
Dim D As Double
i = 4
Range("A" & i).Select
While ActiveCell.Value <> ""
'D = ActiveCell no hace falta mandar el valor a una variable, compará directamente con la celda
If ActiveCell.Value = txtcodigo Then
Range("A" & i).EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
i = i + 1
End If
Wend
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas