Comprobar la existencia de un valor dentro de un rango, y si existe, ejecutar una macro

En primero lugar agradecerles por su VALIOSÍSIMO TIEMPO.

Tengo un excel (el cual les adjunto) que posee 4 hojas.

La primera un inicio muy rudimentario.

La segunda destinada a listar los sobres que se vayan recibiendo para poder imprimir esa lista al final del día.

La tercera que imprime una pequeña constancia de haber recibido el sobre.

Y la cuarta hoja donde tengo la lista de candidatos identificados por número. Cualquier número que no se encuentre en esa lista de la cuarta hoja, no está habilitado a entregar su sobre, y por lo tanto, al ingresar en el UserForm un número de postulante que no se encuentre en esta cuarta hoja, debe devolver un mensaje de error.

Lo que no puedo lograr: necesito que al ingresar un número en el textbox del userform, y dar clic en aceptar, corra un código mediante el cual compruebe si los números (y guiones) ingresados en el textbox existen en la cuarta hoja. Si no existen devuelve error, si existe una coincidencia exacta, debe copiar el número ingresado en el textbox a la segunda hoja en la primer celda libre de la columna C, y agregar la fecha del día en la columna contigua. Por si fuera poco, además necesito que escriba el valor del textbox en la celda B12 de la hoja "Ticket" imprimir esa hoja, y volverme a la hoja "inicio"

Link para descargar el archivo excel: https://goo.gl/GFkF0q 

1 Respuesta

Respuesta
1

Te anexo el código para tu botón del userform

Puedes ejecutar la macro desde la hoja "inicio", la macro no se cambia de hoja.

También actualiza en la macro los nombres de las hojas, por los nombres reales de tus hojas, en esta parte:

    Set h1 = Sheets("inicio")
    Set h2 = Sheets("segunda")
    Set h3 = Sheets("Ticket")
    Set h4 = Sheets("cuarta")

No entendí muy bien a qué te refieres con "compruebe si los números (y guiones) ingresados en el textbox "; lo que hace la macro es buscar lo que tengas en el textbox en la columna A de la hoja 4, si existe una coincidencia exacta entonces continúa, de lo contrario te envía un mensaje.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    num = TextBox1.Value
    If num = "" Then
        MsgBox "Capturar el número en el textbox1"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set h1 = Sheets("inicio")
    Set h2 = Sheets("segunda")
    Set h3 = Sheets("Ticket")
    Set h4 = Sheets("cuarta")
    'Busca en la cuarta hoja en la columna "A"
    Set b = h4.Columns("A").Find(num, lookat:=xlWhole)
    If Not b Is Nothing Then
        'sí lo encontró
        u = h2.Range("C" & Rows.Count).End(xlUp).Row + 1
        h2.Cells(u, "C") = num
        h2.Cells(u, "D") = Date
        '
        h3.[B12] = num
        h3.PrintOut
        MsgBox "Registro agregado e impreso", vbInformation
    Else
        MsgBox "No existe el número : " & num, vbExclamation
    End If
End Sub

Avísame si tienes dudas.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Dante, no tengo como agradecer esta invaluable ayuda!

Funciona a la perfección!!

PD.: y pensar que pasé al menos 3 horas de mi jornada laboral intentando lograr esto!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas