Quiero que mis macros de mi libro "X" funcionen en mi libro "X"

hola tengo un problema... Tengo un libro el cual tengo el nombre de PANADERIA

el cual contiene varias macros 

una de ellas es 


Sub Reloj()

Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range("A2").Formula = "=NOW()"
Application.OnTime Now + TimeValue("00:00:01"), "reloj"
ActiveSheet.Protect
End Sub

me funciona bien pero cuando abro otro libro este me protege el libro que acabo de abrir 

y tengo este otro en un formulario el cual es de usuarios y contraseñas

Private Sub CommandButton1_Click()

Unload Me
MsgBox "NOS VEMOS PRONTO", vbInformation, "HASTA PRONTO"
'ActiveWorkbook.Close (False)
Call CerrarArchivo
ActiveWorkbook.Close (True)
Exit Sub
End Sub
'
Private Sub CommandButton2_Click()
Dim USUARIO As String
Dim password As Variant
Dim DatoEncontrado
Blog = "PROGRAMA DE PEDIDOS A PRODUCCION"
UsuarioExistente = Application.WorksheetFunction.CountIf(Range("G30:G39"), _
Me.txtUsuario.Value)
Set Rango = Range("G30:G39")
If Me.txtUsuario.Value = "" Or Me.txtPassword.Value = "" Then
MsgBox "Por favor introduce usuario y contraseña", vbExclamation, Blog
Me.txtUsuario.SetFocus
ElseIf UsuarioExistente = 0 Then
MsgBox "El usuario '" & Me.txtUsuario & "' no existe", vbExclamation, Blog
ElseIf UsuarioExistente = 1 Then
DatoEncontrado = Rango.Find(What:=Me.txtUsuario.Value, LookAt:=xlWhole, MatchCase:=True).Address
Contrasenia = Range(DatoEncontrado).Offset(0, 1).Value
If CStr(Range(DatoEncontrado).Value) = Me.txtUsuario.Value And Contrasenia = _
Me.txtPassword.Value Then
ActiveSheet.Unprotect
Range("I33").Value = "Usuario: " & Range(DatoEncontrado).Offset(0, -1).Value
'Aquí va el código para dar acceso a todo lo que el programador decida
Unload Me
UserForm1.Show
Application.Visible = True
Sheets("MENU").Select
ActiveSheet.Protect
Label2.Caption = Range("I33")
Else
MsgBox "La contraseña es inválida", vbExclamation, Blog
End If
End If
End Sub

'Evitamos que use la x para cerrar el formulario
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Por favor, ingresa una contraseña.", vbInformation, "PANIFICADORA EL RETORNO"
End If
End Sub

este me pasa igual si abro otro libro igual me busca datos en el otro libro cosa QUE NO ME DEBE PASAAAR!!!

un experto me comento que lo puedo volver ejecutable.EXE, lo hice pero el libro PANADERIA el cual contiene mis macros se abre solo a cada rato y no se quiere cerrar

esto tengo en thiswoorkbook

Private Sub Workbook_Open()
Application.Visible = False
ExecuteExcel4Macro ("show.toolbar(""ribbon"",0)")
Application.DisplayStatusBar = False 'QUITA BARRA DE MACROS
ActiveWindow.DisplayWorkbookTabs = False 'OCULTA HOJAS
Application.DisplayFormulaBar = False 'Oculta la barra de formulas
'''ANTES DE CADA MACRO
'Call Reloj
Sheets("MENU").ScrollArea = "A4:M50"
Sheets("MENU").Select
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
ActiveSheet.Unprotect
Range("I33").ClearContents

USUARIO.Show


Application.ScreenUpdating = False
Sheets("PANADERIA").Activate
ActiveSheet.Unprotect
ActiveSheet.Range("$F$5:$F$300").AutoFilter Field:=1
Range("G6:T300").Select
ActiveSheet.Unprotect
Selection.ClearContents
Sheets("PASTELERIA").Activate
ActiveSheet.Unprotect
ActiveSheet.Range("$F$5:$F$300").AutoFilter Field:=1
Range("G6:T300").Select
ActiveSheet.Unprotect
Selection.ClearContents
Sheets("COCINA").Activate
ActiveSheet.Unprotect
ActiveSheet.Range("$F$5:$F$300").AutoFilter Field:=1
Range("G6:T300").Select
ActiveSheet.Unprotect
Selection.ClearContents
Sheets("MENU").Select
Sheets("MENU").Protect
''' DESPUES DE CADA MACRO
ExecuteExcel4Macro ("show.toolbar(""ribbon"",0)")

End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cierre <> "SI" Then
Cancel = True
MsgBox "MODO DE CIERRE NO PERMITIDO...", vbCritical + vbOKOnly, " INFORMACIÓN"
ExecuteExcel4Macro ("show.toolbar(""ribbon"",0)")
End If
End Sub

espero su ayuda.... No consigo que sea tal cual necesito

1 Respuesta

Respuesta
1

Tienes que especificarle de cuál libro, de cuál hoja.

Si solamente pones Activesheet, lo va a hacer con la hoja activa. Ejemplo:

Sub Reloj()
    Application.ScreenUpdating = False
    Workbooks("Libro444.xlsx").Sheets("Hoja1").Unprotect
    Workbooks("Libro444.xlsx").Sheets("Hoja1").Range("A2").Formula = "=NOW()"
    Application. OnTime Now + TimeValue("00:00:01"), "reloj"
    Workbooks("Libro444.xlsx").Sheets("Hoja1").Protect
End Sub

Estimado tienes pendiente valorar esta respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas