Error en Macro por cambio de Excel al 2013
El problema que se me presento es en una macro que funciona muy bien en el excel y sigue funcionando bien en el excel 2007 pero ahora que realice la actualizacion a excel 2013 la macro no funciona y me saca un error que es el Run Time 57121 y no se cual es el motivo al tratar de depurar la macro el error parece ser en el nombre que se le dio a las hojas y otra observacion es que el excel tiene diferente idioma el 2007 es en español y el 2013 es en ingles habria alguna diferencia?.
Alguien sabe porque me sale ese problema con la macro.
1 Respuesta
Puedes poner la macro.
¿Dime exactamente qué mensaje de error te envía?
¿Cuándo presionas depurar en qué línea de la macro se detiene?
Hola Dante mira esta es la macro
Sub Auto_open()
'copiar el numero de pc y pegarlo en 'CC' para desplegar la informacion de la estacion donde se abre
Application.ScreenUpdating = False
Sheets("E Binder").Select
Sheets("CC").Visible = True
sComputer = Environ("computername")
sUserName = Environ("username")
Worksheets("CC").Range("B2").Value = sComputer
Worksheets("CC").Range("R1").Value = sUserName
'Filtro avanzado para buscar CC's que comparten PC
Sheets("CC").Range("B6:C3000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("CC"). _
Range("B1:B2"), CopyToRange:=Sheets("CC").Range("K1:L10"), Unique:=False
'Cambia el rango del nombre CC para validacion de pagina principal
lCount = WorksheetFunction.CountA(Sheets("CC").Range("K1:K100"))
ActiveWorkbook.Names("CC").RefersToR1C1 = "=CC!R2C12:R" & lCount & "C12"
Sheets("E Binder").CommandButton1.Visible = False
'Cambia la celda que determina el CC que se usará y muestra mensaje
Sheets("E Binder").Range("F1").Value = Sheets("CC").Range("L2").Value
If Sheets("CC").Range("B3") > 1 Then
Application.ScreenUpdating = True
MsgBox "Elija el Centro de Costos que desea visualizar", vbOKOnly, ""
Rows("1:1").EntireRow.Hidden = False
Range("F1").Activate
ElseIf Sheets("CC").Range("B3") = 1 Then
Rows("1:1").EntireRow.Hidden = True
Application.ScreenUpdating = True
ElseIf Sheets("CC").Range("B3") = 0 Then
lCount = WorksheetFunction.CountA(Sheets("CC").Range("C6:C1000"))
ActiveWorkbook.Names("CC").RefersToR1C1 = "=CC!R7C3:R" & lCount + 6 & "C3"
Application.ScreenUpdating = True
MsgBox "Elija el Centro de Costos que desea visualizar", vbOKOnly, ""
Sheets("CC").Rows("1:1").EntireRow.Hidden = False
Range("F1").Activate
End If
Sheets("CC").Visible = xlVeryHidden
If Hoja4.Range("H2").Value <> "S" And _
Hoja4.Range("H2").Value <> "T" Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Exit Sub
End If
If Hoja4.Range("H2").Value = "S" Or _
Hoja4.Range("H2").Value = "T" Then
adminMenu.Show
Sheets("E Binder").CommandButton1.Visible = True
Sheets("E Binder").CommandButton2.Visible = True
Sheets("Documentos").CommandButton2.Visible = True
End If
End Sub
Sub regresar()
'regresa a la pagina de inicio.
On Error Resume Next
ActiveSheet.Unprotect Password:="gtc"
ActiveSheet.ShowAllData
Sheets("E Binder").Select
Sheets("Documentos").Visible = xlVeryHidden
' If Sheets("CC").Range("H2").Value = "S" Or _
' Sheets("CC").Range("H2").Value = "T" Then
'
' adminMenu.Show
' End If
End Sub
Y el problema se presenta en esta linea te adjunto la imagen, tambien lo despliga luego luego de abriendo el archivo.
espero me puedas ayudar porque eh visto algunas computadoras que lo abren sin problema con el mismo excel 2013 pero la mia es la que no lo puede abrir y no se porque.
Gracias
Saludos.
H o l a :
¿El excel 2013 es de microsoft o estás en una mac?
¿Existe la hoja con el nombre "E Binder"?
Cambia en la macro esta instrucción:
Sheets("E Binder").Select
Por esta:
WorkSheets("E Binder").Select
Prueba y me comentas.
Hola Dante si si esta visible la hoja E binder te envio una foto de como deberia de salir y al principio te deberia de enviar un cuadro de dialogo el cual te pudiera dar a elegir que quieres hacer en el E binder, pero no lo hace y en vez de eso saca el error 57121.
Voy a intentar cambiar a worksheets y estoy en una version de Windows, no es version de MAC.
Saludos
H o l a :
Entra a las opciones de excel, Centro de confianza, Configuración del Centro de confianza, Configuración de ActiveX y selecciona Habilitar todos los controles:
Otra alternativa:
Cambia a esto:
Sheets("E Binder"). Activate
Otra:
Comenta en la macro estas líneas:
sComputer = Environ("computername") SUserName = Environ("username")
Escribe en la hoja "CC" en la celda B2 el nombre de tu computadora y en la celda R1 escribe tu nombre de usuario.
S a l u d o s
La Hoja CC no le puedo escribir el nombre en las celdas ya que después de que se abre la macro se habilita la hoja CC si la macro no se habilita no muestra la página CC
No pasa nada sigue igual, también cambie lo que me dijiste en la macro y no hay cambio, lo unic que no intente fue lo de la página CC porque no puedo abrir la página
Entonces habilita manualmente la hoja "CC", entra a VBA y selecciona la hoja "CC" y en propiedades cambia Visible a Xlsheetvisible
Ya que tienes visible, escribe en la hoja "CC" en la celda B2 el nombre de tu computadora y en la celda R1 escribe tu nombre de usuario.
Prueba con esta macro:
Sub Auto_open() 'copiar el numero de pc y pegarlo en 'CC' para desplegar la informacion de la estacion donde se abre Application.ScreenUpdating = False Sheets("E Binder").Activate 'Sheets("CC").Visible = True 'sComputer = Environ("computername") 'sUserName = Environ("username") 'Worksheets("CC").Range("B2").Value = sComputer 'Worksheets("CC").Range("R1").Value = sUserName 'Filtro avanzado para buscar CC's que comparten PC Sheets("CC").Range("B6:C3000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("CC"). _ Range("B1:B2"), CopyToRange:=Sheets("CC").Range("K1:L10"), Unique:=False 'Cambia el rango del nombre CC para validacion de pagina principal lCount = WorksheetFunction.CountA(Sheets("CC").Range("K1:K100")) ActiveWorkbook.Names("CC").RefersToR1C1 = "=CC!R2C12:R" & lCount & "C12" Sheets("E Binder").CommandButton1.Visible = False 'Cambia la celda que determina el CC que se usará y muestra mensaje Sheets("E Binder").Range("F1").Value = Sheets("CC").Range("L2").Value If Sheets("CC").Range("B3") > 1 Then Application.ScreenUpdating = True MsgBox "Elija el Centro de Costos que desea visualizar", vbOKOnly, "" Rows("1:1").EntireRow.Hidden = False Range("F1").Activate ElseIf Sheets("CC").Range("B3") = 1 Then Rows("1:1").EntireRow.Hidden = True Application.ScreenUpdating = True ElseIf Sheets("CC").Range("B3") = 0 Then lCount = WorksheetFunction.CountA(Sheets("CC").Range("C6:C1000")) ActiveWorkbook.Names("CC").RefersToR1C1 = "=CC!R7C3:R" & lCount + 6 & "C3" Application.ScreenUpdating = True MsgBox "Elija el Centro de Costos que desea visualizar", vbOKOnly, "" Sheets("CC").Rows("1:1").EntireRow.Hidden = False Range("F1").Activate End If 'Sheets("CC").Visible = xlVeryHidden If Hoja4.Range("H2").Value <> "S" And _ Hoja4.Range("H2").Value <> "T" Then ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly Exit Sub End If If Hoja4.Range("H2").Value = "S" Or _ Hoja4.Range("H2").Value = "T" Then adminMenu.Show Sheets("E Binder").CommandButton1.Visible = True Sheets("E Binder").CommandButton2.Visible = True Sheets("Documentos").CommandButton2.Visible = True End If End Sub
S a l u d o s
Ya realice los cambios que me dijiste y aun así no funciona sigue saliendo el error 57121 pero en otras computadoras con el mismo excel si función debe ser algo en mi PC que no permite el buen funcionamiento
Envíame tu archivo original con la macro original para revisarlo.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “Jovanny sosa” y el título de esta pregunta.
H o l a:
La hoja está dañada, no es tu máquina.
Pide que te den un nuevo archivo que si funcione en otras máquinas.
O copia todo lo que tienes en la hoja "E Binder" a una nueva hoja, después elimina la hoja "E Binder". Renombra la nueva hoja como "E Binder"
Pero, lo mejor es que te envíen un nuevo archivo.
S a l u d o s
- Compartir respuesta