COSA EXTRAÑA

19/01/2010 - 03:16 por LUIS DANNY SALAS | Informe spam
Hola a todos , feliz año 2010 lleno de prosperidad y salud.
Tengo una macro que ha funcionado perfectamente , pero hace tres o 4 meses
que no uso el archivo y en este momento lo utilice y la macro no funciona
es decir produce un error desconocido y no trabaja como lo hacia antes.
Al darle click en el boton de la macro se abria el cuadro de dialolgo para
buscar el archivo "Actualizar" ,una vez localizado le daba abrir y la macro
funcionaba hasta el final pero si cuando estaba abierto el cuadro de
dialogo para abrir "Actualizar" decidía cancelar y no abrir el archivo
aparecía el mensaje de texto indicado en la macro:"Has cancelado la
actualización, puedes intentarlo después !!!" hasta ahí todo bien, pero
ahora aparece ese mensaje sin que yo haya decidido cancelar, es decir
presiono el boton de la macro y aparece el mensaje :"Has cancelado la
actualización, puedes intentarlo después !!! al darle aceptar queda abierto
el archivo "Actualizar" y se termina la macro sin haberse concretado toda su
funcion hasta el final.

No he modificado nada ni en el archivo ni en la computadora ni nada, y no
entiendo por que antes funcionaba perfectamente y ahora se presenta este
error.
Se agradece muchisimo cualquier ayuda :)

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias
"SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String)
As Long

Dim Localizado As String

Private Function Buscar(Archivo As String, Unidad As String) As String
Dim Pos As Long, Tmp As Long: On Error GoTo No_existe
Localizado = Space(260): Tmp = Busca_en_FAT(Unidad, Archivo, Localizado)
Pos = InStr(Localizado, vbNullChar)
If Not Pos Then Localizado = Left(Localizado, Pos - 1)
Buscar = Localizado: Exit Function
No_existe:
End Function

Private Sub ACTUALIZAR()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Abierto As Boolean
Application.Dialogs(xlDialogOpen).Show "ACTUALIZAR"
On Error Resume Next
Abierto = Len(Workbooks("ACTUALIZAR").Name)
On Error GoTo 0
If Abierto Then GoTo SkipWarning
MsgBox "Has cancelado la actualización, puedes intentarlo después !!!"
Exit Sub
SkipWarning:
MsgBox "Dale Aceptar para terminar de actualizar"
On Error GoTo Errores
Windows("ACTUALIZAR.xls").Activate
ThisWorkbook.Activate
ActiveWorkbook.Unprotect "VKF76KL"
Sheets("MATRICULA").Visible = True
Sheets("MATRICULA").Select
ActiveSheet.Unprotect "DFR56HG"
Windows("ACTUALIZAR.xls").Activate
Sheets("MATRICULA").Visible = True
Sheets("MATRICULA").Select
Range("A2:Z5000").Select
Selection.Copy
ThisWorkbook.Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("B2").Select
ActiveWindow.ScrollRow = 5006
Application.CutCopyMode = False
ActiveSheet.Protect "DFR56HG", DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection
Range("D5029").Select
Sheets("INDICE").Select
Windows("ACTUALIZAR.xls").Activate
Range("B2").Select
Sheets("ACTUALIZAR").Visible = True
Sheets("ACTUALIZAR").Select
Sheets("MATRICULA").Select
ActiveWindow.SelectedSheets.Visible = False
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWindow.Close
Application.DisplayAlerts = True
ThisWorkbook.Activate
Sheets("MATRICULA").Visible = False
ActiveWorkbook.Protect "VKF76KL"
Sheets("PERSONALIZAR").Select
MsgBox "Actualización realizada con éxito, felicidades!"
Errores:
Exit Sub
End Sub
 

Leer las respuestas

#1 Héctor Miguel
20/01/2010 - 06:35 | Informe spam
hola, Luis !

1) prueba: ELIMINANDO de tu codigo la instruccion: => Application.DisplayAlerts = False
(para que el codigo pueda avisarte si alguna linea esta incurriendo en cualquier falta (?)

2) prueba incluyendo la EXTension del archivo (.xls ???)

3) las otras dos funciones (la llamada a las API's y la funcion privada "Buscar") no son necesarias (no las utilizas)

saludos,
hector.

__ OP __
Tengo una macro que ha funcionado perfectamente, pero hace tres o 4 meses que no uso el archivo
y en este momento lo utilice y la macro no funciona es decir produce un error desconocido y no trabaja como lo hacia antes.
Al darle click en el boton de la macro se abria el cuadro de dialolgo para buscar el archivo "Actualizar"
una vez localizado le daba abrir y la macro funcionaba hasta el final
pero si cuando estaba abierto el cuadro de dialogo para abrir "Actualizar" decidía cancelar y no abrir el archivo aparecia el mensaje de texto indicado en la macro:"Has cancelado la actualizacion, puedes intentarlo después !!!"
hasta ahi todo bien, pero ahora aparece ese mensaje sin que yo haya decidido cancelar, es decir
presiono el boton de la macro y aparece el mensaje :"Has cancelado la actualización, puedes intentarlo después !!!
al darle aceptar queda abierto el archivo "Actualizar" y se termina la macro sin haberse concretado toda su funcion hasta el final.

No he modificado nada ni en el archivo ni en la computadora ni nada
y no entiendo por que antes funcionaba perfectamente y ahora se presenta este error.
Se agradece muchisimo cualquier ayuda :)

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias "SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String) As Long

Dim Localizado As String

Private Function Buscar(Archivo As String, Unidad As String) As String
Dim Pos As Long, Tmp As Long: On Error GoTo No_existe
Localizado = Space(260): Tmp = Busca_en_FAT(Unidad, Archivo, Localizado)
Pos = InStr(Localizado, vbNullChar)
If Not Pos Then Localizado = Left(Localizado, Pos - 1)
Buscar = Localizado: Exit Function
No_existe:
End Function

Private Sub ACTUALIZAR()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Abierto As Boolean
Application.Dialogs(xlDialogOpen).Show "ACTUALIZAR"
On Error Resume Next
Abierto = Len(Workbooks("ACTUALIZAR").Name)
On Error GoTo 0
If Abierto Then GoTo SkipWarning
MsgBox "Has cancelado la actualización, puedes intentarlo después !!!"
Exit Sub
SkipWarning:
MsgBox "Dale Aceptar para terminar de actualizar"
On Error GoTo Errores
Windows("ACTUALIZAR.xls").Activate
ThisWorkbook.Activate
ActiveWorkbook.Unprotect "VKF76KL"
Sheets("MATRICULA").Visible = True
Sheets("MATRICULA").Select
ActiveSheet.Unprotect "DFR56HG"
Windows("ACTUALIZAR.xls").Activate
Sheets("MATRICULA").Visible = True
Sheets("MATRICULA").Select
Range("A2:Z5000").Select
Selection.Copy
ThisWorkbook.Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B2").Select
ActiveWindow.ScrollRow = 5006
Application.CutCopyMode = False
ActiveSheet.Protect "DFR56HG", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection
Range("D5029").Select
Sheets("INDICE").Select
Windows("ACTUALIZAR.xls").Activate
Range("B2").Select
Sheets("ACTUALIZAR").Visible = True
Sheets("ACTUALIZAR").Select
Sheets("MATRICULA").Select
ActiveWindow.SelectedSheets.Visible = False
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWindow.Close
Application.DisplayAlerts = True
ThisWorkbook.Activate
Sheets("MATRICULA").Visible = False
ActiveWorkbook.Protect "VKF76KL"
Sheets("PERSONALIZAR").Select
MsgBox "Actualización realizada con éxito, felicidades!"
Errores:
Exit Sub
End Sub

Preguntas similares