Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kopierten Bereich in Emailbody einfügen

Kopierten Bereich in Emailbody einfügen
17.02.2020 13:56:19
Markus
Hallo Leute,
ich verzweifel gerade etwas. Ich habe eine Tabelle gebaut, in der ein Makro jede Zelle eines Bereiches ablaufen soll und wenn das Datum überschritten ist, soll die komplette Zeile und die erste Zeile (Überschriftenzeile) in den Body der zu erstellenden Email kopiert werden.
Ich habe jetzt schon stundenlang im Internet gesucht und nichts gefunden, selbst herum probiert und es hat nicht geklappt und habe versucht es über eine aufgezeichnetes Makro heraus zu kriegen, was mir aber den entscheidenden Schritt nicht anzeigt.
Ich habe es mit allen Versionen von paste und copy mit und ohne selection probiert, ich bin anscheinend zu dumm dafür. Ich würde mich freuen, wenn mir jemand von euch helfen könnte.
zelle.Offset(0, 11).Copy
With objMail
.To = verantwortlich
.cc = person1 & ";" & person2 & ";" & person3
.Subject = "Offene Reklamation " & zelle.Value & " " & zelle.Offset(0, 1).Value & " " & zelle.Offset(0,3).Value
.Body = ERSTEZEILEAUSTABELLE & Chr(13) & KOPIERTENBEREICH (Zelle.offset(0,11))
.display
End With
Vielen Dank schon einmal.
MFG Markus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopierten Bereich in Emailbody einfügen
17.02.2020 14:35:04
Markus
Hallo Peter,
das funktioniert leider nicht. Und in der with-Anweisung kann ich doch sowieso keine Anweisung direkt aus der Tabelle ausführen oder?
Gruß Markus
AW: Kopierten Bereich in Emailbody einfügen
17.02.2020 14:42:04
peterk
Hallo
Stell bitte eine Beispieldatei ein, dann kann ich Dir den Code einfügen.
AW: Kopierten Bereich in Emailbody einfügen
17.02.2020 14:50:20
Nepumuk
Hallo Markus,
teste mal:
Option Explicit

Public Sub Test()
    
    Dim objOutlook As Object
    Dim objMail As Object
    Dim objWorksheet As Worksheet
    
    Set objWorksheet = Worksheets.Add
    
    Call Worksheets("Tabelle1").AutoFilter.Range.Copy(Destination:=objWorksheet.Cells(1, 1))
    
    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With objMail
        .To = "xxxxxx@yyyyyyy.zz"
        .Subject = "Offene Reklamation "
        .HTMLBody = "ERSTEZEILEAUSTABELLE<br><br>" & RangeToHTML(objWorksheet, objWorksheet.UsedRange)
        .Display
    End With
    
    Application.DisplayAlerts = False
    Call objWorksheet.Delete
    Application.DisplayAlerts = True
    
    Set objWorksheet = Nothing
    Set objMail = Nothing
    Set objOutlook = Nothing
End Sub

Private Function RangeToHTML(ByRef probjSheet As Worksheet, ByRef probjRange As Range) As String
    
    Const ForReading As Long = 1
    Const TristateUseDefault As Long = -2
    
    Dim strFilename As String
    Dim objPublishObject As PublishObject
    Dim objFileSystemObject As Object
    Dim objFile As Object
    Dim objTextStream As Object
    
    strFilename = Environ$("TMP") & "/" & Format$(Now, "dd-mm-yyyy_hh-mm-ss") & ".htm"
    
    Set objPublishObject = ThisWorkbook.PublishObjects.Add( _
        SourceType:=xlSourceRange, _
        Filename:=strFilename, _
        Sheet:=probjSheet.Name, _
        Source:=probjRange.Address, _
        HtmlType:=xlHtmlStatic)
    Call objPublishObject.Publish(Create:=True)
    
    Set objFileSystemObject = CreateObject(Class:="Scripting.FileSystemObject")
    Set objFile = objFileSystemObject.GetFile(strFilename)
    Set objTextStream = objFile.OpenAsTextStream(ForReading, TristateUseDefault)
    
    RangeToHTML = objTextStream.ReadAll
    
    Call objTextStream.Close
    
    Call Kill(PathName:=strFilename)
    
    RangeToHTML = Replace$(RangeToHTML, "align=center", "align=left")
    
    Set objPublishObject = Nothing
    Set objTextStream = Nothing
    Set objFile = Nothing
    Set objFileSystemObject = Nothing
End Function

Gruß
Nepumuk
Anzeige
AW: Kopierten Bereich in Emailbody einfügen
18.02.2020 08:19:53
Markus
Hallo Nepumuk,
ich probiere das später einmal aus. Das ist für mich jetzt anfänglich aber erst einmal ein riesen Aufwand, dafür, dass nur der Bereich in die Email kopiert werden soll. Ich habe das schon einmal gelesen, dass dafür gerne die Email im HTML Format formatiert wird. Aber das ist doch nicht zwangsläufig notwendig oder? Wenn ich das beispielsweise von Hand mache, gehe ich so vor, dass ich die Zeilen kopiere, die Email öffne und dort einfach einfüge. Dann habe ich sogar das Format der Tabelle mit drin. Kann man das nicht auf einfache Art mit dem Makro genauso machen?
LG Markus
Anzeige
AW: Kopierten Bereich in Emailbody einfügen
18.02.2020 12:00:28
Nepumuk
Hallo Markus,
teste mal so:
Option Explicit

Public Sub CreateMail()
    
    Dim objOutlook As Object, objMail As Object
    Dim objWord As Object
    
    Call Worksheets("Tabelle1").AutoFilter.Range.CopyPicture
    
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With objMail
        
        .BodyFormat = 2
        .To = "Empfänger@Porvider.de"
        .Subject = "Offene Reklamation "
        Call .Display
        Set objWord = .GetInspector.WordEditor.Application
        With objWord
            Call .Selection.TypeText(Text:="ERSTEZEILEAUSTABELLE")
            Call .Selection.TypeParagraph
            Call .Selection.TypeParagraph
            Call .Selection.Paste
            Call .Selection.TypeParagraph
            Call .Selection.TypeParagraph
            Call .Selection.TypeText(Text:="Gruß")
            Call .Selection.TypeParagraph
            Call .Selection.TypeText(Text:="Markus")
            Call .Selection.HomeKey(Unit:=6)
            
        End With
    End With
    
    Set objWord = Nothing
    Set objMail = Nothing
    Set objOutlook = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Kopierten Bereich in Emailbody einfügen
19.02.2020 13:37:50
Markus
Hallo Nepumuk,
den Code werde ich noch ausprobieren. Ich danke dir jedenfalls vielmals für deine Hilfe.
MFG Markus

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige