Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1500to1504
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

Range in Email Body einfuegen

Range in Email Body einfuegen
03.07.2016 08:51:42
dave
Hallo VBA Freunde!
folgende Funktion bereitet mir Schwierigkeiten:
Public Sub Email(EmailAdresse As String)
Dim bereich As Range
Sheets("Pivot_Analysis").Activate
Set bereich = Sheets("Pivot_Analysis").Range(Cells(1, 1), Cells(1, 3).End(xlDown))
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = EmailAdresse
.Subject = "PHILOS OVERDUE OPPORTUNITIES"
.body = bereich
.Display
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Die Zeile
.body = bereich
verursacht einen Fehler: Array lower bound must be zero
Wie loese ich dieses problem?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in Email Body einfuegen
03.07.2016 10:23:11
Fennek
Hallo,
"Bereich" ist als Range definiert, an der Stelle .body= ist aber ein Text notwendig.
Versuche z.B. Inhalt einer Zelle: .body = cells(1,1), eine Spalte .body= join(worksheetfunction.transpose(Range("A1:A5"), ",")
In jedem Fall darf nur ein Text übergeben werden.
mfg
(ungeprüft)

AW: Range in Email Body einfuegen
03.07.2016 10:25:35
Matthias
Moin! Also mit .body gehen nur Variablen (bspw. Strings) oder einzelen Zellen aber keine Bereiche aus mehreren Zellen. Falls die so in die Mail sollen, dann in einem .htmlbody. Alternativ bei dir alle Zellen in einen String einlesen - wenn das so gewünscht ist. Viele Grüße

Anzeige
AW: Range in Email Body einfuegen
03.07.2016 10:27:31
Matthias
Moin! Also in .body gehen nur einzelne Zellen oder Variablen ( bspw. string). Bereiche aus mehreren Zellen können nur mit.htmlbody importiert werden (danggf. als Tabelle). Wenn du nur die Werte brauchst, dann ggf. alle Zellen aus deinem Bereich in einen String miteinander verketten. VG

AW: Range in Email Body einfuegen
03.07.2016 10:48:14
Nepumuk
Hallo,
teste mal:
Public Sub Email(EmailAdresse As String)
    
    Dim bereich As Range
    Sheets("Pivot_Analysis").Activate
    Set bereich = Sheets("Pivot_Analysis").Range(Cells(1, 1), Cells(1, 3).End(xlDown))
    
    Set MyOutApp = CreateObject("Outlook.Application")
    Set MyMessage = MyOutApp.CreateItem(0)
    With MyMessage
        .To = EmailAdresse
        .Subject = "PHILOS OVERDUE OPPORTUNITIES"
        .HTMLBody = RangeToHtml("Pivot_Analysis", bereich.Address)
        .Display
        
    End With
    
    Set MyOutApp = Nothing
    Set MyMessage = Nothing
    
End Sub

Private Function RangeToHtml( _
        ByVal pvstrWorksheetName As String, _
        ByVal pvstrRangeAddress As String) As String

    
    Dim objFilesytem As Object, objTextstream As Object
    Dim objPublishObject As PublishObject
    Dim strFilename As String, strTempText As String
    
    strFilename = Environ$("temp") & "\" & _
        Format(Now, "dd-mm-yy_hh-mm-ss") & ".htm"
    
    Set objPublishObject = ThisWorkbook.PublishObjects.Add( _
        SourceType:=xlSourceRange, _
        Filename:=strFilename, _
        Sheet:=pvstrWorksheetName, _
        Source:=pvstrRangeAddress, _
        HtmlType:=xlHtmlStatic)
    Call objPublishObject.Publish(Create:=True)
    
    Set objFilesytem = CreateObject("Scripting.FileSystemObject")
    Set objTextstream = objFilesytem.GetFile(strFilename).OpenAsTextStream(1, -2)
    
    strTempText = objTextstream.ReadAll
    Call objTextstream.Close
    
    RangeToHtml = Replace(strTempText, "align=center x:publishsource=", _
        "align=left x:publishsource=")
    
    Set objPublishObject = Nothing
    Set objTextstream = Nothing
    Set objFilesytem = Nothing
    
    Call Kill(PathName:=strFilename)
    
End Function

Gruß
Nepumuk

Anzeige
AW: Range in Email Body einfuegen
03.07.2016 10:59:22
dave
Danke leute :)

84 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige