Excel - como proteger hojas com macros

   
Vista:

como proteger hojas com macros

Publicado por Joan (8 intervenciones) el 12/12/2011 15:27:29
Hola
Tengo una aplicacion de varias hojas y macors pero quando las protejo las macros no funciona, en las macros desmarco la casilla en formato de control proteger pero quando las quiero accionar se abre la ventana de VB, depurar etc..
Gracias.
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

como proteger hojas com macros

Publicado por enrique54 (90 intervenciones) el 14/12/2011 19:56:54
Creo que son dos cosas diferentes
una es el formato de la celda o la hoja
y otra es en el editor de VB
que es donde las macros se crean y se pueden proteger para que las vean y no las muevan o de plano que no las vean
explica bajo estos supuestos un poco mas tu situación
y se te podrá ayudar
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

como proteger hojas com macros

Publicado por Angel (5 intervenciones) el 15/12/2011 16:47:33
Buenos dias amigo,

Tienes que modificar la macro por Visual Basic

Al iniciar el SUB debes utilizar el metodo WorkSheet.unProtect y le agregas la contraseña que estas utilizando en las hojas en el argumento correspondiente.
Esto te desproteje las hojas antes de utilizar la macro.

Antes del End Sub debes colocar el WorkSheet.Protect con la misma contraseña:
esto protejera las hojas antes de salir de la macro.

ejemplo:

Sub Abrir_libro ()
WorkSheet.unProtect = Password

Macro
Macro
Macro

WorkSheet.Protect = Password
End Sub

Cualquier duda escribes a mi correo y te mando el codigo elaborado

Angel Rodriguez
Caracas - Venezuela
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

como proteger hojas com macros

Publicado por Joan (8 intervenciones) el 16/12/2011 20:04:58
Gracias, lo he provado muy rapido y mo ha funcionado, seguire provando no se mucho de macros y boi lento
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

como proteger hojas com macros

Publicado por Carlos López apca4@hotmail.com (1 intervención) el 15/10/2015 04:42:04
Buenas noches Angel,
Este es mi código, pero no se como colocar los "Sub Abrir_libro ()
WorkSheet.unProtect = Password

Los anote pero no me funciono la macro, me puede ayudar. Gracias. Saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Sub DATOS()
'
' DATOS Macro
'
 
'
    Application.ScreenUpdating = False
    Sheets("DATOS").Select
    Range("A7:Q7").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    Sheets("REGISTRO PLANILLA").Select
    Range("J6:J19").Select
    Selection.Copy
    Sheets("DATOS").Select
    Range("A7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Sheets("REGISTRO PLANILLA").Select
    Range("M16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("DATOS").Select
    Range("O7").Select
    ActiveSheet.Paste
    Sheets("REGISTRO PLANILLA").Select
    Range("M17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("DATOS").Select
    Range("P7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Q7").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""E"",RC[-2]*RC[-4]*1.5,0)"
    Range("A7:Q7").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Range("B3").Select
    Sheets("REGISTRO PLANILLA").Select
    Range("J9").Select
    Selection.ClearContents
    Range("J12").Select
    Selection.ClearContents
    Range("J14").Select
    Selection.ClearContents
    Range("J16").Select
    Selection.ClearContents
    Range("J17").Select
    Selection.ClearContents
    Range("M16").Select
    Selection.ClearContents
    Range("J9").Select
    ActiveWorkbook.Save
    Application.ScreenUpdating = True
 
End Sub
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

como proteger hojas com macros

Publicado por Joan (8 intervenciones) el 16/12/2011 20:36:15
He tenido surte a aparecido un amigo y me dado una mano y la macro a quedado asi y funcio bien

Sub Macro1()


Application.ScreenUpdating = False
Range("F10:J10").Copy

Sheets("LLISTAT").Select
ActiveSheet.Unprotect "2010"
Dim x As Integer
x = 1
Range("A1").Select
Do While Not IsEmpty(Selection)
x = x + 1
Cells(x, 1).Select
Loop
ActiveSheet.Paste
ActiveSheet.Protect "2010"
Sheets("ENTRA DADES").Select
Range("H10:I10").ClearContents
Range("H10").Select
MsgBox ("S'ha copia carrectament!")

Application.ScreenUpdating = True


End Sub

me sirve para copiar un fila que entro los datos y me la copia en la base de datos
muchas gracias
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