Ayuda con codigo

14/10/2005 - 07:00 por DANILO ARANGO | Informe spam
Hola Foro.

ALguien me podria ayudar con lo siguiente:
Tengo un codigo que guarda un archivo, pero necesito que cuando vuelva a
guardar ese archivo y me pregunte que si deseo reemplazar, al decirle que no
me ejecute otro proceso (macro).

De antemano muchas gracias


Sub guardar_archivo()
On Error GoTo ControlError ' Activa la rutina de control de errores.

ActiveWorkbook.SaveAs Filename:="C:\Excel\ppombrearchivo",
FileFormat:= _
xlNormal, CreateBackup:=False

On Error GoTo 0 ' Desactiva la detección de errores.
On Error Resume Next ' Retarda detección de errores.
ControlError: ' Rutina de control de errores.
Select Case Err.Number ' Evalúa el número de error.
Case 55 ' Error "Archivo ya está abierto".
Close #1 ' Cierra el archivo abierto.
Case Else
' Puede incluir aquí otras situaciones...
End Select
'Resume ' Continuar ejecución en la línea que
' causó el error.
End Sub
 

Leer las respuestas

#1 Héctor Miguel
14/10/2005 - 07:54 | Informe spam
hola, DANILO !

... codigo que guarda un archivo, pero necesito que cuando vuelva a guardar ese archivo
... me pregunte que si deseo reemplazar, al decirle que no me ejecute otro proceso (macro).
Sub guardar_archivo()
On Error GoTo ControlError ' Activa la rutina de control de errores.
ActiveWorkbook.SaveAs Filename:="C:\Excel\ppombrearchivo", FileFormat:= _
xlNormal, CreateBackup:=False
On Error GoTo 0 ' Desactiva la deteccion de errores.
On Error Resume Next ' Retarda deteccion de errores.
ControlError: ' Rutina de control de errores.
Select Case Err.Number ' Evalua el numero de error.
Case 55 ' Error "Archivo ya esta abierto".
Close #1 ' Cierra el archivo abierto.
Case Else
' Puede incluir aqui otras situaciones...
End Select
'Resume ' Continuar ejecucion en la linea que causo el error.
End Sub



1) no me queda muy claro por que estas combinando un 'SaveAs' {+} 'FileFormat:=xlNormal'... con un 'Close #1'
a menos que hayas abierto con una funcion FreeFile y Open "archivo_excel" For ... As #1 -> un archivo de excel<- ???

2) podrias probar con alguna 'esructura' de codigo +/- como la siguiente [no se donde la debas incluir] :))
[ ... otras lineas de tu codigo ...]
If Not ActiveWorkbook.Saved Then
Select Case MsgBox( _
"¿Desea guardar los cambios efectuados en '" & _
ActiveWorkbook.Name & "'?", vbYesNoCancel + vbQuestion)
Case vbYes
' Aqui las instrucciones si decides que 'SI' ... '
Case vbNo
' Aqui las instrucciones si decides que 'NO' ... '
Case vbCancel
' Aqui las instrucciones si decides 'CANCELAR' ... '
End Select
End If
[... otras lineas de tu codigo ...]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares