Localizar la primera celda "no vacía"

19/07/2006 - 11:06 por MarianoB | Informe spam
Buenas grupo,
¿como se puede localizar la primera celda "no vacía" de una hoja de
excel?
No importaría que empezase buscando por filas o comlumnas.
Gracias y SALU2

Preguntas similare

Leer las respuestas

#1 AnSanVal
19/07/2006 - 14:39 | Informe spam
Directamente en la hoja: Ctrl+flecha+flecha (abajo o a la derecha).
Por código:
Para la primera fila: Cells(1, Cells(1, 1).End(xlToRight).Column +
1).Select
Para la primera columna: Cells(Cells(1, 1).End(xlDown).Row + 1, 1).Select

Saludos desde Tenerife (España).
******************************
"MarianoB" escribió en el mensaje
news:
Buenas grupo,
¿como se puede localizar la primera celda "no vacía" de una hoja de
excel?
No importaría que empezase buscando por filas o comlumnas.
Gracias y SALU2
Respuesta Responder a este mensaje
#2 MarianoB
19/07/2006 - 15:20 | Informe spam
Muchas gracias por la ayuda pero no consigo aplicar el código a lo que
realmente pretendo ["mea culpa", en mi petición de ayuda me expresé
mal] . Lo que quiero [o mejor lo que intento conseguir [entre otras
muchas cosas]] es revisar en la primera columna a partir de la celda
A1, donde hay una celda con datos, y en caso de no existir en toda la
columna, que empiece a hacerlo en la columna B y así sucesivamente
pero esto me parece una "brutalidad". El código que he puesto es el
siguiente

Range("A1").Select
While IsEmpty(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Wend

en el que desciende fila a fila hasta encontrar la primera celda "no
vacía" pero que pasa al llegar a la fila 65536: que excel se queda
bloqueado [por supuesto que por mi culpa]

Gracias y SALU2



AnSanVal wrote:
Directamente en la hoja: Ctrl+flecha+flecha (abajo o a la derecha).
Por código:
Para la primera fila: Cells(1, Cells(1, 1).End(xlToRight).Column +
1).Select
Para la primera columna: Cells(Cells(1, 1).End(xlDown).Row + 1, 1).Select

Saludos desde Tenerife (España).
******************************
"MarianoB" escribió en el mensaje
news:
Buenas grupo,
¿como se puede localizar la primera celda "no vacía" de una hoja de
excel?
No importaría que empezase buscando por filas o comlumnas.
Gracias y SALU2
Respuesta Responder a este mensaje
#3 Francisco Mty
19/07/2006 - 17:09 | Informe spam
Prueba este codigo:

Sub recorre()
col = 1
Do Until col = 256
Range(Cells(1, col), Cells(65536, col)).Select
For Each xcell In Selection
If xcell <> Empty Then xcell.Select: MsgBox ActiveCell.Address: End
Next xcell
col = col + 1
Loop
End Sub


Saludos
Respuesta Responder a este mensaje
#4 David
19/07/2006 - 17:26 | Informe spam
Hola, Mariano.

El método que propones podría funcionar con algunos agregados, pero sería
demasiado lento. Mejor utiliza los métodos predefinidos de Excel. Son
enormemente más rápidos. Por ejemplo, prueba con el siguiente código, y lo
modificas a tu caso:

Sub BuscarNulo()
Dim c As Byte, s As Boolean
c = 1: s = True
Do
Cells(1, c).Activate
Selection.End(xlDown).Select
If Selection.Row < 65536 Then
ActiveCell.Offset(1, 0).Select
s = False
Else
c = c + 1
End If
Loop While s
End Sub


Nota: Estoy suponiendo que la celda A1 y A2 nunca estarán vacías.



"MarianoB" escribió:

Muchas gracias por la ayuda pero no consigo aplicar el código a lo que
realmente pretendo ["mea culpa", en mi petición de ayuda me expresé
mal] . Lo que quiero [o mejor lo que intento conseguir [entre otras
muchas cosas]] es revisar en la primera columna a partir de la celda
A1, donde hay una celda con datos, y en caso de no existir en toda la
columna, que empiece a hacerlo en la columna B y así sucesivamente
pero esto me parece una "brutalidad". El código que he puesto es el
siguiente

Range("A1").Select
While IsEmpty(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Wend

en el que desciende fila a fila hasta encontrar la primera celda "no
vacía" pero que pasa al llegar a la fila 65536: que excel se queda
bloqueado [por supuesto que por mi culpa]

Gracias y SALU2



AnSanVal wrote:
> Directamente en la hoja: Ctrl+flecha+flecha (abajo o a la derecha).
> Por código:
> Para la primera fila: Cells(1, Cells(1, 1).End(xlToRight).Column +
> 1).Select
> Para la primera columna: Cells(Cells(1, 1).End(xlDown).Row + 1, 1).Select
>
> Saludos desde Tenerife (España).
> ******************************
> "MarianoB" escribió en el mensaje
> news:
> Buenas grupo,
> ¿como se puede localizar la primera celda "no vacía" de una hoja de
> excel?
> No importaría que empezase buscando por filas o comlumnas.
> Gracias y SALU2


Respuesta Responder a este mensaje
#5 David
19/07/2006 - 17:31 | Informe spam
Perdón, Francisco. Respondimos casi al mismo tiempo.

Veo que tu solución es muy interesante, sólo habría que cambiar el signo <>
por =, ya que Mariano busca la primera celda vacía.

Así que, Mariano, ya tienes dos respuestas. ¡Puedes darte el lujo de
escoger! :-)



"Francisco Mty" escribió:

Prueba este codigo:

Sub recorre()
col = 1
Do Until col = 256
Range(Cells(1, col), Cells(65536, col)).Select
For Each xcell In Selection
If xcell <> Empty Then xcell.Select: MsgBox ActiveCell.Address: End
Next xcell
col = col + 1
Loop
End Sub


Saludos

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida