Lista de Validación en Excel

Buenas,
A ver si consigo ponerlo claro
Tengo un rango de celdas A1:A10 en la cual los únicos valores que se pueden poner dependen de una lista tomada de otro rango B1:B3.
Por ejemplo, en la lista aparecen como valores posibles rojo, verde, negro.
Lo que deseo es que cuando en cualquiera de las celdas del rango A1:A10 escoja por ejemplo "rojo", automáticamente, en la fila siguiente, me coloque "verde".
Es decir si yo en la celda A1 escojo el valor "rojo", automáticamente en la celda A2, me colocara "verde".
El valor rojo y el verde, van ligados, por lo que siempre que aparezca rojo también debe de aparecer verde.
Espero que se vea claro lo que deseo.
Saludos.

1 respuesta

Respuesta
1
Yo pondría a partir de la cela a2 en adelante la siguiente fórmula:
SI(ESNOD(BUSCARH(A1;$b$1:$b$3;2;0));BUSCARH(A1;$b$2:$b$3;2;0);BUSCARH(A1;$b$1:$b$3;2;0)) 
esta supone ademas que verde esta ligado con negro, es decir si pones rojo, abajo pone verde y abajo pondra negro
si no deseas que esten ligados me avisas.
Gracias, pero solo me interesa que rojo este ligado con verde.
Esto no me sirve, puesto que en A1:A10 tengo una lista de valores posibles del rango B1:B3 y si pongo la fórmula, ya no tengo la posibilidad de elegir entre los valores de la lista, o ¿es posible hacerlo?
Un saludo.
Entonces lo mejor es una macro que se ejecute al momento de cambiar los valores de las celdas. ¿Es decir si pones un valor en a1 y es rojo pone verde en a2. Eso es lo que quieres?.
Exacto, la macro sabría realizarla, pero no se como hacer que se ejecute cuando se selecciona un valor de la lista.
Esperame un par de horas y te lo mando. Ahorita esto y en labores.
¿Ok?.
Ok, Muchas gracias!
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Row < 11 And Target.Cells.Column = 1 Then ' establece que la macro se ejecuta solo si se selecciona la fila 1 a la 10 de la columna A
       If Target.Cells.Value = Range("B1").Value Then ' establece que si la celda celeccionada tiene valor igual a B1 ejecuta
        I = Target.Cells.Row 'lee fila de la celda seleccionada
        Cells(I + 1, 1) = Range("B2") ' cambia de fila a la fila i+1 (fila siguiente) y le cambia el valor por el de b2
          End If
   End If
End Sub
Deberíamos cambiar el 11 por un 10, así no te cambia el valor de la fila 11 por verde si pones rojo en la 10. Osea la ultima fila (10) no debería tener incidencia en la macro).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas