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

Copy-Ergebnis verkleinern/eingrenzen?

Copy-Ergebnis verkleinern/eingrenzen?
14.02.2020 09:29:25
Wolfgang
Hallo,
anbei ein Auszug aus einem Code, durch den Outlook geöffnet wird und dann der kopierte Tabellenbereich in die Mail eingefügt wird. Gibt es Möglichkeiten, das Ergebnis Copy, welches derzeit recht "fett" ist, irgendwie zu verringern -also, weniger KB/MB oder Pixel-? Gibt es vielleicht noch eine ganz andere Möglichkeit, den bestimmten Tabellenbereich mit wenig Speicherbedarf in eine eMail einzufügen? - Ich danke schon jetzt herzliche für die Rückantworten. Viele Grüße - Wolfgang
  • ' nachfolgend den gewünschten Tabellenbereich einstellen
    Range("A1:M23").Select
    Selection.Copy

  • 8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Copy-Ergebnis verkleinern/eingrenzen?
    14.02.2020 10:11:57
    Torsten
    Hallo Wolfgang,
    wenn die Tabelle in der Email nicht bearbeitbar sein muss, koenntest du sie als Bild einfuegen.
    Gruss Torsten
    AW: Copy-Ergebnis verkleinern/eingrenzen?
    14.02.2020 11:27:58
    Wolfgang
    Hallo Torsten,
    vielen Dank für die schnelle Rückmeldung und für Deinen Hinweis. Kannst Du mir evtl. Hinweise geben wie ich da vorgehen könnte? - Die Tabelle soll in der Mail jedenfalls nicht bearbeitbar sein, so dass die Idee mit dem Bild auch sehr gut wäre, wenn dadurch weniger Speicher erreicht werden kann.
    Danke und Gruß - Wolfgang
    AW: Copy-Ergebnis verkleinern/eingrenzen?
    14.02.2020 10:23:29
    peterk
    Hallo Wolfgang
    Versucch folgende Funktion
    Private Function RangeToHtml(ByVal pvstrWorksheetName As String, _
                                 ByVal pvstrRangeAddress As String) As String
    
        Dim objFilesytem As Object
        Dim objTextstream As Object
        Dim objPublishObject As PublishObject
        
        Dim strFilename As String
        Dim 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
    
    Aufruf mit:
            With objMail
                .BodyFormat = 2 ' olFormatHTML 
                
                .HtmlBody = RangeToHtml("Beispiel", "A3:AV30") ' anpassen!! 
                
                .display
            End With
    

    Anzeige
    objMail - Variable nicht definiert
    14.02.2020 11:24:54
    Wolfgang
    Hallo Peterk,
    vielen Dank für Deine schnelle Rückmeldung und die Funktion/den Code. Die Funktion habe ich auch in den Bereich Module gespeichert. Der "Startcode" meldet, dass bei objMail die Variable nicht definiert ist. Was muss ich beachten? - Danke schon jetzt wieder für Deine Rückmeldung.
    Gruß - Wolfgang
    AW: objMail - Variable nicht definiert
    14.02.2020 11:30:37
    peterk
    Hallo
    ObjMail war "mein" Email Objekt. Da Du bereits den Teil wie Du eine Email generierst geschrieben hast, musst Du diesen Teil an Deine Definitio anpassen. Alternativ: Schick mal Deinen ganzen Code, dan kann ich die Änderung einfügen
    Peter
    Danke Peterk, das funktioniert soweit
    14.02.2020 13:13:31
    Wolfgang
    Hallo Peterk,
    Danke für den erneuten Hinweis und Dein Angebot. Ich konnte die Hinweise umsetzen und in den bestehenden Code einbauen. Unterschied ist nun aber, dass vorhandene Bilder (Bildchen) nicht mit übernommen werden und in Outlook nun im Platzhalter angezeigt wird, dass das Bild nicht angezeigt werden kann. Hättest Du da evtl. auch noch eine Idee? - Vielen Dank - Gruß Wolfgang
    Anzeige
    AW: Danke Peterk, das funktioniert soweit
    14.02.2020 13:18:34
    peterk
    Hallo
    Dann brauchst Du noch eine Funktion
    Public Function ConvertPictureToMail(pstrTempText As String) As String
    
        Const HTM_START = "<link rel=File-List href="
        Const HTM_END = "/filelist.xml"
    
        Dim strTemp As String
        Dim lngPathLeft As Long
    
        lngPathLeft = InStr(1, pstrTempText, HTM_START)
    
        strTemp = Mid$(pstrTempText, lngPathLeft, InStr( _
            lngPathLeft, pstrTempText, ">") - lngPathLeft)
        strTemp = Replace(strTemp, HTM_START & Chr$(34), "")
        strTemp = Replace(strTemp, HTM_END & Chr$(34), "")
        strTemp = strTemp & "/"
    
        pstrTempText = Replace(pstrTempText, strTemp, Environ$("temp") & "\" & strTemp)
    
        ConvertPictureToMail = pstrTempText
    
    End Function
    
    Der Aufruf erfolgt in RangeToHtml (ich hab die einzufügende Zeile markiert)
        strTempText = objTextstream.ReadAll
        Call objTextstream.Close
        
        strTempText = ConvertPictureToMail(strTempText)  ' Diese Zeile eibfügen ... 
    
        RangeToHtml = Replace(strTempText, "align=center x:publishsource=", _
                              "align=left x:publishsource=")
    
        Set objPublishObject = Nothing
    

    Anzeige
    Vielen lieben Dank, Peterk - klappt nun super!!e
    14.02.2020 14:14:44
    Wolfgang
    Hallo Peterk,
    tausend Dank!! - Ich habe die Ergänzungen eingebaut und der Transfer in Outlook klappt nun super und offensichtlich mit erheblich weniger Speicherbedarf. Du hast mir sehr geholfen - nochmals vielen Dank und ein schönes Wochenende.
    Viele Grüße - Wolfgang

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige