¿Qué puedo hacer para seleccionar la primera casilla de variables sin que cuenten las fórmulas?

A ver, con la sentencia range("a1"). End(xldown). Offset(1, 0). Select , selecciono la primera casilla sin datos, pero me cuenta como dato si hay una formula y yo quiero seleccionar la primera casilla vacia de "variables" sin que cuenten las formulas. He probado algunas cosas pero sin resultado, a ver si puedes ayudarme. Gracias

1 respuesta

Respuesta
1
¿Cómo va todo? Efectivamente, como dices, la instrucción end(xlDown) sirve para ir a la última celda con datos, sea cual sea ese dato. Da igual que sea un valor, una letra, un número, una fórmula. Sin embargo, existe una propiedad del objeto Range llamada HasFormula, que devuelve verdadero cuando el rango seleccionado contiene una fórmula, y falso cuando no lo contiene. A partir de aquí, podrías hacer una macro del tipo:
Sub PararCuandoHallaFormula()
Range("A1").Activate
'seguir bajando mientras la celda activa no contenga fórmula
While ActiveCell.HasFormula = False
ActiveCell. Offset(1, 0). Activate
Wend
End Sub
En fin, espero que ésto resuelva tus dudas, si te quedase alguna, vuelve a preguntarme y lo miramos, ¿OK?. Si no te quedan preguntas, por favor, ten en cuenta el esfuerzo realizado y finaliza la pregunta.
Buena explicación, pero mi columna tiene fórmulas que dan un valor, por ejemplo "55" en caso de verdadero y "" en caso de falso, con lo cual tengo una columna llena de 55 hasta un punto que ya son todos "" (nada o blanco). Pues mi intención es activar la primera casilla después de los "55" que para aclarar tiene una fórmula que devuelve "", es decir, visiblemente nada, pero hay una fórmula. Espero haberme explicado bien. Otra cosilla, tengo otro sistema queme podría solucionar el problema este, pero me deberías decir como se hace para ir una casilla hacia la derecha, al igual que offset (1, 0) va una casilla hacia abajo. Gracias de nuevo y muy buenas las aclaraciones que haces sobre cada uno de los comandos.
Ahora creo que ya he entendido tu pregunta. La primera vez me dijiste "sin que cuenten las fórmulas", así que entendí que debía pararse cuando encontrase una fórmula. Pero lo que quieres es que se pare cuando el resultado de la fórmula sea "". En ese caso, la macro es la siguiente:
Sub ValorCelda()
Range("A1").Activate
While ActiveCell.Value <> ""
ActiveCell. Offset(1, 0). Activate
Wend
End Sub
En cuanto a tu segunda pregunta, Offset(número1, número2) sirve efectivamente para desplazarse. En número1 significan las filas. Cuando es un número positivo significa filas hacia abajo, cuando es negativo son filas hacia arriba. Por ej. si estamos en la celda A5 la instrucción Activecell. Offset(-3,0). Activate nos situará en A2, y la instrucción Activecell. Offset(3,0) en A8. El segundo número (que he llamado número2, son las columnas. Si en número es positivo significa a la derecha, si es negativo es a la izquierda. Por tanto, la instrucción Activecell. Offset(-3,2). Suponiendo que estuviéramos en A5 nos desplazaría a C2. En fin, espero haberte resuelto con ello tu duda, si es así.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas