Tengo una hoja con datos en las cuatro primeras columnas.
Hay filas que tienen columnas con celdas en blanco. (No todas las filas tienen datos en las cuatro
columnas)
Busco código para hallar la segunda celda vacía de la columna B para pegar desde allí datos traídos
de un archivo.txt
Anticipadas gracias.
Lito
Sub HallarSegundaCeldaVacía()
Dim rngCeldasVacías As Range
Set rngCeldasVacías = ActiveSheet.Range("B1", ActiveSheet.Range("B65536").End(xlUp)).SpecialCells(Type:=xlCellTypeBlanks)
MsgBox prompt:="Celda " & rngCeldasVacías.Areas(2).Cells(1).Address
Set rngCeldasVacías = Nothing
End Sub
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Lito" <li...@nospam.com> escribió en el mensaje news:u5%23B5TSN...@tk2msftngp13.phx.gbl...
Sub BuscaSegundaCeldaVacía()
Columns("B:B").Select
Selection.Find(What:="", After:=ActiveCell,
LookIn:=xlFormulas, LookAt:=xlWhole,
SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.Select
End Sub
Espero que te sirva
Tu código hace "casi" lo que busco. Solo que activa la celda D4, que está libre, pero en realidad
hay muchos datos en las siguientes filas en las columnas A:C.
Lo que intento es conseguir que se active una celda vacía de la columna B bajo el último dato
digamos de la región actual
Lo intento con :
Range("A1:D1").Select
Selection.CurrentRegion.Select
Selection.End(xlDown).Select
ActiveCell.Offset(2, 1).Range("A1").Select
Pero va a la columna B dos celdas mas abajo del último dato de la columna A y muchas veces sucede
que hay datos por debajo de esas filas.
Saludos.
Lito
"Carlos" <el_t...@hotmail.com> escribió en el mensaje
news:048d01c3365a$a0198750$a001...@phx.gbl...
Lamentablemente algo no funciona, ¿Habré expresado mal mi necesidad?
Necesito hallar la segunda celda vacía de la *columna B* y *activarla* (hacer que sea la celda
activa) para pegar a partir de allí datos tomados de un archivo.txt.
Tu código, aplicado a mi archivo, me informa en un mensaje "Celda $A$12" y en esa celda (combinada
con B12) hay texto y por debajo de ellas siguen varias filas de datos que se borrarían si se pega a
partir de allí.
Cordiales saludos.
Lito
"Fernando Arroyo" <ferarr...@ESTOwanadoo.es> escribió en el mensaje
news:eJTxY4WN...@tk2msftngp13.phx.gbl...
ActiveSheet.Cells(ActiveSheet.Range("B65536").End(xlUp).Row + 2, 2).Activate
Si tampoco es esto, dílo. Un saludo.
Fernando Arroyo
MS MVP - Excel
"Lito" <li...@nospam.com> escribió en el mensaje news:OF1GNxzN...@TK2MSFTNGP12.phx.gbl...
Este código que envías es casi perfecto para lo que necesito, pero hace falta algo mas... trato de
expresarlo usando palabras tuyas:
Necesito empezar a buscar en la columna B celdas vacías a partir de la fila 1, y pararse en la 2ª
celda vacía de dicha columna, *siempre y cuando* no haya datos en otras columnas mas abajo, si esto
ocurriera pararse en la columna B en la segunda celda vacía dos filas mas abajo de la última fila
que contenga datos.
O dicho de otra manera:
Necesito que, mediante código, lograr que la celda activa sea la última de la columna B dos filas
mas abajo de la última fila con datos.
(La tercera será la vencida)
Saludos.
Lito
"Fernando Arroyo" <ferarr...@ESTOwanadoo.es> escribió en el mensaje
news:ub9QrY1N...@TK2MSFTNGP11.phx.gbl...
ActiveSheet.Cells(Application.WorksheetFunction.Max(ActiveSheet.Range("A65536").End(xlUp).Row, ActiveSheet.Range("B65536").End(xlUp).Row, ActiveSheet.Range("C65536").End(xlUp).Row, ActiveSheet.Range("D65536").End(xlUp).Row) + 2, 2).Select
Si fuera seguro que iba a funcionar bien la propiedad CurrentRegion (para garantizarlo sería necesario que no hubiera filas o columnas en blanco o alguna celda sin datos adyacentes), se podría simplificar bastante la fórmula:
ActiveSheet.Cells(ActiveSheet.Range("A1").CurrentRegion.Rows.Count + 2, 2).Select
Pero, en cualquier caso, la primera es la más segura porque debería funcionar siempre.
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Lito" <li...@nospam.com> escribió en el mensaje news:%2339QF82...@tk2msftngp13.phx.gbl...
Muchas gracias Fernando.
Lito.
"Fernando Arroyo" <ferarr...@ESTOwanadoo.es> escribió en el mensaje
news:uT2#2c9NDH...@TK2MSFTNGP10.phx.gbl...