Macro con celdas protegidas

Tengo un formulario donde ingreso facturas a una hoja de excel. Lo que quería es saber si es posible tener protegida ciertas celdas, en las cuales el formulario agrega datos. POr ejemplo:
Ingreso
Nombre empresa Fecha MOnto IGV Valor
Cocacola              15/2/2010     100      19%    19
Lo que quiero es tener bloqueado las celdas de NOMBRE DE EMPRESA ya que no quiero que sean modificadas una ves ingresadas y si es posible, protegerlas con clave.

1 Respuesta

Respuesta
1
Sí puedes proteger la hoja y evidentemente también querrás proteger la macro
Protección Hoja:
Herramienta>Proteger>Proteger Hoja
Protección Macro:
En el editor de visual basic: Herramientas>Propiedades de VBAProject...
Seleccionas la pestaña Protección, seleccionas la casilla de verificación (Bloquear proyecto para visualización), le pones la clave y ya está.
Modificar los datos:
Debes tener en cuenta que no podrás modificar los datos con una macro si la celda está bloqueada, por tanto hay que desproteger la hoja y una vez que termines de modificar, la vuelves a proteger. Para eso:
ActiveSheet.Unprotect "La_clave_de_la_hoja"
'Código para modificar las celdas
ActiveSheet.Protect Password:="La_clave_de_la_hoja", DrawingObjects:=True, Contents:=True, Scenarios:=True
Espero te sea útil.
Excelente, ya lo solucione. Ahora si pudieras ayudarme con esta macro. efila encuentra la ultima fila vacía. Ahí me he quedado. Yo lo que quiero hacer es que mediante un botón elimine la ultima fila llena
Private Sub eliminar_Click()
Dim wss As Worksheet
Dim eFila As Long
Set wss = Worksheets(1)
eFila = wss.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Rows("efila-1:efila-1").delete
End Sub
Tienes un error en:
Rows("efila-1:efila-1").delete
Intenta escribiendo de esta manera
Rows((eFila-1) & ":" & (eFila-1)).delete
Y me dices como te va!
EXCELENTE! Funciono de maravilla, pero me trajo un problema más. El problema es que en la fila dos están los títulos, por lo que cuando va borrando filas, hasta llegar a los títulos, también los podría borrar. COmo puedo hacer para evitar esto. GRACIAS de antemano!
Para eso utilizamos la sentencia if y le decimos que si el número de filas es mayor que 3, entonces puede borrar, de otra forma, envía un mensaje.
;)
'-------------------------------------
Private Sub eliminar_Click()
   Dim wss As Worksheet
  Dim eFila As Long
  Set wss = Worksheets(1)
  eFila = wss.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
if eFila>3 then
  Rows(efila-1 & ":" & efila-1).delete
else
   Msgbox "No hay mas filas para borrar"
end if

End Sub

Añade tu respuesta

Haz clic para o