Macro que muestre hoja oculta que a la vez este con contraseña y luego vuelva a ocultarse

Paso a contarles... Tengo una macro que que lleva los datos de una hoja a otra hoja que esta oculta, y luego se vuelve a ocultar, mi idea es que haga lo mismo pero que esa hoja este protegida con una contraseña, así nadie puede entrar y modificar datos... Paso como esta armado el principio de la macro

Sub nuevoingreso()
'
' nuevoingreso Macro
'
Application.ScreenUpdating = False
'
Range("B8,B10,B12,B14,B16,B18,B20,B21,B22,B24").Select
Range("B24").Activate
Selection.Copy
Sheets("Base de datos ").Visible = True
Sheets("Base de datos ").Select

Supongo que en alguna de esas partes debería ir algún código para bloquear hoja con contraseña, alguien podría ayudarme

1 Respuesta

Respuesta
3

Con lo siguiente puedes pegar con la hoja protegida y oculta.

No es necesario hacer visible la hoja.

No mencionaste en dónde quieres pegar, entonces te puse un ejemplo, cambia "abc" por el password que desees.

Sub nuevoingreso()
' nuevoingreso Macro
  With Sheets("Base de datos ")
    . Unprotect "abc"
    Range("B8, B10, B12, B14, B16, B18, B20, B21, B22, B24"). Copy
    . Range("A2"). PasteSpecial xlPasteValues
    . Protect "abc"
  End With
End Sub

Gracias por responder paso a explicarte en una hoja llamada nuevo ingreso, coloco los datos y con una macro hago que esos datos vayan a una hoja llamada base de datos que esta oculta, vuelque ahí los datos y vuela a ocultarse... ahora bien quiero que esa hoja este bloqueada para las demás personas, osea, que no puedan hacerla visible o en su defecto que no puedan modificarla, ahí te paso nuevamente como esta mi macro hecha,

Sub nuevoingreso()
'
' nuevoingreso Macro
'
Application.ScreenUpdating = False
'
Range("B8,B10,B12,B14,B16,B18,B20,B21,B22,B24").Select
Range("B24").Activate
Selection.Copy
Sheets("Base de datos ").Visible = True
Sheets("Base de datos ").Select
Range("A10000").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A1:J10000").Select
Range("A10000").Activate
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Base de datos ").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Base de datos ").Sort.SortFields.Add Key:=Range( _
"B2:B10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Base de datos ").Sort.SortFields.Add Key:=Range( _
"C2:C10000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Base de datos ").Sort.SortFields.Add Key:=Range( _
"J2:J10000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Base de datos ").Sort
.SetRange Range("A1:J10000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
Sheets("Base de datos ").Visible = False
End With

La macro que te envié es para volcar los datos en la hoja "Base de datos", como te expliqué la macro funciona y no es necesario hacer visible la hoja.

Tal vez solamente hace falta tranponer los datos y pegar después de la última fila con datos, pero eso no lo explicaste en tu pregunta original.

Prueba la siguiente macro, cambia "abc" por el password deseado en tu hoja.

Sub nuevoingreso()
' nuevoingreso Macro
  Application.ScreenUpdating = False
  With Sheets("Base de datos ")
    .Unprotect "abc"
    Range("B8,B10,B12,B14,B16,B18,B20,B21,B22,B24").Copy
    .Range("A" & Rows.Count).End(3)(2).PasteSpecial xlPasteValues, , , True
    .Protect "abc"
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas