Ciao,
ho copiato male io, ma sono proprio rinco...Grazie mille ;o)
Provo!!!
Rettifica: la macro excel "Testo_per_email_macro_excel()" l'ho trovata scartabellando in rete.
Moderatori: Anthony47, Flash30005
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & .HTMLBody
Sub invia_direttamente()
‘Invia direttamente le e-mail create dall'elenco con testo in Foglio2
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim K As Long
DA QUI SI CREA E INVIA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
Foglio1.Select
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla seconda riga
For I = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
' 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)
' La colonna "D" contiene l'eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = Cells(I, 4) 'Togliere l'apice davanti al punto se si vuole inserire un indirizzo
' La colonna "E" contiene l'oggetto della e-mail
.Subject = Cells(I, 5)
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & .HTMLBody
' La colonna "G" contiene il percorso ove si trova il file da allegare
' La colonna "H" contiene il nome del file da allegare
On Error Resume Next
.Attachments.Add (Cells(I, 7) & Cells(I, 8))
'.Display
.Send
K = K + 1
End With
Application.Wait (Now + TimeValue("0:00:01"))
Set OutMail = Nothing
Set OutApp = Nothing
'
Application.SendKeys "%a"
Next I
MsgBox ("Completato; (" & K & " messaggi)")
End Sub
‘RangePublish
Function RangePublish(ByVal mySh As String, ByVal PRan As String) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=101351
Dim TmpFile As String, myBDT As String, PubFile
TmpFile = "C:\DIR\" & "Testo.htm" 'Vedi testo
'Crea file html:
With ThisWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
Filename:=TmpFile, _
Sheet:=mySh, _
Source:=PRan, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'
Set fso = CreateObject("Scripting.FilesystemObject")
Set PubFile = fso.OpenTextFile(TmpFile, 1, False)
RangePublish = PubFile.ReadAll
PubFile.Close
'
End Function
Sub Crea_e_visualizza()
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim K As Long
'DA QUI SI CREA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
Foglio1.Select
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla seconda riga
For I = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
' 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)
' La colonna "D" contiene l'eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = Cells(I, 4) 'Togliere l'apice davanti al punto se si vuole inserire un indirizzo
' La colonna "E" contiene l'oggetto della e-mail
.Subject = Cells(I, 5)
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & .HTMLBody
' La colonna "G" contiene il percorso ove si trova il file da allegare
' La colonna "H" contiene il nome del file da allegare
On Error Resume Next
.Attachments.Add (Cells(I, 7) & Cells(I, 8))
.Display 'Il .Display funziona correttamente se si mette l'apice a Application.SendKeys "%a"
'.Send
K = K + 1
End With
' (c)
Application.Wait (Now + TimeValue("0:00:01"))
Set OutMail = Nothing
' (d)
Set OutApp = Nothing
'
'Application.SendKeys "%a"
Next I
MsgBox ("Completato; (" & K & " messaggi)")
End Sub
‘RangePublish
Function RangePublish(ByVal mySh As String, ByVal PRan As String) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=101351
'
Dim TmpFile As String, myBDT As String, PubFile
TmpFile = "C:\DIR\" & "Testo.htm" 'Vedi testo
'Crea file html:
With ThisWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
Filename:=TmpFile, _
Sheet:=mySh, _
Source:=PRan, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'
Set fso = CreateObject("Scripting.FilesystemObject")
Set PubFile = fso.OpenTextFile(TmpFile, 1, False)
RangePublish = PubFile.ReadAll
PubFile.Close
'
End Function
Sub Salva_in_folder_di_appoggio()
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim K As Long
'DA QUI SI CREA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
Foglio1.Select
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla seconda riga
For I = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
' 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)
' La colonna "D" contiene l'eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = Cells(I, 4) 'Togliere l'apice davanti al punto se si vuole inserire un indirizzo
' La colonna "E" contiene l'oggetto della e-mail
.Subject = Cells(I, 5)
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & .HTMLBody
' La colonna "G" contiene il percorso ove si trova il file da allegare
' La colonna "H" contiene il nome del file da allegare
On Error Resume Next
.Attachments.Add (Cells(I, 7) & Cells(I, 8))
.Display
'.Send
Dim proCd As MAPIFolder
Dim myNameSpace As Namespace
Set myNameSpace = Outlook.GetNamespace("MAPI")
Set proCd = myNameSpace.Folders("enrico.banco@email.it").Folders("Inbox").Folders("Processate") ‘inserire e-mail
OutMail.Move proCd
End With
K = K + 1
Set OutMail = Nothing
Set OutApp = Nothing
'Application.SendKeys "%a"
Next I
MsgBox ("Completato; (" & K & " messaggi)")
End Sub
‘RangePublish
Function RangePublish(ByVal mySh As String, ByVal PRan As String) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=101351
'
Dim TmpFile As String, myBDT As String, PubFile
TmpFile = "C:\DIR\" & "Testo.htm" 'Vedi testo
'Crea file html:
With ThisWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
Filename:=TmpFile, _
Sheet:=mySh, _
Source:=PRan, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'
Set fso = CreateObject("Scripting.FilesystemObject")
Set PubFile = fso.OpenTextFile(TmpFile, 1, False)
RangePublish = PubFile.ReadAll
PubFile.Close
'
End Function
Sub Invia_Tutte_Dopo_Controllo()
'Invia tutte le e-mail salvate in un folder di appoggio
'Apre Outlook
'Application.ActivateMicrosoftApp xlMicrosoftMail
Dim proCd As MAPIFolder
Dim myNameSpace As Namespace, myMex As MailItem
Dim I As Long
'
Set myNameSpace = Outlook.GetNamespace("MAPI")
Set proCd = myNameSpace.Folders("enrico.banco@email.it ").Folders("Inbox").Folders("Processate") '<<< Folder si destinazione'
'
For J = proCd.Items.Count To 1 Step -1
Set myMex = proCd.Items(J)
If TypeOf myMex Is MailItem Then
myMex.Send
myWait (0.5)
I = I + 1
End If
Next J
MsgBox ("Completato; (" & I & " messaggi)")
End Sub
Sub myWait(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
Sub Apri_file_word_per_testo_email()
'Apre file word che contiene macro per salvare file in htm
'Il file salvato presenta testo allineato a sinistra in modo corretto per invio e-mail
Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Open "C:\DIR\Testo_per_email.docx"
WordApp.Visible = True
Set WordApp = Nothing
End Sub
Sub Testo_per_email()
'Crea file in htm per testo allineato a sinistra in e-mail
ChangeFileOpenDirectory _
"C:\DIR\"
ActiveDocument.SaveAs2 FileName:="Testo.htm", FileFormat:=wdFormatHTML, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=0
ActiveWindow.View.Type = wdWebView
End Sub
Sub Draft_con_Testo_Word ()
'Usa la funzione GetBoiler
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim K As Long
'GetBoiler
firme = "C:\DIR\Testo.htm"
If Dir(firme) <> "" Then
signature = GetBoiler(firme)
Else
signature = ""
End If
'DA QUI SI CREA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
Foglio1.Select
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla seconda riga
For I = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
' 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)
' La colonna "D" contiene l'eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = Cells(I, 4) 'Togliere l'apice davanti al punto se si vuole inserire un indirizzo
' La colonna "E" contiene l'oggetto della e-mail
.Subject = Cells(I, 5)
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & signature & .HTMLBody
' La colonna "G" contiene il percorso ove si trova il file da allegare
' La colonna "H" contiene il nome del file da allegare
On Error Resume Next
.Attachments.Add (Cells(I, 7) & Cells(I, 8))
.Display
'.Send
Dim proCd As MAPIFolder
Dim myNameSpace As Namespace
Set myNameSpace = Outlook.GetNamespace("MAPI")
Set proCd = myNameSpace.Folders("enrico.banco@email.it").Folders("Inbox").Folders("Processate")
OutMail.Move proCd
myWait (0.3) 'Aggiunta Sub myWait
End With
K = K + 1
Set OutMail = Nothing
Set OutApp = Nothing
'Application.SendKeys "%a"
Next I
MsgBox ("Completato; (" & K & " messaggi)")
End Sub
Sub myWait(myStab As Single)
'Aggiunta Sub myWait
Dim myStTiM As Single
myStTiM = Timer
Do 'wait myStab
DoEvents
If Timer > myStTiM + myStab Or Timer < myStTiM Then Exit Do
Loop
End Sub
'GetBoiler
Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.ReadAll
ts.Close
End Function
Sub sumit()
Dim mainWB As Workbook
Dim SendID
Dim CCID
Dim Subject
Dim Body
Dim olMail As MailItem
Set otlApp = CreateObject("Outlook.Application")
Set olMail = otlApp.CreateItem(olMailItem)
Set Doc = olMail.GetInspector.WordEditor
'Dim colAttach As Outlook.Attachments
Dim oAttach As Outlook.Attachment
Set mainWB = ActiveWorkbook
SendID = mainWB.Sheets("Mail").Range("B1").Value
CCID = mainWB.Sheets("Mail").Range("B2").Value
Subject = mainWB.Sheets("Mail").Range("B3").Value
Body = mainWB.Sheets("Mail").Range("B4").Value
With olMail
.To = SendID
If CCID <> "" Then
.CC = CCID
End If
.Subject = Subject
'add the image in hidden manner, position at 0 will make it hidden
.Attachments.Add "C:\Users\Sumit Jain\Pictures\11\city.jpg", olByValue, 0
'Now add it to the Html body using image name
'change the src property to 'cid:your image filename'
'it will be changed to the correct cid when its sent.
.HTMLBody = .HTMLBody & "<br><B>Embedded Image:</B><br>" _
& "<img src='cid:city.jpg'" & "width='500' height='200'><br>" _
& "<br>Best Regards, <br>Sumit</font></span>"
.Display
.Send
End With
MsgBox ("you Mail has been sent to " & SendID)
End Sub
'Metodo Embedded Image
.Attachments.Add "C:\DIR\Prova.jpg", olByValue, 0
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & "<br><B>Ecco la grafica:</B><br>" _
& "<img src='cid:Prova.jpg'" & "width='500' height='200'><br>" _
& "<br>Ciao <br>EnricoBanco</font></span>" & .HTMLBody
Sub Inserisce_anche_grafica_in_testo_email()
'Pulsante "Crea le e-mail dall'elenco e le salva in un folder di appoggio con testo in Foglio2"
'Funziona: inserisce il contenuto del file testo.htm (ma non riesce ad inserire una grafica se nel range celle di excel) nel testo dell'e-'mail. Inserisce firma con grafica. Inserisce grafica in testo e-mail presa da file esterno
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim K As Long
'DA QUI SI CREA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
Foglio1.Select
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla seconda riga
For I = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
' 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)
' La colonna "D" contiene l'eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = Cells(I, 4) 'Togliere l'apice davanti al punto se si vuole inserire un indirizzo
' La colonna "E" contiene l'oggetto della e-mail
.Subject = Cells(I, 5)
'Metodo Embedded Image
.Attachments.Add "C:\DIR\Prova.jpg", olByValue, 0
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & "<br><B>Ecco la grafica:</B><br>" _
& "<img src='cid:Prova.jpg'" & "width='500' height='200'><br>" _
& "<br>Ciao <br>EnricoBanco</font></span>" & .HTMLBody
' La colonna "G" contiene il percorso ove si trova il file da allegare
' La colonna "H" contiene il nome del file da allegare
On Error Resume Next
.Attachments.Add (Cells(I, 7) & Cells(I, 8))
.Display 'Il .Display funziona correttamente se si mette l'apice a Application.SendKeys "%a"
'.Send
Dim proCd As MAPIFolder
Dim myNameSpace As Namespace
Set myNameSpace = Outlook.GetNamespace("MAPI")
Set proCd = myNameSpace.Folders("EnricoBanco@EnricoBanco.it").Folders("Inbox").Folders("Processate")
OutMail.Move proCd
End With
K = K + 1
Set OutMail = Nothing
Set OutApp = Nothing
'Application.SendKeys "%a"
Next I
MsgBox ("Completato; (" & K & " messaggi)")
End Sub
Function RangePublish(ByVal mySh As String, ByVal PRan As String) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=101351
'
Dim TmpFile As String, myBDT As String, PubFile
TmpFile = "C:\DIRl\" & "Testo.htm" 'Vedi testo
'Crea file html:
With ThisWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
Filename:=TmpFile, _
Sheet:=mySh, _
Source:=PRan, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'
Set fso = CreateObject("Scripting.FilesystemObject")
Set PubFile = fso.OpenTextFile(TmpFile, 1, False)
RangePublish = PubFile.ReadAll
PubFile.Close
'
End Function
'Metodo Embedded Image
.Attachments.Add (Cells(I, 7) & Cells(I, 8)), olByValue, 0
'Metodo Embedded Image
.Attachments.Add (Cells(I, 7) & Cells(I, 8)), olByValue, 0
'Metodo Embedded Image
.Attachments.Add (Cells(I, 7) & Cells(I, 9)), olByValue, 0
'.Attachments.Add "C:\Users\00220420\Desktop\Invio elenco e-mail con file allegato - Macro VBA Excel\Prova.jpg", olByValue, 0
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & "<br><B>Ecco la grafica:</B><br>" _
& "<img src=.Attachments.Add (Cells(I, 7) & Cells(I, 9))>" _
& "<br>Ciao <br>EnricoBanco</font></span>" & .HTMLBody
'Metodo Embedded Image
.Attachments.Add (Cells(I, 7) & Cells(I, 9)), olByValue, 0
'.Attachments.Add "C:\Users\00220420\Desktop\Invio elenco e-mail con file allegato - Macro VBA Excel\Prova.jpg", olByValue, 0
' La colonna "F" contiene l testo della e-mail oppure un range di celle nel Foglio1 o nel Foglio 2
.HTMLBody = "<table align=left>" & RangePublish("Foglio2", "A1:T21") & "<br><B>Ecco la grafica:</B><br>" _
& "<img src=""cid:" & cid & """ >" _
& "<br>Ciao <br>EnricoBanco</font></span>" & .HTMLBody
ma non inserisce una grafica dedicata nel testo di ciuascuna e-mail (il resto del processo funziona), anche se cambio con ".Attachments.Add "C:\Users\00220420\Desktop\Invio elenco e-mail con file allegato - Macro VBA Excel\Prova.jpg", olByValue, 0"
.Attachments.Add "C:\Dir\NomeImmagine.jpg"
<p>NomeImmagine</p>" & "<img src='cid:NomeImmagine.jpg' >"
Torna a Applicazioni Office Windows
Problemi di ricezione Mail su outlook Autore: danibi60 |
Forum: Applicazioni Office Windows Risposte: 2 |
Creare/ripristinare un “Immagine di sistema” - Win 10/11 Autore: m.paolo |
Forum: Sistemi Operativi Windows Risposte: 0 |
Importare immagini a seconda del testo in una cella Autore: Paolo67met |
Forum: Applicazioni Office Windows Risposte: 4 |
Inserire valore di una cella in altra cella con testo Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 17 |
Macro per aggiungere testo in tutti i files di una cartella? Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 15 |
Visitano il forum: Nessuno e 12 ospiti