Obligar a completar una celda dependiendo de otra

Tengo una planilla que en la columna C se eligen platos y en la columna DE las guarniciones

Lo que necesito es que si los platos seleccionados en la Columna C son

BIFE_DE_COSTILLA_

BIFE_DE_POLLO_

MILANESA_DE_SOJA_NAPOLITANA_

MILANESA_DE_SOJA_

MILANESA_

SUPREMA_

En La columna D me obligue a seleccionar una guarnición

Adjunto imagen de la planilla la cual llega hasta la fila 502

1 respuesta

Respuesta
1

Pon el siguiente código en los eventos de tu hoja

Dim celda
'
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns("C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = "" Then Exit Sub
        If Target.Row < 3 Then Exit Sub
        Select Case Target.Value
            Case "BIFE_DE_COSTILLA_", "BIFE_DE_POLLO_", _
                 "MILANESA_DE_SOJA_NAPOLITANA_", "MILANESA_DE_SOJA_", _
                 "MILANESA_", "SUPREMA_"
                '
                celda = Target.Offset(0, 1).Address
                Target.Offset(0, 1).Select
            Case Else
                celda = ""
        End Select
    End If
End Sub
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If celda <> "" Then
        If Target.Address <> Range(celda).Address Then
            If Range(celda).Value = "" Then
                MsgBox "Es necesario completar la guarnición"
                Range(celda).Select
            End If
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)

4. En el panel del lado derecho copia la macro



'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Funciona pero si borro todo el pedido porque me quiero cambiar de menu o porque comienza una semana nueva y necesito la hoja en blanco me salta el cartel de es necesario completar la guarnición cuando todas la

Perdon por la insistecia sr Dante pero podria ver lo de el error que me arroja

Primero, en tu petición no pusiste esa consideración. Para que la macro funcione debes poner todas tus peticiones.

Segundo, ¿copiaste toda la macro completa? incluyendo la primera línea del código: Dim celda

Por último, ¿exactamente qué parte de la hoja estás borrando?

[No olvides valorar la respuesta.

Primero Mil disculpas

Si la copie toda

Por ejemplo si una persona pide bife de costilla no elige guarnición luego elige la guarnición pero se arrepiente y decide cambiar el plato borra ese pedido o sea borra plato y guarnición

Cuando quiere elegir otro plato me salta la advertencia de elegir guarnición

Ah y una cosita más al borrar toda la hoja para empezar una nueva semana también me dice lo mismo o sea seleccionar guarnición

En el código enviado, traté de solucionar algunas de las opciones "lógicas" que pudieran existir. Yo capturo varios datos y luego borro esos datos y no me pide nuevamente "la guarnición".

Si capturaste mal un plato, tendrás que capturar una guarnición, regresar a modificar el plato y después modificar la guarnición.

Es un poco complicado programar todas las posibles opciones sobre la hoja, es por eso, que este tipo de capturas y validaciones se realicen desde un userform, ahí se tienen otras herramientas o eventos para lo que necesitas.

Cuando borres, debes borrar platos y guarniciones, de esa forma no te pide la guarnición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas