Excel - ComboBox

 
Vista:

ComboBox

Publicado por José (39 intervenciones) el 11/09/2010 02:20:08
Hola,
Tengo una aplicación Excel 2003 con varias hojas.
Las hojas estan protegidas por clave y las celdas en las que se puede modificar algo tienen permiso para hacerlo. Tod funciona bien; pero tengo 2 celdas habilitadas en las que puedo entrar O o N; son AG1 y AN1; como digo todo funciona.
Par facilitarme la tarea de cambiar el contenido de las celdas AG1 y AN1 he añadido un ComboBox al lada de cada una y los he ligado uno a AG1 y el otro a AN1; su conrtenido lo toman ambos de las celdas AB3 y AB4 que tienen respectivamente O y N.
Si la hoja está desprotegida no hay problema funciona; pero si protejo la hoja con clave al pinchar en el ComboBox y hacer la eleccción me sale un mensaje que dice que intento modificar celdas que esdtán protegidas por clave; pero si lo hago directamente en las celdas correspondientes manualmente funciona.
Tambien tengo un evento para cada comboBox (OnSelectionChange) que consiste en recalcular todas las hojas del libro (Ctrl+Alt+Maj).
¿Como podría tener la hoja protegida y que los ComboBox funcionen?
Gracias anticipadas por sus respuestas.
Un saludo

José
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

RE:ComboBox

Publicado por Martha (330 intervenciones) el 11/09/2010 21:02:15
Me parece que embutir un combo en una celda no es lo mas apropiado, y hacer referencia a una celda protegida, una incongruencia.
Abre una hoja nueva a la que vas a llamar datos, luego la ocultas si quieres, y en ella crea una o varias listas, las que necesites.
Puedes hacer una lista que se llame O-N (por ejemplo) con dos elementos en una celda O y en la de debajo N.
Luego te vas a tu celda AG1 o AN1 y despliegas el menú datos. Seleccionas Validación. Dentro de las opciones escoje Lista y en el recuadro escrites =NombreDeTuLista.
Como verás tu celda se convierte en un combo, que solo acepta dos valores.
Creo que es lo mas apropiado.
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

RE:ComboBox

Publicado por José (39 intervenciones) el 12/09/2010 03:32:49
Hola Martha,
Ante todo gracias por tu respuesta.
Primero no he creido decir en mi pregunta que he embutido una combo en una celda, sino que he ligado una combo a una celda y que esa celda no esta protegida, por lo tanto no es una ioncongruencia.......
Lo que propones lo retengo como una solución posible, pero entre tanto he seguido trabajando en el problema y he encontrado otra solución que me conviene mejor y adjunto una parte del procedimiento.
De todas formas me gustaría saber por qué no funciona pues es algo que de segura tendré que repetir en el futuro y deseo tener la hoja protegida en los lugares que corresponda.
Entre tanto encontré esto:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Address = "$AG$1" Then
If (ActiveCell.Value = "O") Or (ActiveCell.Value = "o") Then
ActiveCell.Value = "N"
Range("$AN$1").Select
Exit Sub
End If
If (ActiveCell.Value = "N") Or (ActiveCell.Value = "n") Then
ActiveCell.Value = "O"
Range("$AN$1").Select
Exit Sub
End If
End If
If ActiveCell.Address = "$AN$1" Then
If (ActiveCell.Value = "O") Or (ActiveCell.Value = "o") Then
ActiveCell.Value = "N"
Range("$AG$1").Select
Exit Sub
End If
If (ActiveCell.Value = "N") Or (ActiveCell.Value = "n") Then
ActiveCell.Value = "O"
Range("$AG$1").Select
Exit Sub
End If
End If
End Sub

¿Que por qué me voy de la celda $AG$1 a la $AN$1? Pues porque si no salgo se me queda en edición y no puedo repetir el dobleClick y como de todas formas tengo que salir pues ya lo hago en el procedimiento.
Gracias y retengo lo que me propones pues me puede servier para otras aplicaciones.

Un saludo

José
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