Macro para buscar una celda y validarla

Tengo una macro que me busca un valor especifico en la hoja 1, retiene ese valor, y lo busca en la hoja 2, al encontrarlo coloca la hora en una celda especifica; funciona correctamente, lo que quiero es que antes de que me coloque la hora valide lo siguiente:

Si ya tiene la hora me muestre un mensaje "ya pusiste la hora",

Si no la tiene que coloque la hora

Sub validacion()

Application.ScreenUpdating = False

EnableEvents = False

Sheets("hoja1").Select

Range("L7").Select

Dim myValor As String

myValor = Range("l7").Value

Sheets("hoja2").Select

Range("D1").Select

Do Until ActiveCell.Value = myValor

If ActiveCell = "" Then End

ActiveCell.Offset(1, 0).Range("A1").Select

Loop

ActiveCell.Offset(0, 5) = time

Sheets("hoja1").Select

End Sub

1 Respuesta

Respuesta
1

H o l a:

Te anexo la macro actualizada:

Sub validacion()
    Application.ScreenUpdating = False
    EnableEvents = False
    Sheets("hoja1").Select
    Range("L7").Select
    Dim myValor As String
    myValor = Range("l7").Value
    Sheets("hoja2").Select
    Range("D1").Select
    Do Until ActiveCell.Value = myValor
        If ActiveCell = "" Then End
        ActiveCell.Offset(1, 0).Range("A1").Select
    Loop
    If ActiveCell.Offset(0, 5) <> "" Then
        MsgBox "Ya pusiste la hora", vbExclamation
    Else
        ActiveCell.Offset(0, 5) = Time
    End If
    Sheets("hoja1").Select
End Sub

También te anexo otra macro, que hace lo mismo, pero con otra forma de programar; Se utilizan las referencias de las hojas, por lo tanto no es necesario cambiar de hoja. Para la búsqueda se utiliza el método Find, en lugar de un ciclo, es más rápido.

Sub validacion2()
'Por.Dante Amor
    Set b = Sheets("hoja2").Columns("D").Find(Sheets("hoja1").[L7], lookat:=xlWhole)
    If Not b Is Nothing Then
        If b.Offset(0, 5) <> "" Then MsgBox "Ya pusiste la hora", vbExclamation Else b.Offset(0, 5) = Time
    End If
End Sub

Prueba la nueva macro.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas