Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

VBA-Allegare più files ad email

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

VBA-Allegare più files ad email

Postdi Ricky0185 » 05/04/20 17:59

Buonasera, con questo codice
Codice: Seleziona tutto
Sub Invia_Email()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim EmailAddr As String
    Dim Subj As String
    Dim BodyText As String
    Dim fs, f
    Foglio1.Select
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Quit
    Set OutApp = Nothing
     Application.Wait (Now + TimeValue("0:00:05"))
    RR = Range("B" & Rows.Count).End(xlUp).Row ' I dati iniziano dalla seconda riga
    For I = 2 To RR
        Perc = Cells(I, 6).Value
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.getfolder(Perc)
        Set NFile = f.Files
        NomeF = Cells(I, 7).Value
        NomeP = Replace(NomeF, ".png", "")
        LNome = Len(NomeP)

        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
' La colonna "B" contiene gli indirizzi e-mail dei vari destinatari
                  .To = Cells(I, 2)
' La colonna "C" contiene l'indirizzo e-mail in "Copia per Conoscenza"
                  .CC = Cells(I, 3)
' Eventuale e-mail in "Copia per conoscenza nascosta"
                  .BCC = ""
' La colonna "D" contiene l'oggetto della e-mail
                 .Subject = Cells(I, 4)
' La colonna "E" contiene l testo della e-mail
                  .Body = Cells(I, 5)
' La colonna "F" contiene il percorso ove si trova il file da allegare
' La colonna "G" contiene il nome del file da allegare
                    For Each Pf1 In NFile
                        If Pf1.Name = "" Then Exit Sub
                        If Mid(Pf1.Name, 1, LNome) = NomeP And Mid(Pf1.Name, Len(Pf1.Name) - 3, 4) = ".png" Then
                .Attachments.Add (Perc & Pf1.Name)
                        End If
                    Next
                .Send
                MsgBox ("Mail inviata")
                Application.Wait (Now + TimeValue("0:00:02"))
        End With
        Set fs = Nothing
        Set f = Nothing
        Set NFile = Nothing
        Set OutMail = Nothing
        Set OutApp = Nothing
        Application.Wait (Now + TimeValue("0:00:03"))
    Next I
MsgBox ("Invio completato")

End Sub

posso inviare un email con un allegato png od altro tipo, basta specificarlo nel modulo.
Vorrei poter allegare due file, il png ed anche un altro file pdf.
Il solito foglio con nella colonna B gli indirizzi, nella D l'oggetto, nella E il messaggio, nella F il percorso del file e nella G il file.
Soluzione? Inutile dirVi che ci sto provando da stamattina.
Seconda domanda: so bene che sconsigliate nel modo più assoluto di usare CDO per spedire emails, però l'ho usato spessissimo senza mai avere "conseguenze", anche perchè uso soltanto webmail sia per ricevere che spedire e la macro soprastante funziona solo con Outlook. Il problema del messaggio "errore 429 bla. bla." è sorto da quando ho reinstallato Windows poichè aveva iniziato a sbarellare. Cosa può aver causato il problema?
Sempre grazie per il tempo dedicatomi.
Cordiali saluti
Ricky
Ricky0185
Utente Junior
 
Post: 34
Iscritto il: 10/12/19 20:38

Sponsor
 

Re: VBA-Allegare più files ad email

Postdi Anthony47 » 05/04/20 23:19

Non ho capito su che cosa stai chiedendo aiuto... Se vuoi inserire piu' allegati, inseriscili uno dopo l'altro, tipo:
.Attachments.Add File1
.Attachments.Add File2
.Attachments.Add File3

Quanto al cdo, per me andrebbe rimosso da ogni pc perche' nessuno sa chi lo ha usato, chi lo usera' e per fare che cosa.
Mi sembra che tu lo sappia usare e quindi ne capisci le potenzialita'; non ho capito pero' di quale Errore 429 parli.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17043
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: VBA-Allegare più files ad email

Postdi Dylan666 » 07/04/20 10:55

regsvr32 "c:\windows\system32\cdosys.dll"

Fonte:
https://www.tgrmn.com/web/forum/viewtopict2314.htm
Avatar utente
Dylan666
Moderatore
 
Post: 38440
Iscritto il: 18/11/03 16:46

Re: VBA-Allegare più files ad email

Postdi Ricky0185 » 07/04/20 12:28

Avevo già provato e questa la risposta Immagine
https://ibb.co/nbdfFFD.
Grazie comunque.
Anthony, i problemi erano 2, uno risolto con il tuo suggerimento e l'altro appunto che il sistema CDO per inviare email non mi funziona più da quando ho reinstallato XP.
Saluti
Ricky0185
Utente Junior
 
Post: 34
Iscritto il: 10/12/19 20:38

Re: VBA-Allegare più files ad email

Postdi Dylan666 » 07/04/20 13:30

Su Windows 10 la DLL si registra.
Vedi questo:
http://www.ctimls.com/Support/KB/Error% ... _Error.htm
Avatar utente
Dylan666
Moderatore
 
Post: 38440
Iscritto il: 18/11/03 16:46

Re: VBA-Allegare più files ad email

Postdi Ricky0185 » 08/04/20 10:48

Seguita la procedura che mi hai suggerito, ma Immagine
https://ibb.co/wM6Yvb6
nonostante in system32 ci siano cdo e cdosys.dll ed altre dll suggerite in altri siti.
Pertanto....desisto, ringraziandoti per l'aiuto.
Ricky
Ricky0185
Utente Junior
 
Post: 34
Iscritto il: 10/12/19 20:38

Re: VBA-Allegare più files ad email

Postdi Dylan666 » 08/04/20 16:42

Ok, comunque il mio ultimo link pare molto dettagliato. Esamina la situazione a seconda del sistema operativo, della versione di Office e dell'architettura 32 o 64 bit
Avatar utente
Dylan666
Moderatore
 
Post: 38440
Iscritto il: 18/11/03 16:46


Torna a Applicazioni Office Windows


Topic correlati a "VBA-Allegare più files ad email":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti