Saltar al contenido

Proteger celdas específicas con fórmulas


Recommended Posts

publicado

Hola amigos, de nuevo vengo con otra "nueva" inquietud....me explicaré: en mi libro tengo en la hoja Facturas (Botón Albarán), un ejemplo para crear un albarán, introduzco el cliente mediante la celda correspondiente y se rellenan los demás datos, así como cuando introduzco la referencia del producto se carga el nombre del producto, el iva y el listado de precios (solo he de introducir manualmente el lote y la cantidad). Hasta ahí bien, en la parte derecha se va creando una copia de la parte izquierda (una sería para el cliente y otra para mi, digamos), bueno lo que necesito es poder bloquear esa parte derecha del albarán, pues es sólo en la izquierda en donde se introducen realmente los datos, y no quiero que accidentalmente se cambie información o se borren fórmulas. Y si fuese posible bloquear todas las celdas con fórmulas tanto de la parte izquierda como la de la derecha del albarán.....pues ya sería lo ideal (aunque me conformo con sólo la parte derecha), eso sí, sin afectar al correcto funcionamiento de las macros y fórmulas que hay en la hoja, por supuesto. Lo he intentado de varias formas, pero siempre obtengo error al intentar bloquear las celdas.

Nota: el botón de "Generar Albarán" de esta hoja se utiliza para grabar los datos en otra hoja, así como para volver a dejar las celdas en blanco para crear un nuevo albarán (tanto si queremos imprimir como no)

Aquí el libro:

Dropbox - STOCK 1.xlsm

Gracias por vuestra ayuda de antemano. Un saludo

publicado

Pon esta macro en la hoja Facturas:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 11 Then
If Target.Row > 9 And Target.Rows < 17 Then
[B16].Select
Exit Sub
End If
End If

If Target.Row < 8 Or Target.Column > 10 Then
[D8].Select
Exit Sub
End If

If Target.Address = "$E$8" Then
[C9].Select
Exit Sub
End If

If Target.Row > 10 And Target.Row < 16 Then
[B16].Select
Exit Sub
End If

If Target.Address = "$C$9" Or _
Target.Address = "$J$10" Then
Exit Sub
End If

If Target.Address = "$D$9" Then
[J10].Select
Exit Sub
End If

If Target.Address Like "$C$*" And _
Target.Cells.Count = 3 Then
Range("F" & Target.Row).Select
Exit Sub
End If

If Target.Column = 10 And _
(Target.Row > 15 And Target.Row < 40) Then
Target.Offset(1, -8).Select
Exit Sub
End If

If Target.HasFormula = True Or Target.Cells.Count > 1 Then
If Target.Row < 16 Then
Target.Offset(1, 0).Select
Else
Target.Offset(0, 1).Select
End If
Exit Sub
End If

End Sub[/CODE]

publicado

Gracias por la ayuda Macro Antonio, he probado la macro y no funciona correctamente, una vez que la introduzco en la hoja no me deja elegir cliente (celda C10), y me da también error con el primer articulo pues hay algún error al leer los lotes. He optado (no sé si será buena idea o no) por intentar ocultar las columnas (de la L a la T) y mover los cuadros del título de Albarán y los datos de la empresa, así simplifico la hoja y evito equivocarme con cada parte del albarán. Cuando se manda a imprimir vuelve a mostrarse todo (con las macros Ocultar albarán y Mostrar albarán) y cuando se reinicia para un nuevo albarán vuelve a ocultarse, aunque tengo un pequeño problema con los botones y los cuadros, pues no vuelven exactamente a su sitio, quizás puedas ayudarme con eso.

De nuevo gracias por la ayuda. Un saludo

Aquí el archivo con esas modificaciones:

Dropbox - STOCK 1 ultimo.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.