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 Senior
 
Post: 107
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: 15977
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 Senior
 
Post: 107
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: 15977
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 Senior
 
Post: 107
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 Senior
 
Post: 107
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: 15977
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 Senior
 
Post: 107
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 Senior
 
Post: 107
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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 22/02/18 09:27

Ciao Anthony, eccomi qua.
su Office 2016 non parte la macro.

Ho controllato tutte le impostazioni di protezione macro e componenti aggiuntivi di Outlook e sembra tutto ok, confrontandolo anche col PC dove la macro funziona.
Provando a eseguire la macro non accade nulla, nemmeno un avviso di blocco o di errore.

Hai qualche idea?

grazie
christianghz
Utente Senior
 
Post: 107
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 22/02/18 13:23

su Office 2016 non parte la macro.
[. . . .]
Hai qualche idea?

Strano, perche' io l'ho sviluppata e collaudata su OL2016...

"Non accade niente" e' il peggior modi di dire quel che accade...

Mi confermi che all'avvio ti chiede di abilitare le macro? Mi confermi che il codice e' stato inserito in un Modulo standard e non in ThisOutlookSession? Come (con quali comandi) avvii la macro?

Do' per scontato che con "non accade nulla" intendi anche che le mail inserite nel "folder DaProcessare" rimangano lì e non vengano spostate nel "folder Processate" (me lo confermi?)
La macro dovrebbe avere un messaggio finale, non so se nel tuo caso esce o non esce; me lo dici?
Se esce, mi dici quale e' il messaggio? (meglio se fai uno screenshot e pubblichi quello).

Poi tu sai che la macro crea nella directory BasePath = "C:\PROVA" (o come l'hai definita nella macro) una subdirectory nel formato aa-mm-gg (quindi 18-02-22 se la macro la esegui oggi): e' stata creata o non e' stata creata? Al suo interno (se e' stata creata) ci sono dei file?

Se trovi la subdirectory ma senza nessun file allora io controllerei che l'albero dei folders da processare sia aderente con la tua installazione; il tutto e' descritto nelle seguenti istruzioni
Codice: Seleziona tutto
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

Che puntano rispettivamente a
Cartelle personali / Posta in arrivo /DaProcessare
Cartelle personali / Posta in arrivo /Processate


Per capire come e' fatto l'albero dei tuoi folder, sperando che siano max a 3 livelli, usa questa macro:
Codice: Seleziona tutto
Sub folderTree()
Dim olApp As New Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim I As Long, J As Long, K As Long

Set myNameSpace = olApp.GetNamespace("MAPI")
For I = 1 To myNameSpace.Folders.Count
    Debug.Print I, myNameSpace.Folders(I).Name
    For J = 1 To myNameSpace.Folders(I).Folders.Count
        Debug.Print I, J, myNameSpace.Folders(I).Folders(J)
        For K = 1 To myNameSpace.Folders(I).Folders(J).Folders.Count
            Debug.Print I, J, K, myNameSpace.Folders(I).Folders(J).Folders(K).Name
        Next K
    Next J
Next I
End Sub
Eseguila una volta; poi all'interno del vba di outlook premi Contr-g per aprire la "finestra Immediata" e qui troverai l'organizzazione dei tuoi folder.

Se non e' coerente con quanto dichiarato nelle due istruzioni Set xxxx = myNameSpace.Folders(etc etc allora aggiorna le istruzioni.

Se invece e' coerente allora esegui "passo passo" le istruzioni della Sub WorkAll, usando F8: metti il cursore del mouse su una qualsiasi istruzione, premi F8; l'istruzione che va a essere eseguita viene evidenziata in giallo.
Quando arrivi all'istruzione For J = daProc.Items.Count To 1 Step -1 controlla se entra nel ciclo o lo salta; se ci entra, quando arrivi all'istruzione If TypeOf myMex Is MailItem Then controlla se entra nelle istruzioni successive o le skippa.

Come vedi ho scritto 20 volte quello che hai scritto tu, non vorrei che sembri io piu' di te interessato a risolvere, quindi mi aspetto una risposta ampia ed esaustiva...
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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 23/02/18 10:29

Allora Anthony, scusami ti ho fatto lavorare per niente.
Oggi, non so perchè, funziona ma non ho toccato nulla.
Mi viene da pensare che forse bastava riavviare Outlook.
christianghz
Utente Senior
 
Post: 107
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 23/02/18 15:40

E comunque tieni presente che la prossima volta che "non accade niente" la mia risposta sara':
Codice: Seleziona tutto
Format c:

:D
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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 12/03/18 20:18

Ciao Anthony,
mi si pone un unico problema con questa MAcro:

Dopo che l'ho eseguita, i file salvati dalla stessa nel server, sono spostabili/eliminabili solo dal PC da cui l'ho eseguita.

Se provo a eliminarli da un altro PC, Windows mi dice che servono le autorizzazioni del proprietario, indicandomi il nome del PC che ha eseguito la suddetta macro.
christianghz
Utente Senior
 
Post: 107
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 13/03/18 15:03

Direi che Windows fa un ottimo lavoro...
Se un utente e' assegnatario di un'area su un server allora non sarebbe logico consentire ad altro utente di disfare quanto fatto dal primo utente.
Insomma devi salvare su un'area che sia "condivisa" tra piu' utenti; ma per questo ti potra' meglio aiutare il tuo Amministratore di rete o di sistema.

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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 13/03/18 19:29

Grazie Anthony!

MA... Ho un altro problema :oops:
nella mia ignoranza ho provato a modificare il tuo codice perfetto
Perdoname madre por mi vida loca
in modo che, oltre la cartella giornaliera, mi crei la cartella annuale e mensile, e dopodiché la cartella giornaliera al loro interno.

Di seguito indico le mie modifiche:
Codice: Seleziona tutto
Sub Processa_Moduli()
'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, MonthPath As String, YearPath 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("xy@xy.com").Folders("Posta in arrivo").Folders("_Da Processare")   '<<<Folder di origine
Set Procd = myNameSpace.Folders("xy@xy.com").Folders("Posta in arrivo").Folders("_Processate")      '<<< Folder si destinazione
'BasePath = "C:\PROVA" '<<< La directory "base" in cui saranno salvati gli allegati
BasePath = "S:\Invio-Ricezione\Ricezione_Moduli_Excel\MODULI CLIENTI DA PROCESSARE"


MsgBox ("Ora cerco Moduli excel da archiviare.. premi ok e attendi mio messaggio..")
 


noBB = "<>:/\|?*" & Chr(34)
PS = "\"

YearPath = Format(Now, "yyyy") & "_Moduli_Da_processare" '<<< inizio mia modifica al codice
If Right(BasePath, 1) <> PS Then BasePath = BasePath & PS
YearPath = BasePath & YearPath
If Dir(YearPath, vbDirectory) = "" Then MkDir (YearPath)


MonthPath = MonthName(Month(Date)) & Format(Now, "_yyyy") & "_Moduli_Da_processare"
If Right(YearPath, 1) <> PS Then YearPath = YearPath & PS
MonthPath = YearPath & MonthPath
If Dir(MonthPath, vbDirectory) = "" Then MkDir (MonthPath)


DayPath = Format(Now, "dd-mm-yyyy") & "_Moduli_Da_processare"
If Right(MonthPath, 1) <> PS Then MonthPath = MonthPath & PS
DayPath = MonthPath & DayPath
If Dir(DayPath, vbDirectory) = "" Then MkDir (DayPath) '<<< fine mia modifica al codice

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



Però mi processa un po' di mail con allegati e poi su alcune (ben definite) si blocca e dà
"Errore di run-time '-2147024893 (80070003)':
Impossibile salvare l'allegato. Percorso inesistente. Verificare che il percorso sia corretto."
a questa riga:
Codice: Seleziona tutto
 myMex.Attachments(I).SaveAsFile DayPath & PS & AName


non vedo particolarità nell'indirizzo email del mittente o altro che potrebbero bloccare il salvataggio (es: "/") e usando invece la macro scritta da te -senza le mie modifiche- quelle 4 mail vengono correttamente processate. :undecided:

Cosa sto sbagliando?

Grazie
christianghz
Utente Senior
 
Post: 107
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 13/03/18 23:21

Congratulazioni per il coraggio!

Pero' il mio DayPath e' nel formato AA-MM-GG, cioe' consente chiaramente di individuare l'anno, il mese, il giorno di appartenenza; non capisco quindi il bisogno di creare una subdir ANNO e un'altra MESE.

Comunque quando va in debug e la linea indicata e' evidenziata in giallo allora premi Contr-g per aprire la "finestra Immediata"; qui scrivi
Codice: Seleziona tutto
?DayPath & PS & AName

Poi controlla che la directory che ti scrive esista e che il nome file sia formalmente corretto (i caratteri vietati dovrebbero gia' essere stati eliminati).

Ciao

PS: mi risulta che la base del percorso sara' del tipo
Codice: Seleziona tutto
S:\Invio-Ricezione\Ricezione_Moduli_Excel\MODULI CLIENTI DA PROCESSARE\2018_Moduli_Da_processare\marzo_2018_Moduli_Da_processare\13-03-2018_Moduli_Da_processare

Era proprio cosi' che lo volevi?
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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi christianghz » 14/03/18 17:20

Sì deve venire fuori proprio così e ho scoperto che è proprio quello il problema:
se il nome dell'allegato che provo a salvare è già molto lungo di per sè, allora il percorso di salvataggio, nidificato come ho fatto io, diventa troppo lungo per il file system.

Quindi in alcuni casi blocca direttamente la macro, in altri processa le mail e salva gli allegati ma poi questi non sono apribili perché troppo lunghi per il file system.
christianghz
Utente Senior
 
Post: 107
Iscritto il: 03/02/14 17:58

Re: RINOMINARE E SALVARE ALLEGATI MAIL OUTLOOK

Postdi Anthony47 » 15/03/18 00:16

Come si dice in quest'altra discussione, la lunghezza del nome non puo' ussere superiore a 255 crt: viewtopic.php?f=26&t=109531&p=642832#p642800

Non te l'ho detto ieri perche' la lunghezza del percorso e' 160 crt, mi semmbrava impossibile che il nome file fosse lungo altri 100 crt.

Adesso che sai il problema immagino sai anche come evitarlo...

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: 15977
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


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

Windows Live Mail
Autore: aleyandro
Forum: Software Windows
Risposte: 3

Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti

cron