Macro de un rango especifico en columna la primera celda vacía

Tengo necesidad de una macro en este rago (D10:D99), para localizar la ultima celda vacía.

2 respuestas

Respuesta
1

Te anexo 3 opciones, considerando que tienes un rango de celdas, es posible que no exista una celda vacía dentro de ese rango, por lo tanto se tiene que verificar si existe celda vacía o no existe celda vacía. Revisa las 3 opciones y ocupa la que más te agrade.


Con for

Sub PrimeraCeldaVacia1()
'Por Dante Amor
    For i = 10 To 99
        If Cells(i, "D") = "" Then
            celda = i
            MsgBox "Celda Vacía " & celda
            Exit For
        End If
    Next
    If celda = "" Then MsgBox "no hay celdas vacías"
End Sub

Con do while

Sub PrimeraCeldaVacia2()
'Por Dante Amor
    i = 10
    Do While Cells(i, "D") <> ""
        i = i + 1
        If i = 100 Then
            MsgBox "no hay celdas vacías"
            Exit Sub
        End If
    Loop
    MsgBox "Celda Vacía " & i
End Sub

Con selección de celdas en blanco

Sub PrimeraCeldaVacia4()
'Por Dante Amor
    On Error Resume Next
    f = Range("D10:D99").SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row
    If f = "" Then
        MsgBox "no hay celdas vacías"
    Else
        MsgBox "Celda Vacía " & f
    End If
End Sub

Saludos.Dante Amor

Hola Dante.

Ya las he guardado y probado. Están muy bien.

Pero he encontrado esta que me viene muy bien:


Range("D10:D99").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop

Si pudieras agregarme al final, que me seleccione, en la misma línea, pero en la columna "C".

Un saludo Damte

Una vez que localizas la celda, ya puedes seleccionarla. En lo personal no te recomiendo el método que pusiste, ya que es muy lento, en 100 celdas no se aprecia, pero si tuvieras más de mil, tu macro sería muy lenta.

Prueba con esta:

Sub PrimeraCeldaVacia1()
'Por Dante Amor
    For i = 10 To 99
        If Cells(i, "D") = "" Then
            celda = i
            'MsgBox "Celda Vacía " & celda
            Cells(i, "C").Select
            Exit For
        End If
    Next
    If celda = "" Then MsgBox "no hay celdas vacías"
End Sub
Respuesta
1

Gracias por contestar y por el link.

He conseguido esta macro que me va muy bien:

Sub ultima_celda_vacia()
Range("D10:D99").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Pero, me falta poder seleccionar el rango de la celda para posicionarse.

Un saludo

Con macro queda seleccionada la celda la última celda con datos, ya que el comando es un bucle que establece que se vaya seleccionando una celda hacia abajo de la actual mientras la celda no este vacía, por ende cuando encuentre la última celda con datos quedará seleccionada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas