VBA segunda celda con datos de una columna

En una hoja de Excel tengo una base de datos donde la primera fila está vacía, en la segunda fila tengo los títulos de cada columna, y lo que quiero es que cuando hago un filtrado avanzado. Poder tomar la primera celda con datos debajo de la columna en la que yo me sitúe, con VBA.

Sería algo así como:

ActiveSheet. Range("a1000000").End(xlUp).Select -->Que estando en A1000000, vaya hasta la primera celda con datos, en esa columna (que serían el título), y luego baje una para abajo, que es donde quiero llegar a la primera celda con datos después del título.

1 Respuesta

Respuesta
2

Utiliza las siguientes instrucciones, en la variable fila te pone la primera fila con datos después del título. Claro está que tienes que hacer primero el filtro avanzado.

u = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
fila = ActiveSheet.Range("A3:A" & u).SpecialCells(xlCellTypeVisible).Rows(1).Row

Gracias por la rápida respuesta, pero quería saber si existe alguna instrucción, más sencilla que la expuesta, que haga lo siguiente, y para no complicar la cosa, nos olvidamos de los filtros avanzados, de momento:


Necesito instrucción sencilla, que estando en una celda elegida por mí, con la instrucción, por ejemplo Range("B2").Select., baje para abajo una posición, o dos posiciones, o las que yo quiera, según mis necesidades, en cada momento; es decir, como si estando en una celda, presionase la tecla del cursor hacia abajo UNA VEZ, pero sin presionar control + flecha, es decir, flecha del cursor hacia abajo una vez, para que baje sólo una posición.


GRACIAS.

Bueno, me ha faltado decir que quiero lo comentado arriba, pero sobre una base de filtro avanzado, ya que si no, he comprobado que se desplaza una posición hacia abajo, pero no de las celdas visibles.

Gracias.

En excel parece sencillo. Te explico lo que sucede. Tienes un rango de datos con un filtro avanzado. Cuando aplicas el filtro, algunas filas se ocultan, luego entonces, pones tu cursor en una celda del título y presionas una sola vez la flecha hacia abajo y automáticamente excel te lleva de la fila 2 a la fila 15. Te pone el cursor en la fila 15 porque las filas de la 3 a la 14 están ocultas.

Ahora en una macro si le dices que seleccione la siguiente celda de donde está el cursor, la macro te va a regresar un 3.

Prueba la siguiente instrucción, si pones tu cursor en la celda B2 y quieres saber cuál es la siguiente fila, siempre te va a regresar un 3.

fila = ActiveCell.Row + 1

Por consecuencia, se tiene que indicar en la macro que busque la siguiente fila visible.

Utiliza lo siguiente para encontrar la primera fila con datos después del título, cuando tienes un filtro avanzado.

c = ActiveCell.Column
u = Cells(Rows.Count, c).End(xlUp).Row
fila = Range(Cells(3, c), Cells(u, c)). SpecialCells(xlCellTypeVisible). Rows(1). Row

Sin duda puede haber varias respuestas, unas sencillas otras más complicadas, pero para hacer lo que necesitas eso es lo que se me ocurre.

“Un problema tiene tantas soluciones como personas lo intenten resolver”
Por. DAM

Otra solución que se me ocurre es hacer un ciclo para revisar desde la fila 3 hacia abajo cuál es la primer celda visible con datos. Pero igual esta solución es más compleja.

Saludos. Dante Amor

No olvides finalizar

Muchas Gracias, y una excelente explicación.

Estimado Experto,

Llegado el momento de aplicar la macro anterior, resulta que no me hace nada.

Lo que necesito es seleccionar la primera celda VISIBLE de la columna, en la que yo, previamente, me he situado, en la fila 2 de esa columna (CELDA B2, por ejemplo) tras realizar un filtro avanzado.

Todo con objeto de que una vez seleccionada esa PRIMERA celda VISIBLE pueda copiarla a otro lugar, pero el problema que tengo es que no se seleccionar esa celda visible de la columna en la que yo, previamente y tras hacer un filtro avanzado, me he situado.

GRACIAS.

Podrías crear una nueva pregunta. En la nueva pregunta pones el código que estás utilizando, o bien, envíame tu archivo y me explicas con ejemplos lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas