Excel - ARchivo mal guardado.

 
Vista:

ARchivo mal guardado.

Publicado por Pablo (42 intervenciones) el 23/05/2011 00:33:38
El código siguiente me envía un archivo excel como adjunto por email.
Pero tengo un pequeño problema. Dentro del archivo tengo una celda que controla que registros del informe son atrasados. Para ello, guardo el informe con un determinado nombre (call nombrar), doy a la celda el valor de la fecha actual, lo guardo, y lo envío por email.
El problema es que la copia que se me queda en el equipo si evalúa los registros antiguos, pero la que envío no. Es decir, el adjunto que envío es anterior a que he guardado, ¿Por qué?

Sub Enviar_Email()
Call Nombrar

Dim OutApp As Object, fso As Object
Dim OutMail As Object
Dim Destinatario1 As String, Destinatario2 As String, Destinatario3 As String
Dim Archivo As Object, RutaArchivo As String
Dim Mes As String

On Error Resume Next

RutaArchivo = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
Set fso = CreateObject("Scripting.FileSystemObject")
Set Archivo = fso.GetFile(RutaArchivo)
Sheets("Informe").Range("W2").Value = Archivo.DateCreated
Archivo.Save


Mes = Sheets("Informe").Range("R4").Value
Destinatario1 = Sheets("Informe").Range("v2").Value
Destinatario2 = Sheets("Informe").Range("x2").Value
Destinatario3 = Sheets("Informe").Range("y2").Value


Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = Destinatario1
.CC = Destinatario2
.BCC = Destinatario3
.Subject = "Informe de " & Mes
.Body = "El archivo adjunto contiene el informe de " & Mes
.Attachments.Add (RutaArchivo)
.Send

End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ARchivo mal guardado.

Publicado por Antoni Masana (2477 intervenciones) el 23/05/2011 11:40:15
No se exactamente cual es el problema y como no he encontrado un manual decente de VBA no se que es lo que puede estar fallando pero te puedo sugerir un cambio que a mi me a funcionado.

Cambia Archivo.Save por ActiveWorkbook.Save

Se me ocurre una pregunta: Cuando finalizas la macro y le das a cerrar el Excel y si haber modificado nada ¿Pregunta si quieres guardar? Si la respuesta es afirmativa el Archivo.Save no esta guardando la modificación y por eso te envia el anterior.

El problema debe estar en estas dos lineas:

Set fso = CreateObject("Scripting.FileSystemObject")
Set Archivo = fso.GetFile(RutaArchivo)

pero vete tu a saber que C.J.N.S hace esto, no hay un puñetero manual donde se explique de forma coherente. Y la ayuda del Oficce es para hecharle de comer a parte.

Espero te servi y ya diras como ha te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ARchivo mal guardado.

Publicado por Pablo (42 intervenciones) el 24/05/2011 17:57:56
Esto debe ser cosa de bruxas o bruxos, porque yo ya había probado Active.Workbook.Save y por eso creía que tenía que hacer referencia al fichero creado, como si todavía siguiera trabajando con el original.
He probado lo que me has dicho y funciona. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar