Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 12/12/17 21:04

Ciao a tutti.
ogni giorno ricevo via mail dai clienti 150-200 file excel da rielaborare, e spesso hanno lo stesso nome.

Ho bisogno di salvarli massivamente in automatico dalla mail in una cartella del PC(non con una regola, ma con input dell'operatore) per poi processarli tutti uno per uno. Volevo creare un'azione con pulsante rapido in alto che lancia un'azione o una macro, ma da quel che capisco non è possibile.

quando li salva, avndo spesso lo stesso nome, ho bisogno che li rinomini o con un numero casuale -per non creare doppioni- o con qualche riferimento specifico all'interno del file.

Conoscete un metodo o un'alternativa?

grazie
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 14/12/17 13:46

Si puo' fare, ma avrei bisogno di capire se si tratta di una sola mail con tanti allegati o di tante mail con un tot di allegati ciascuna.
Inoltre non mi e' chiaro se ogni giorno il percorso di salvataggio deve cambiare, o se sara' sempre lo stesso.
Infine, visto che parli di centinaia di file, hai bisogno di legare il nome del file in qualche modo al mittente della mail o questo legame e' inutile?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14973
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 14/12/17 14:14

Un centinaio di mail ogni giorno, da mittenti diversi, contenenti da 1 a 20 file excel.
Sarebbe utile salvare i file ogni giorno tutti insieme in una nuova cartella rinominata con la data del giorno, e sì, sarebbe utile se fossero rinominati con il nome del mittente, il giorno e il valore di una cella all'interno del file.
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 15/12/17 15:28

Confermo che "si puo' fare", ma in questo periodo sono a corto di tempo quindi devi portare pazienza.
Questa sarebbe una macro di Outlook, non vorrei aprire i file excel per andare a leggere il contenuto di una cella

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14973
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 15/12/17 18:09

Ok va bene e grazie
Siccome i file all'interno di una stessa mail potrebbero chiamarsi alla stessa maniera direi di salvarli con indirizzo del mittente + nome file + numero di allegato, tipo.
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 15/12/17 18:10

Magari con un controllo per vedere se ho già salvato file di quel mittente a questo punto, obde evitare doppioni, ma non vorrei chiedere troppo.

Grazie ancora
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 10/01/18 02:36

Non mi ero dimenticato...

Cominciamo a mettere un paletto.
Domanda: Come si identifica quali mail sono da esaminare?
Risposta: le metti in un folder specifico (le puoi spostare a mano o tramite una regola di outlook)
La macro guarda in questo folder, e terminata la lavorazione (cioe' l'estrazione degli allegati) sposta i messaggi "di posta" in un altro folder. Messaggi non di posta (es relative al Calendario) non vengono spostati.
Esempio:
-le mail da processare sono in
Cartelle personali / Posta in arrivo /DaProcessare
-vengono poi spostate in
Cartelle personali / Posta in arrivo /Processate
(il folder "Processate" deve gia' esistere)

Possiamo quindi provare con quasta mail di Outlook:
Codice: Seleziona tutto
Sub WorkAll()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=109180&p=641302#p641302
Dim daProc As MAPIFolder, Procd As MAPIFolder
Dim myNameSpace As NameSpace, myMex As MailItem, mMitt As String
Dim ZZsjAdd As String, ZZMailTxt As String, I As Long, BasePath As String, PS As String
Dim DayPath As String, J As Long, AttCnt As Long, mWAtt As Long, fCnt As Long, mTot As Long
Dim AName As String, mySplit, myTim As Single, eDel As Single, flXls As Boolean, mRes As Long
Dim mSender, noBB As String
'
Set myNameSpace = Application.GetNamespace("MAPI")
Set daProc = myNameSpace.Folders("Cartelle personali").Folders("Posta in arrivo").Folders("DaProcessare")   '<<<Folder di origine
Set Procd = myNameSpace.Folders("Cartelle personali").Folders("Posta in arrivo").Folders("Processate")      '<<< Folder si destinazione
BasePath = "C:\PROVA"                         '<<< La directory "base" in cui saranno salvati gli allegati
'
noBB = "<>:/\|?*" & Chr(34)
PS = "\"
DayPath = Format(Now, "yy-mm-dd")
If Right(BasePath, 1) <> PS Then BasePath = BasePath & PS
DayPath = BasePath & DayPath
If Dir(DayPath, vbDirectory) = "" Then MkDir (DayPath)
mTot = daProc.Items.Count
For J = daProc.Items.Count To 1 Step -1
'For Each myMex In daProc.Items
    Set myMex = daProc.Items(J)
    flXls = False
    If TypeOf myMex Is MailItem Then
        mSender = myMex.SenderName
'Stop
'        If myMex.SenderEmailType = "EX" Then
'            mSender = (myMex.Sender.GetExchangeUser.PrimarySmtpAddress)
'        Else
'            mSender = (myMex.SenderEmailAddress)
'        End If
'bonifica Adr:
        For I = 1 To Len(noBB)
            mSender = Replace(mSender, Mid(noBB, I, 1), "#", , , vbTextCompare)
        Next I
        myTim = Timer
        AttCnt = myMex.Attachments.Count
        If AttCnt > 0 Then
            For I = 1 To AttCnt
                '"Sistema" il nome file:
                AName = myMex.Attachments(I).DisplayName
                mySplit = Split(" " & AName, ".", , vbTextCompare)
                If UBound(mySplit, 1) > 0 Then
                    AName = mSender & "_" & Replace(AName, "." & mySplit(UBound(mySplit, 1)), "_" & Format(Now, "hh-mm-ss") & "." & mySplit(UBound(mySplit, 1)))
                Else
                    AName = mSender & "_" & AName & "_" & Format(Now, "hh-mm-ss")
                End If
                'se file xls, salva allegato:
                If InStr(1, mySplit(UBound(mySplit)), "xls", vbTextCompare) > 0 Then
                    fCnt = fCnt + 1
                    myMex.Attachments(I).SaveAsFile DayPath & PS & AName
                    flXls = True
                End If
            Next I
        Else
            'Niente?
        End If
        If flXls Then mWAtt = mWAtt + 1
        'Sposta messaggio:
        myMex.Move Procd
'eventuale attesa per >1 sec:
        If (Timer - myTim) < 1 Then
            eDel = (myTim + 1.5 - Timer)
            myWait (eDel)
        End If
    End If
'Next myMex
Next J
mRes = daProc.Items.Count       'Itm residui (non mailItems)
MsgBox ("Completato... " & vbCrLf & "Messaggi esaminati: " & mTot _
    & vbCrLf & "Mail (spostate) con allegati: " & mWAtt _
    & vbCrLf & "Totale file allegati: " & fCnt _
    & vbCrLf & "Messaggi rimanenti (non spostati): " & mRes)

End Sub

Sub myWait(ByVal myStab As Single)
Dim myStTiM As Single
'
    myStTiM = Timer
    Do          'wait myStab
        DoEvents
        If Timer > myStTiM + myStab Or Timer < myStTiM Then Exit Do
    Loop
End Sub

Va messo tutto in un Modulo standard del vba di Outlook, e all'occorrenza lanciare la Sub WorkAll.

Ci sono, nella parte iniziale, tre istruzioni marcate <<< che sono da personalizzare con "il percorso" col nome del folder che contiene le mail da processare e del folder dove le mail verranno spostate, e la "directory base" (in cui sara' creata una subdirectory giornaliera, stile YY-MM-GG) in cui saranno infine copiati gli allegati; la "directory base" deve gia' esistere.

Il nome del file e' creato anteponendovi l'indirizzo email del mittente (nota 1) e posponendovi un suffisso orario (stile HH-MM-SS).
Esempio:
nome@dominio.it_NomeFileOriginale_01-21-32.xlsx

Solo i file "xls*" saranno scaricati.

Messaggi che non siano email verranno lasciate nel folder "da processare"

Nota1: Non sono certo del comportamento dell'istruzione che cerca di raccogliere l'email del mittente (dipende da alcuni fattori che non ho inquadrato bene), quindi prova inizialmente con pochi messaggi e verifica poi la situazione degli allegati scaricati.
Dimmi anche che versione di Outlook usi.

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14973
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 11/01/18 12:08

Grande Anthony,
una cannonata.

Grazie mille.

Io uso Office 2013 ma proverò anche su 2016, ti farò sapere.

ti chiedo dove devo modificare questo mega codice perchè accetti anche .xlsx?
Sempre sia possibile,

grazie

Christian
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 11/01/18 12:42

ALT,
non serve.

Ho provato con degli .xlsx e processa anche quelli senza problemi!
christianghz
Utente Junior
 
Post: 89
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 11/01/18 13:46

Solo i file "xls*" saranno scaricati
Solo e tutti i file "XLS*"

Alla prossima
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14973
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK":

INVIO MAIL
Autore: scanacc
Forum: Applicazioni Office Windows
Risposte: 3

Chi c’è in linea

Visitano il forum: Nessuno e 24 ospiti