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
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
0