Stránka 1 z 1

Úprava kódu

Napsal: 12 čer 2019 09:18
od barunkabro
Ahoj,

potřebovala bych poradit s tímto kódem na automatické vytvoření e-mailu v Excelu. Jelikož jsem úplný začátečník, potřebovala bych poradit, jak POD tu tabulku která se mi do mailu automaticky zkopíruje přidám další text. Je to možné?

Moc děkuji

Private Sub CommandButton3_Click()
Dim outlook As Object
Dim newEmail As Object
Dim xInspect As Object
Dim pageEditor As Object

Set outlook = CreateObject("Outlook.Application")
Set newEmail = outlook.CreateItem(0)

With newEmail
.To = Sheet4.Range("H1")
.CC = ""
.BCC = ""
.Subject = Sheet4.Range("D13")
.Body = Sheet4.Range("P23")
.display

Set xInspect = newEmail.GetInspector
Set pageEditor = xInspect.WordEditor

Sheet4.Range("B14:I15").Copy

pageEditor.Application.Selection.Start = Len(.Body)
pageEditor.Application.Selection.End = pageEditor.Application.Selection.Start
pageEditor.Application.Selection.PasteAndFormat (wdFormatPlainText)

.display
Set pageEditor = Nothing
Set xInspect = Nothing
End With

Set newEmail = Nothing
Set outlook = Nothing
End Sub

Re: Úprava kódu

Napsal: 15 čer 2019 16:28
od Grimm
Ahoj, napadlo mě toto řešení. Zpráva v těle mailu bude rozdělena na dvě části, které se vloží současně a mezi ně se poté vloží zkopírovaná "tabulka".

Kód: Vybrat vše


Private Sub CommandButton3_Click()
Dim outlook As Object
Dim newEmail As Object
Dim xInspect As Object
Dim pageEditor As Object
Dim TextNadTabulkou As String
Dim TextPodTabulkou As String

Set outlook = CreateObject("Outlook.Application")
Set newEmail = outlook.CreateItem(0)

TextNadTabulkou = Sheet4.Range("P23")
TextPodTabulkou = Sheet4.Range("P24")

With newEmail
    .To = Sheet4.Range("H1")
    .CC = ""
    .BCC = ""
    .Subject = Sheet4.Range("D13")
    .body = TextNadTabulkou & vbNewLine & TextPodTabulkou
    .display
   
    Set xInspect = newEmail.GetInspector
    Set pageEditor = xInspect.WordEditor
   
    Sheet4.Range("B14:I15").Copy
   
    With pageEditor.Application.Selection
        .Start = Len(TextNadTabulkou)
        .End = pageEditor.Application.Selection.Start
        .PasteAndFormat (wdFormatPlainText)
    End With
    Application.CutCopyMode = False
    .display
End With

Set pageEditor = Nothing
Set xInspect = Nothing
Set newEmail = Nothing
Set outlook = Nothing
End Sub