Usuário com melhor resposta
Adicionar data ao nome do arquivo

Pergunta
-
Bom Dia Pessoal!!!
Meu script esta funcionando perfeitamente!! porem tenho um cliente que me envia anexo sempre com o mesmo nome e ao salvar na pasta ele substitui o arquivo ja existente.
Alguem dabe uma maneira de incrementar esse script para que quando o e-mail chegue renomeio o arquivo na hora de salvar.
tipo poderia colocar ddmmyyyy hh:mm
Abraços
Tópico Original:
Macro para salvar anexos automaticamente no outlook 2007 para uma pasta
social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/95d59b4f-dc9c-4a6d-b6e1-f34160c983f6
- Dividir Fábio JrModerator quinta-feira, 22 de novembro de 2012 11:01 Aberto em tópico já encerrado
- Editado Fábio JrModerator quinta-feira, 22 de novembro de 2012 11:02 Add link
Respostas
-
Pode ser isso, mas gerou alguma mensagem de erro?
Public Sub BATAVO(Email As MailItem) Dim DiretorioAnexos As String Dim strDATAHORA As String Dim NomeArquivo As String DiretorioAnexos = "C:\sistema\Visual_rodopar\Auxiliares\XML_CLIENTES\Batavo\" strDATAHORA = right("0" & day(now),2) & right("0" & month(now),2) & year(now) & _ " " & right("0" & hour(now),2) & right("0" & minute(now),2) Dim MailID As String Dim Mail As Outlook.MailItem MailID = Email.EntryID Set Mail = Application.Session.GetItemFromID(MailID) i=1 For Each Anexo In Mail.Attachments If Right(Anexo.FileName, 3) = "xml" Then NomeArquivo=left(Anexo.FileName,len(Anexo.FileName)-4) & "_" & strDATAHORA & right(Anexo.FileName,4) Anexo.SaveAsFile DiretorioAnexos & NomeArquivo End If Next Set Mail = Nothing End Sub
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator segunda-feira, 26 de novembro de 2012 11:03
Todas as Respostas
-
-
Fabio!!
Obrigado pela resposta e interesse em ajudar!!!
Segue meu codigo
Public Sub BATAVO(Email As MailItem)
Dim DiretorioAnexos As String
DiretorioAnexos = "C:\sistema\Visual_rodopar\Auxiliares\XML_CLIENTES\Batavo\"
Dim MailID As String
Dim Mail As Outlook.MailItem
MailID = Email.EntryID
Set Mail = Application.Session.GetItemFromID(MailID)
For Each Anexo In Mail.Attachments
If Right(Anexo.FileName, 3) = "xml" Then
Anexo.SaveAsFile DiretorioAnexos & Anexo.FileName
End If
Next
Set Mail = Nothing
End Sub -
Não tenho como testar o script, me avise se funcionou:
Public Sub BATAVO(Email As MailItem) Dim DiretorioAnexos As String DiretorioAnexos = "C:\sistema\Visual_rodopar\Auxiliares\XML_CLIENTES\Batavo\" strDATAHORA = right("0" & day(now),2) & right("0" & month(now),2) & year(now) & _ " " & right("0" & hour(now),2) & right("0" & minute(now),2) Dim MailID As String Dim Mail As Outlook.MailItem MailID = Email.EntryID Set Mail = Application.Session.GetItemFromID(MailID) i=1 For Each Anexo In Mail.Attachments If Right(Anexo.FileName, 3) = "xml" Then NomeArquivo=left(Anexo.FileName,len(Anexo.FileName)-4) & "_" & strDATAHORA & right(Anexo.FileName,4) Anexo.SaveAsFile DiretorioAnexos & NomeArquivo End If Next Set Mail = Nothing End Sub
Fábio de Paula Junior
- Editado Fábio JrModerator quinta-feira, 22 de novembro de 2012 12:22 correção no script
- Sugerido como Resposta Fábio JrModerator quinta-feira, 22 de novembro de 2012 15:09
-
-
-
Pode ser isso, mas gerou alguma mensagem de erro?
Public Sub BATAVO(Email As MailItem) Dim DiretorioAnexos As String Dim strDATAHORA As String Dim NomeArquivo As String DiretorioAnexos = "C:\sistema\Visual_rodopar\Auxiliares\XML_CLIENTES\Batavo\" strDATAHORA = right("0" & day(now),2) & right("0" & month(now),2) & year(now) & _ " " & right("0" & hour(now),2) & right("0" & minute(now),2) Dim MailID As String Dim Mail As Outlook.MailItem MailID = Email.EntryID Set Mail = Application.Session.GetItemFromID(MailID) i=1 For Each Anexo In Mail.Attachments If Right(Anexo.FileName, 3) = "xml" Then NomeArquivo=left(Anexo.FileName,len(Anexo.FileName)-4) & "_" & strDATAHORA & right(Anexo.FileName,4) Anexo.SaveAsFile DiretorioAnexos & NomeArquivo End If Next Set Mail = Nothing End Sub
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator segunda-feira, 26 de novembro de 2012 11:03
-
-
Fabio, estou com um problema semelhante. Todos meus anexos tem o mesmo nome. Testei com a data e hora como você fez e também com um contador que criei e não funcionou. Meu script salva apenas 1 arquivo.
Pode me ajudar?
Public Sub ProcessarCarport(Email As MailItem) Dim DiretorioAnexos As String DiretorioAnexos = "D:\Trabalho Danilo\Campanhas\Macro\CARPORT\" Dim MailID As String Dim Mail As Outlook.MailItem Dim Nome As String MailID = Email.EntryID Set Mail = Application.Session.GetItemFromID(MailID) count = 1 For Each Anexo In Mail.Attachments Arquivo = Left(Anexo.FileName, Len(Anexo.FileName) - 3) & count & ".csv" Anexo.SaveAsFile DiretorioAnexos & Arquivo count = count + 1 Next Set Mail = Nothing count = 1 End Sub