Condividi:        

macro per inserire nel testo di una mail parte di foglio

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

macro per inserire nel testo di una mail parte di foglio

Postdi tav » 04/08/18 05:32

Ciao a tutti
Chi mi può aiutare? Volevo sapere come poter inserire in un resto di mail un foglio Excel al chi interno ci sono delle tabelle ( vorrei mantenere anche il formato)

https://wetransfer.com/downloads/f12c4e039a0ee7b3645928d492d3931320180803212539/6e0f8d72c63dd367f350608036d801d020180803212539/10d490

questo è il codice che ho fatto, ma non mi mette nulla nel testo
Codice: Seleziona tutto
Function All_Adr(ByRef CollAdd As Range) As String
Dim oCell As Range, eAdr
'
For Each oCell In CollAdd
    If oCell <> "" Then
        eAdr = eAdr & "; " & oCell
    Else
        Exit For
    End If
Next oCell
All_Adr = Mid(eAdr, 3)
End Function




Dim OutApp As Object, OutMail As Object

'



'Creazione mail:





Set OutApp = CreateObject("Outlook.Application")


Subj = "Rilavorazione " & " " & Format(Now + 1, "dd-mm-yy")                    '<<< OGGETTO DELLA MAIL
Set OutMail = OutApp.CreateItem(0)
With OutMail
    Sheets("Testo").Visible = True
    .body = All_Adr(Sheets("Testo").Range("A1:A200"))
   
       
   
   
    Sheets("Testo").Visible = False
   
   
   


   
   
   



   

   
   

 
   
   
    .to =
    .CC =                                             '<<<
    '.BCC =                       '<<<
    .Subject = Subj

    .display
End With
Set OutMail = Nothing
Set OutApp = Nothing
'


End Sub


tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Sponsor
 

Re: macro che inserisca nel testo un foglio

Postdi Anthony47 » 05/08/18 11:53

Se vuoi integrare parte di un foglio Excel in una mail, mantenendone anche il formato, allora devi formattare il testo della mail come Html e puoi usare la funzione RangePublish descritta qui: viewtopic.php?f=26&t=101351&p=586218#p586218; il codice:
Codice: Seleziona tutto
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 = Environ("Temp") & "\myBDT.htm"    'Lavora in Temp
'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

Poi nella tua mail prepari un testo formattandolo come htm, gli accodi la parte del foglio ed eventualemnte ulteriore testo con
Codice: Seleziona tutto
Mmess = "<b>Egr. Sig Pinco Palla</b><br>Le invio il riepilogo di sua competenza:<br><br>"
Mmess = Mmess & RangePublish("Foglio1", "A2:F10")
Mmess = Mmess & "<br>Cordiali saluti <br>Il mio nome"

Poi nel tuo codice, invece di .body = All_Adr(Sheets("Testo").Range("A1:A200")), userai
Codice: Seleziona tutto
.HTMLBody = Mmess


Oppure (come suggerito nella discussione che ti ho prima linkato), crei il messaggio completo in Excel, compreso preambolo, postambolo e saluti, e poi usi solo
Codice: Seleziona tutto
HTMLBody = RangePublish("NomeFoglio", "Indirizzo dell'area")


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per inserire nel testo di una mail parte di foglio

Postdi tav » 06/08/18 08:32

grazie mille
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: macro per inserire nel testo di una mail parte di foglio

Postdi tav » 06/08/18 17:32

scusa Anthony come faccio a mettere le tabelle che ho nel foglio sul lato sx della mail e non al centro
tav
Utente Junior
 
Post: 46
Iscritto il: 08/04/18 20:57

Re: macro per inserire nel testo di una mail parte di foglio

Postdi Anthony47 » 07/08/18 02:14

scusa Anthony come faccio a mettere le tabelle che ho nel foglio sul lato sx della mail e non al centro

Invece di usare RangePublish(Foglio, Area) usa
Codice: Seleziona tutto
Replace(RangePublish(Foglio, Area), "align=center", "align=left", 1, 1, vbTextCompare)


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro per inserire nel testo di una mail parte di foglio":


Chi c’è in linea

Visitano il forum: Gianca532011 e 80 ospiti