Porque no funciona el “Protect” para las hojas

Porque no funciona el “Protect” para las hojas

Hola distinguidos expertos, de nuevo con un problemita… tengo esta macro que me permite a través de un USERFORM registros distintos en varias hojas, la macro responde satisfactoriamente, pero al agregarle la función “Protect”, detecta el siguiente error “Declaración duplicada en el ámbito actual”, y esto parece que se trata del concepto “Obra”. Su colaboración para corregir este error. Gracias de anticipadas.

Private Sub UserForm_Initialize()

ComboBox1.AddItem "obra1"   

ComboBox1.AddItem "obra2"    ’… Etc

End Sub

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Sheets(OBRA).Unprotect

Dim OBRA As String

OBRA = ComboBox1.Value

Sheets(OBRA).Activate

On Error GoTo sinhoja

Sheets(OBRA).Select

On Error GoTo 0

ActiveSheet.Range("A1").Select

Range("A1").Select

Range("b" & Cells.Rows.Count).End(xlUp).Offset(1).Select

ActiveCell.Offset(1, 1) = "OBRA"

ActiveCell.Offset(1, 2) = TextBox1.Value  ' Obra… Etc.

ComboBox1 = Empty

TextBox1 = ""

TextBox2 = "   ‘ "… Etc.

TextBox1.SetFocus

Application.ScreenUpdating = True

Exit Sub

Sheets(OBRA).Protect

sinhoja:

MsgBox "No se encuentra la hoja llamada " & OBRA, , "ERROR"

End Sub

1 respuesta

Respuesta
1

Le hice unos cambios a tu macro, puedes probarla.

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Dim OBRA As String
    '
    OBRA = ComboBox1.Value
    On Error GoTo sinhoja
    Sheets(OBRA).Select
    On Error GoTo 0
    '
    Sheets(OBRA).Unprotect
    ActiveSheet.Range("A1").Select
    Range("A1").Select
    Range("b" & Cells.Rows.Count).End(xlUp).Offset(1).Select
    ActiveCell.Offset(1, 1) = "OBRA"
    ActiveCell.Offset(1, 2) = TextBox1.Value
    'Etc...
    '
    ComboBox1 = Empty
    TextBox1 = ""
    TextBox2 = ""
    'etc...
    '
    TextBox1.SetFocus
    Application.ScreenUpdating = True
    Sheets(OBRA).Protect
    Exit Sub
sinhoja:
    MsgBox "No se encuentra la hoja llamada " & OBRA, , "ERROR"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas