Macro para comprobar valores y de acuerdo a ello realizar acciones

Dante Amor

Me gustaría que me ayudaras con una macro para lo siguiente:

Tengo una hoja llamada "INGRESAR_CITA" en dicha hoja en la celda "D9" ingreso el número ID del cliente. En esta hoja deseo la macro que necesito.

Quisiera una macro (que se ejecute con un botón) que VERIFIQUE que ese número de ID se encuentra registrado en la hoja llamada "ClientesPendientes" en la columna "F" a partir de la fila 2 en adelante.

Datos importantes para que tengas en cuenta en la hoja "ClientesPendientes":

En la columna "F" están los ID de los clientes

En la columna "G" están los nombres de los clientes.

En la Columna "N" están los motivos de las visitas.

Proceso 1:

Si la macro encuentra que el número ID se encuentra registrado en la hoja "ClientesPendientes" entonces ahora haga una segunda verificación y es verificar si la celda "D21" de la hoja "INGRESAR_CITA" es igual al contenido de la columna "N" del cliente encontrado en la hoja "ClientesPendientes". Si la respuesta es afirmativa me aparezca un mensaje diciendome lo siguiente: "El cliente estaba en espera de agendar una cita para "DATO DE LA COLUMNA N". Por lo tanto se procederá a eliminar ese pendiente y agendar su cita" y me de el botón de "Aceptar" ó "Cancelar". Si cancela, termina la macro, pero si acepta entonces la macro debe eliminar la fila del cliente encontrado en la hoja "ClientesPendientes" y ejecuta luego de ello una macro llamada "GrabarCita" y finaliza la macro.

Proceso 2:

Si la macro encuentra el ID del cliente en la hoja "ClientesPendientes" pero el contenido de la celda "D21" de la hoja "INGRESAR_CITA" no es igual a la columna "N" del cliente encontrado entonces me aparezca un mensaje diciendome lo siguiente: "El cliente estaba en espera de agendar una cita para "DATO DE LA COLUMNA N". Si la cita que esta agendando esta mal registrada, por favor dar CANCELAR y corregir el error ó dar continuar para grabar la cita que esta agendando y se mantendrá el motivo de cita del cliente aun en espera para ser agendado". Por lo tanto el mensaje da las opciones de "Continuar" ó "Cancelar". Si cancela ahí termina la macro, pero si continúa, simplemente ejecuta la macro "GrabarCita" y finaliza la macro.

Proceso 3:

Si la macro no encuentra el ID del cliente en la hoja "ClientesPendientes" entonces ejecuta la macro "GrabarCita" y finaliza la macro.

1 Respuesta

Respuesta
1

H o  l a :

Te anexo la macro para comprobar los valores. No existe la opción Sí y Cancelar. Te puse la opción Sí y No.

Sub ComprobarValores()
'Por.Dante Amor
    Set h1 = Sheets("INGRESAR_CITA")
    Set h2 = Sheets("ClientesPendientes")
    If h1.[D9] = "" Then Exit Sub
    '
    Set b = h2.Columns("F").Find(h1.[D9], lookat:=xlWhole)
    If Not b Is Nothing Then
        If h1.[D21] = h2.Cells(b.Row, "N") Then
            'motivos igules
            res = MsgBox("El cliente estaba en espera de agendar una cita para " & h1.[D21] & "." & vbCr & _
                "Por lo tanto se procederá a eliminar ese pendiente y agendar su cita." & vbCr & _
                "Presionar Sí para grabar cita, Presionar No para cancelar", vbYesNoCancel, "CITAS")
            If res = vbYes Then
                h2.Rows(b.Row).Delete
                Call GrabarCita
            Else
                Exit Sub
            End If
        Else
            'Motivos diferentes
            res = MsgBox("El cliente estaba en espera de agendar una cita para " & h1.[D21] & "." & vbCr & _
                "Si la cita que esta agendando está mal registrada, " & _
                "por favor presionar No y corregir el error o presionar Sí " & _
                "para grabar la cita que está agendando y se mantendrá el motivo " & _
                "de cita del cliente, aun en espera para ser agendado", vbYesNo, "CITAS")
            If res = vbYes Then
                Call GrabarCita
            Else
                Exit Sub
            End If
        End If
    Else
        Call GrabarCita
    End If
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas