Macro eliminar filas

Experto:
Tengo este código para eliminar una fila en excel cuando la fila seleccionada es mayor a 8 o no pongo "nada". El problema es que no me funciona. Fíjate si hay un error.
Dim fila As String
fila=InputBox("Ingrese Nº fila a eliminar")
If fila <>"" or fila>8  Then
Range(fila & ":" & fila).Select
Selection.ClearContents
End If
End Sub
Gracias

1 Respuesta

Respuesta
1
Pues la verdad es que el código esta fatal XD
En serio, veamos:
Dim fila As String
Primer error, si fila va a contener un numero y quieres hacer con la variable operaciones aritméticas, en tu caso fila>8, la variable fila debe declararse como numero, y string es alfanumérico, es decir, letras.
fila=InputBox("Ingrese Nº fila a eliminar")
If fila <>"" or fila>8  Then
Otro error, pues has usado la condición "or", entonces si se cumple CUALQUIERA de las dos condiciones se ejecuta el código, entonces siempre que la fila sea <> "" se ejecutara el código, sin tener en cuenta la otra condición, para que se tengan que cumplir las dos condiciones usa el operador "and"
Range(fila & ":" & fila).Select
Buf, madre mía, para buscar ayuda selecciona la palabra range y pulsa la tecla F1, te muestra la ayuda y un ejemplo.
Range("A" & fila).Select 'asi debe ser
Selection.ClearContents
el resto esta bien XD
End If
End Sub
Estimado experto
La macro no responde por 2 cosas:
Con dim fila as string me responde bien para cualquier numero mayor a 8, pero cuando no pongo ningún numero error.
En lugar de string, ¿que tengo que poner, porque integer tampoco funciona.?
Si no te molesta pásame el código completo para que funcione con fila>8 y para ningún numero (si el que usa el programa no coloca nada).
Ricardo
Dim fila As long
do
fila=InputBox("Ingrese Nº fila a eliminar")
loop until isnumeric(fila) and fila <> ""
Range("A" & fila).Select
Selection.ClearContents
End If
End Sub
Esta sin probar, ya me dirás
No funciona.
Pruébalo para ver donde esta el problema
Ricardo
On Error Resume Next
Dim fila As Long
Do
fila = InputBox("Ingrese Nº fila a eliminar")
If fila < 0 Then Exit Do
Loop Until IsNumeric(fila) And Not IsNull(fila)
Range("A" & fila).EntireRow.Select
Selection.ClearContents
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas