Dejar sin bloquear Combobox en hoja protegida

En la hoja de facturacion tengo dos Combobox para adquirir datos, 

Para evitar que se manipulen las celdas que tienen formulas las quiero bloquear, pero entonces no me funcionan los Combobox.

Se puede hacer algo

1 Respuesta

Respuesta
1

Para que funcionen deberás con una macro hacer lo siguiente:

'desproteger la hoja

Activesheet. Unprotect "abc"

'en esta parte hacer lo que quieres hacer con tus combos

'Proteger nuevamente la hoja

Activesheet. Protect "abc"

La palabra "abc" se refiere al password, cámbiala por la palabra que desees.

Si tienes dudas de como aplicarlo en tu archivo avísame.

El caso es que este combo es donde busco las referencias, voy a asignar la macro a un botón, pero puede aparecer el resultado de la búsqueda en el texto del botón

Para entender bien el funcionamiento de lo que necesitas, puedes enviarme tu archivo y me explicas paso a paso y con un ejemplo lo que debo hacer para llegar a la parte donde ya no te funcionan los combobox.

¡Gracias! 

Ya le envié el archivo

Tu combobox2 tiene la liga con la celda C3 y tu combobox1 tiene la liga con la celda G3.

Ambas celdas tienen el formato protegido, desmarca la casilla de Bloqueada para ambas celdas (C3 y AG3)

Ahora sí, puedes proteger la hoja y los combos funcionarán.

Si quieres que la celda permanezca bloqueada, entonces realiza lo siguiente:

1. Quita la liga en las propiedades de los dos combos, es decir, la propiedad LinkedCell de ambos combos deberá estar en blanco.

2. Deja el formato de ambas celdas con la casilla Bloqueada

3. Pon la siguiente macro en la hoja "No 54 ALBERTO"

Private Sub ComboBox2_Change()
'Por.DAM
ActiveSheet.Unprotect "m"
    Range("C3") = ComboBox2
ActiveSheet.Protect "m"
End Sub

Lo que hace la macro es, cada vez que selecciones un dato del combo desprotege la hoja, en la celda C3 pone el valor del combo y nuevamente protege la hoja.

Realiza lo mismo para el otro combo.

En la siguiente aplicación que me mandaste ¿Como pego el nombre de la hoja donde se encontró el código en la celda A1

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
Application.ScreenUpdating = False
ActiveSheet.Unprotect "m"
If Target.AddressLocal = "$G$2" Then
Range("B1") = ""
Range("C1") = ""
Range("F1") = ""
Set l2 = Workbooks("TARIFAS VARIOS PROVEEDORES 09-06-2014.xlsm")
'Set h2 = l2.Sheets("hoja1")
For Each h In l2.Sheets
Set b = h.Range("D:D").Find(Target)
If Not b Is Nothing Then
'ERROR  Range("A1") = 12.Sheets.name
Range("B1") = h.Cells(b.Row, "A")
Range("C1") = h.Cells(b.Row, "B")
Range("F1") = h.Cells(b.Row, "C")
Exit For
End If
Next

Esto debería ser otra pregunta.

range("a1")=h.name

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas