Atascado en esto desde hace dos dias...
Hola a todos !
Estoy trabajando en un entorno Excel en el que grabo un fichero en una carpeta determinada.
Funciona perfectamente salvo en el caso que el usuario intente grabar el fichero con un nombre ya existente, entonces aparece el aviso de Nombre Duplicado...
Alguien tiene un codigo de ejemplo en el que controle la posibilidad que el usuario utilice un nombre de fichero ya existente en el cuadro de dialogo "Guardar como..." ?
Muchas gracias por adelantado!
Estoy trabajando en un entorno Excel en el que grabo un fichero en una carpeta determinada.
Funciona perfectamente salvo en el caso que el usuario intente grabar el fichero con un nombre ya existente, entonces aparece el aviso de Nombre Duplicado...
Alguien tiene un codigo de ejemplo en el que controle la posibilidad que el usuario utilice un nombre de fichero ya existente en el cuadro de dialogo "Guardar como..." ?
Muchas gracias por adelantado!
Hola,
aquí va un superejemplo ;-)
Dim rutaDoc As String
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Me.cdGuardar.Filter = "Documentos (*.doc)|*.doc"
Me.cdGuardar.InitDir = "C:"
Me.cdGuardar.DialogTitle = "Guardar Documento"
Me.cdGuardar.ShowSave
If Trim(Me.cdGuardar.FileName) = "" Then
Msgbox "Dale un nombre"
Exit Sub
Else
If fs.FileExists(Me.cdGuardar.FileName) Then
If MsgBox("Este fichero ya existe, ¿Desea Sobreescribirlo?", vbYesNo + vbInformation, "Fichero existente") = vbNo Then
Exit Sub
End If
End If
End If
Saludos
sdemingo
aquí va un superejemplo ;-)
Dim rutaDoc As String
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Me.cdGuardar.Filter = "Documentos (*.doc)|*.doc"
Me.cdGuardar.InitDir = "C:"
Me.cdGuardar.DialogTitle = "Guardar Documento"
Me.cdGuardar.ShowSave
If Trim(Me.cdGuardar.FileName) = "" Then
Msgbox "Dale un nombre"
Exit Sub
Else
If fs.FileExists(Me.cdGuardar.FileName) Then
If MsgBox("Este fichero ya existe, ¿Desea Sobreescribirlo?", vbYesNo + vbInformation, "Fichero existente") = vbNo Then
Exit Sub
End If
End If
End If
Saludos
sdemingo
Uy,
se me olvidaba grabarlo ;-)
Para grabar sobreescribiendo, ponle True como parámetro final a al comando con el salves.
Saludos
sdemingo
se me olvidaba grabarlo ;-)
Para grabar sobreescribiendo, ponle True como parámetro final a al comando con el salves.
Saludos
sdemingo
Hola sdomingo !
Gracias por tu atencion, pero no se si me explique bien, he utilizado la funcion GetSaveasFilename y con ello ya llego donde quiero e incluso guardo el archivo. Solo me falla el caso que el usuario intente entrar un nombre duplicado pues la aplicacion me responde con un aviso, y lo que no sé es como utilizar ese aviso en la programacion.
De hecho la macro que intento ejecutar es bien simple, la escribo debajo junto con lo que estoy buscando.
Dim FicheroGrabar As String
Dim Nombre_Fichero As String
FicheroGrabar = Application.GetSaveAsFilename(Nombre_Fichero)
If FicheroGrabar = "False" Then
Exit Sub
Else
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs _
Filename:=FicheroGrabar, _
FileFormat:=xlWorkbookNormal
*************************************************************************
AQUI NECESITARIA INCORPORAR EL CODIGO PARA CONTROLAR LA RESPUESTA DEL USUARIO PARA EL CASO DE FICHERO YA EXISTENTE.
CUANDO EL FICHERO YA EXISTENTE, LA APLICACION TE MUESTRA UNA VENTANA DONDE TE AVISA DEL DUPLICADO Y TE OFRECE TRES OPCIONES: REEMPLAZAR, NO REEMPLAZAR O CANCELAR.
MI PREGUNTA ES COMO PUEDO CONTROLAR LA RESPUESTA DEL USUARIO A ESTAS OPCIONES. NO ENCUENTRO COMO REFERIRME A ELLA.
NO SE SI ME EXPLICO. MUCHISIMAS GRACIAS POR EL INTERES.
**********************************************************************
Application.DisplayAlerts = False
End If
Gracias por tu atencion, pero no se si me explique bien, he utilizado la funcion GetSaveasFilename y con ello ya llego donde quiero e incluso guardo el archivo. Solo me falla el caso que el usuario intente entrar un nombre duplicado pues la aplicacion me responde con un aviso, y lo que no sé es como utilizar ese aviso en la programacion.
De hecho la macro que intento ejecutar es bien simple, la escribo debajo junto con lo que estoy buscando.
Dim FicheroGrabar As String
Dim Nombre_Fichero As String
FicheroGrabar = Application.GetSaveAsFilename(Nombre_Fichero)
If FicheroGrabar = "False" Then
Exit Sub
Else
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs _
Filename:=FicheroGrabar, _
FileFormat:=xlWorkbookNormal
*************************************************************************
AQUI NECESITARIA INCORPORAR EL CODIGO PARA CONTROLAR LA RESPUESTA DEL USUARIO PARA EL CASO DE FICHERO YA EXISTENTE.
CUANDO EL FICHERO YA EXISTENTE, LA APLICACION TE MUESTRA UNA VENTANA DONDE TE AVISA DEL DUPLICADO Y TE OFRECE TRES OPCIONES: REEMPLAZAR, NO REEMPLAZAR O CANCELAR.
MI PREGUNTA ES COMO PUEDO CONTROLAR LA RESPUESTA DEL USUARIO A ESTAS OPCIONES. NO ENCUENTRO COMO REFERIRME A ELLA.
NO SE SI ME EXPLICO. MUCHISIMAS GRACIAS POR EL INTERES.
**********************************************************************
Application.DisplayAlerts = False
End If
He estado mirando en las tropecientas mil paginas del foro por si encontraba una respuesta a esta cuestion, pero no he encontrado nada. Quizás lo que está mal es el planteamiento inicial de la macro que he creado. Alguien me puede decir si hay alguna solucion al problema o mas bien debo buscar un camino distinto para hacer lo que quiero.
Muchas gracias a todos
Muchas gracias a todos
