Office: (Office 2010) Excel VBA Email schreiben

Helfe beim Thema Excel VBA Email schreiben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Morgen, ich bin gerade dabei eine E-Mail über Excel zu generieren. Bin dabei auf ein Problem gestoßen, nämlich: Bei den beiden Punkten... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fabidi, 19. Oktober 2016.

  1. Fabidi Erfahrener User

    Excel VBA Email schreiben


    Guten Morgen,

    ich bin gerade dabei eine E-Mail über Excel zu generieren. Bin dabei auf ein Problem gestoßen, nämlich:
    Bei den beiden Punkten "Seller" und "Buyer" soll nur eine Zelle übernommen werden. Je nachdem in welcher Zelle etwas steht. Außerdem soll in der Email dann für die Zelle, die leer ist "Wir" eingefügt werden.

    Code:
    Sub Send_Kontraktbestätigung()
    
    Dim UserName As String
    Dim MailDbName As String
    Dim Recipient As Variant
    Dim Maildb As Object
    Dim MailDoc As Object
    Dim session As Object
    Dim stSignature As String
    Dim ritemtext As Object
    
    With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    
    
    
    AWS = ActiveWorkbook.FullName
    Set Worksheet = Application.ActiveWorkbook.Worksheets.Item(1)
    Set session = CreateObject("Notes.NotesSession")
    Set Maildb = session.CurrentDatabase
    Set MailDoc = Maildb.createdocument
    MailDoc.Form = "Memo"
    Set Workspace = CreateObject("Notes.NOTESUIWORKSPACE")
    stSignature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
    Recipient = ""
    'MailDoc.Display = "Testgruppe"
    MailDoc.sendto = ""
    MailDoc.copyto = ""
    MailDoc.Subject = "bla bla"
    MailDoc.SAVEMESSAGEONSEND = saveit
    Set ritem = MailDoc.CREATERICHTEXTITEM("Body")
    For i = 2 To 2
    With ritem
            .AppendText ("bla bla")
            .addnewline (3)
    End With
    Next
    For i = 3 To 3
    
    
    
    With ritem
            .AppendText ("")
            .AppendText ("Date:" & vbTab & vbTab & Cells(i, 2).Value)
            .addnewline (1)
    End With
    
     Next
     
     
     
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Seller:" & vbTab & vbTab & Cells(i, 3).Value)
            .addnewline (1)
    End With
    
    
    
    
     Next
    
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Buyer:" & vbTab & vbTab & Cells(i, 4).Value)
            .addnewline (1)
    End With
    
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Goods:" & vbTab & vbTab & Cells(i, 5).Value & " " & Cells(i, 6).Value & " " & Cells(i, 7).Value)
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Price:" & vbTab & vbTab & Cells(i, 8).Value & " " & Cells(i, 9).Value & "/mt")
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Quantity:" & vbTab & Cells(i, 12).Value & "mt")
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Period:" & vbTab & vbTab & Cells(i, 11).Value)
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Parity:" & vbTab & vbTab & Cells(i, 14).Value)
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Contract:")
            .addnewline (1)
    End With
    
     Next
     For i = 3 To 3
    
    With ritem
            .AppendText ("")
            .AppendText ("Ref.:" & vbTab & vbTab & "to follow")
            .addnewline (1)
    End With
    
     Next
    ritem.Update
    
    
    Call Workspace.editdocument(True, MailDoc).GOTOFIELD("Subject")
    
    
    
    MailDoc.PostedDate = Now()
    'Call MailDoc.SEND(False)
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachMe = Nothing
    Set session = Nothing
    .ScreenUpdating = True
    .DisplayAlerts = True
    End With
    Range("a1").Select
    ActiveWorkbook.Save
    End Sub
    Ich hoffe, dass ihr mir helfen könnt.

    Vielen Dank im Voraus
     
  2. BoskoBiati Erfahrener User
    Hallo,

    ich weiß zwar nicht, wie man eine E-Mail über Excel in der Forme versendet, aber der Code scheint mir doch etwas überfrachtet. Ungetestet das:

    Code:
    Sub Send_Kontraktbestätigung()
    
    Dim UserName As String
    Dim MailDbName As String
    Dim Recipient As Variant
    Dim Maildb As Object
    Dim MailDoc As Object
    Dim session As Object
    Dim stSignature As String
    Dim ritemtext As Object
    
    With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    
    
    
    AWS = ActiveWorkbook.FullName
    Set Worksheet = Application.ActiveWorkbook.Worksheets.Item(1)
    Set session = CreateObject("Notes.NotesSession")
    Set Maildb = session.CurrentDatabase
    Set MailDoc = Maildb.createdocument
    MailDoc.Form = "Memo"
    Set Workspace = CreateObject("Notes.NOTESUIWORKSPACE")
    stSignature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
    Recipient = ""
    'MailDoc.Display = "Testgruppe"
    MailDoc.sendto = ""
    MailDoc.copyto = ""
    MailDoc.Subject = "bla bla"
    MailDoc.SAVEMESSAGEONSEND = saveit
    Set ritem = MailDoc.CREATERICHTEXTITEM("Body")
    
    With ritem
            .AppendText ("bla bla")
            .addnewline (3)
    End With
    
    
    i = 3
    
    
    With ritem
            .AppendText ("")
            .AppendText ("Date:" & vbTab & vbTab & Cells(i, 2).Value)
            .addnewline (1)
    
            .AppendText ("")
            If Cells(i, 3) = "" Then
                .AppendText ("Seller:" & "wir")
            Else
                .AppendText ("Seller:" & vbTab & vbTab & Cells(i, 3).Value)
            End If
            .addnewline (1)
    
            .AppendText ("")
            If Cells(i, 4) = "" Then
                .AppendText ("Buyer:" & "wir")
            Else
                .AppendText ("Buyer:" & vbTab & vbTab & Cells(i, 4).Value)
            End If
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Goods:" & vbTab & vbTab & Cells(i, 5).Value & " " & Cells(i, 6).Value & " " & Cells(i, 7).Value)
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Price:" & vbTab & vbTab & Cells(i, 8).Value & " " & Cells(i, 9).Value & "/mt")
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Quantity:" & vbTab & Cells(i, 12).Value & "mt")
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Period:" & vbTab & vbTab & Cells(i, 11).Value)
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Parity:" & vbTab & vbTab & Cells(i, 14).Value)
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Contract:")
            .addnewline (1)
    
            .AppendText ("")
            .AppendText ("Ref.:" & vbTab & vbTab & "to follow")
            .addnewline (1)
    End With
    
    
    ritem.Update
    
    
    Call Workspace.editdocument(True, MailDoc).GOTOFIELD("Subject")
    
    
    
    MailDoc.PostedDate = Now()
    'Call MailDoc.SEND(False)
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachMe = Nothing
    Set session = Nothing
    .ScreenUpdating = True
    .DisplayAlerts = True
    End With
    Range("a1").Select
    ActiveWorkbook.Save
    End Sub
    
     
    BoskoBiati, 19. Oktober 2016
    #2
  3. Fabidi Erfahrener User
    Die Form hat vielleicht etwas damit zu tun, dass die Email via Lotus Notes versendet werden soll, aber war am Ende auch einfach mit viel ausprobieren :D
    Jedenfalls ist deine Lösung sehr gut. Hat wunderbar funktioniert :)
    Vielen Dank
     
  4. Fabidi Erfahrener User

    Excel VBA Email schreiben

    Um noch ein problem aufzubringen:

    Gibt es eine Möglichkeit, dass wenn ich das Makro ausführe, dass es mich fragt auf welche Zeile ich es beziehen möchte, da ich sonst 30 verschiedene Makros erstellen müsste und Schaltflächen (formularsteuerelement) und das sieht dann i.wann unübersichtlich aus, wenn das ganze Arbeitsblatt damit voll ist.
     
  5. BoskoBiati Erfahrener User
    Hallo,

    gibt es sicher. An den Anfang eine Inputbox oder Du beziehst Dich immer auf die aktuelle Zelle (ist gefährlich, wenn Du nicht aufpasst!).
     
    BoskoBiati, 19. Oktober 2016
    #5
Thema:

Excel VBA Email schreiben

Die Seite wird geladen...
  1. Excel VBA Email schreiben - Similar Threads - Excel VBA Email

  2. VBA eine Mail Empfänger aus Zellen ziehen

    in Microsoft Excel Hilfe
    VBA eine Mail Empfänger aus Zellen ziehen: Hallo, aktuell habe ich alle Mail-Empfänger in einer Zelle (K11) mit Semikolon getrennt stehen. Aktuell schaut es so aus: .To = Range("K11").Value Ziel ist es aber die Empfänger...
  3. Bild aus Excel mittels VBA in Email einfügen

    in Microsoft Excel Hilfe
    Bild aus Excel mittels VBA in Email einfügen: Hi Excel Fanatiker *wink.gif* ich habe folgendes Problem: Ich habe eine Email (mit Texten und Tabellen) in Excel, die mittels VBA in Outlook übertragen wird. Das klappt auch wunderbar, mittels...
  4. Excel Vba Email verzögert versenden

    in Microsoft Excel Hilfe
    Excel Vba Email verzögert versenden: Hallo an Alle! und zwar habe ich versucht, siehe Anhang, aus einer Excel Tabelle bestimmte Zeilen in einer Email zu verschicken. Grund ist, dass ich unsere Übungstermine in der Feuerwehr an die...
  5. Excel 2003 (VBA) Tabellenblatt Bereich als Email senden

    in Microsoft Excel Hilfe
    Excel 2003 (VBA) Tabellenblatt Bereich als Email senden: Hallo zusammen, ich bin neu in eurer Runde und möchte nach vergeblicher Suche Rat erfragen. Von VBA habe ich wenig Ahnung und konnte bis jetzt einen "gefundenen" VBA-Code dazu nutzen,...
  6. Email aus Excel per VBA verschicken

    in Microsoft Excel Hilfe
    Email aus Excel per VBA verschicken: Hallo zusammen, ich würde gern eine Mail aus Excel mittels VBA verschicken. Der folgende Code funktioniert auch schon. Dim olApp As Object Set olApp = CreateObject("Outlook.Application") With...
  7. Aufgaben aus einer Excel-Tabelle an verschiedene E-Mail-Adressen verteilen

    in Microsoft Excel Hilfe
    Aufgaben aus einer Excel-Tabelle an verschiedene E-Mail-Adressen verteilen: Hallo Forum, ich bin noch nicht allzu lange registriert, konnte aber bereits viele Hilfen und interessante Ansätze aus den Beiträgen entnehmen, welche mir sehr geholfen haben. In der Hoffnung...
  8. Emailinhalt in Excel einlesen

    in Microsoft Excel Hilfe
    Emailinhalt in Excel einlesen: Hallo zusammen, ich habe ein (hoffentlich eher simples) Problem: Es werden bestimmte Emails in einem Ordner (außerhalb Outlook) als .msg gespeichert. Sagen wir der Einfachheit halber auf dem...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden