Excel - CONDICIONES Y LISTA DESPLEGABLE

 
Vista:
sin imagen de perfil
Val: 21
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

CONDICIONES Y LISTA DESPLEGABLE

Publicado por Ana (27 intervenciones) el 01/08/2018 17:59:58
Hola,
Me gustaría saber si esto se puede hacer:
Yo tengo una casilla que va a estar en blanco (A1), y a su vez va a ver 3 celdas (B1,C1 y D1) en lista desplegable con 3 opciones: si no o -. Yo quiero que cuando escriba algo en la celda A1 automáticamente las celdas B1, C1 y D1, salga no, pero que me de la opción de marcar la opción SI, sin perder la formula.
Lo queremos utilizar para controlar cambios de planos, la celda A1 son las versiones , si hay una modificación en un plano se va a cambiar la versión y es ahí cuando tiene que aparecer el No, pero después de que cada una de las 3 personas que tienen que intervenir en los cambios lo hayan hecho puedan poner otra vez el si en las casillas b c y d.
No se si me he explicado bien.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

CONDICIONES Y LISTA DESPLEGABLE

Publicado por Antoni Masana (2477 intervenciones) el 02/08/2018 08:08:13
No entiendo la explicación.

Hay cuatro celdas que van de la A1 a la D1 y una lista desplegable ¿Donde?

Entiendo la idea de:
Yo quiero que cuando escriba algo en la celda A1 automáticamente las celdas B1, C1 y D1, salga no, pero que me de la opción de marcar la opción SI, sin perder la formula.

Pero que tiene que ver en esto la lista desplegable.

Se puede hacer con una macro que cuando se modifique:las celdas B1 a D1 cuando se cambie el contenido de A1:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
       If Not Range("A1") = vbEmpty Then
          Range("B1") = "NO"
          Range("C1") = "NO"
          Range("D1") = "NO"
       Else
          Range("B1") = ""
          Range("C1") = ""
          Range("D1") = ""
       End If
    End If
End Sub

No se si va por aquí el problema.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

CONDICIONES Y LISTA DESPLEGABLE

Publicado por Antoni Masana (2477 intervenciones) el 02/08/2018 12:21:24
Esta es la macro modificada

Puedo saber de dos formas cual es la columna de la Versión, mirando la cabecera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Colu As Long, Fila As Long
    Static SW As Byte
 
    If SW = 1 Then Exit Sub
 
    Colu = Target.Column
    Fila = Target.Row:   If Fila = 1 Then Exit Sub ' -- No Afecta a la cabecera
                         If Fila > 9 Then Exit Sub ' -- Delimita el numero de fijas
    SW = 1
    If Cells(1, Colu) = "VERSIÓN" Then
       If Cells(Fila, Colu) = vbEmpty Then
          Cells(Fila, "G") = ""
          Cells(Fila, "H") = ""
          Cells(Fila, "I") = ""
          Cells(Fila, "J") = ""
       Else
          Cells(Fila, "G") = "NO"
          Cells(Fila, "H") = "NO"
          Cells(Fila, "I") = "NO"
          Cells(Fila, "J") = "NO"
       End If
    End If
    SW = 0
End Sub

o decir explicitamente que es la Columna E (columna 5)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Colu As Long, Fila As Long
    Static SW As Byte
 
    If SW = 1 Then Exit Sub
 
    Colu = Target.Column
    Fila = Target.Row:   If Fila = 1 Then Exit Sub ' -- No Afecta a la cabecera
                         If Fila > 9 Then Exit Sub ' -- Delimita el numero de fijas
    SW = 1
    If Colu = 5 Then   ' --- Columna E
       If Cells(Fila, "E") = vbEmpty Then
          Cells(Fila, "G") = ""
          Cells(Fila, "H") = ""
          Cells(Fila, "I") = ""
          Cells(Fila, "J") = ""
       Else
          Cells(Fila, "G") = "NO"
          Cells(Fila, "H") = "NO"
          Cells(Fila, "I") = "NO"
          Cells(Fila, "J") = "NO"
       End If
    End If
    SW = 0
End Sub

Esta delimitado de la fila 2 a la fila 9 pero puedes acortarlo o alargarlo a tu gusto o necesidad (Líneas 8 y 9)

La Variable SW es para evitar que entre en bucle, cada vez que se modifica una celda vuelve a ejecutarse esta macro y como la macro modifica celdas vuelve a llamarse a si misma un sin fin de veces. Puedes probarlo quitando el SW=1.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar