Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
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

VBA - Teil einer Seite abschicken

VBA - Teil einer Seite abschicken
17.01.2022 12:31:42
Patrik
Viele Grüsse an das Forum
Ich habe eine xls Datei - bestehend aus 4 Seiten
Ziel ist es -nur einen Teil der ersten Seite (Bezeichnung "DATA") per Macro zu senden.
Es gelingt mir nicht den Teil der Seite zu wählen (Range)
Hier die VBA Programmierung die ich benutze. Es wird die komplette erste Seite versendet.
Falls jemand mir helfen könnte diese zu ergänzen/abzuändern um nur einen Teil abzuschicken- wäre toll.
Vielen Dank im vorraus.
Patrik

Sub speichern_und_absenden_Blatt_durch_outlook()
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = .......@........de"
.CC = ".......@......de;..........@.com;.......@.de"
.BCC = ""
.Subject = "REPORT" & Date
.Body = "REPORT"
.Attachments.Add Wb2.FullName
.Display
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Teil einer Seite abschicken
17.01.2022 12:38:15
MCO
Hallo Patrick,
für mich ist das alles ziemliches Gemüse....
  • Du kopierst das ganze Sheet, obwohl du nur einen Teil haben willst?

  • Dann prüfst du das Dateiformat um.... wofür?

  • Du willst doch nur einen doofen Report schichen:
    Kannst du nicht einfach den Druckbereich der Seite eingrenzen und ein pdf exportieren? Dem ist auch das Format egal....
    Gruß, MCO
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 12:46:52
    Patrik
    Nun - dieser Report ist eine laufende Datei. Wird andauernd ergänzt. Die weiteren Seiten berechnen Werte (Bestände, Löhne, Arbeitszeiten ect) aus den in der ersten Seite eingegebenen.
    Aber nur ein Teil dieser Daten soll versendet werden.
    Falls dort "Zuviel Gemüse" ist - was kann denn weg ?
    Vielen Dank
    Anzeige
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 13:03:35
    Patrik
    Nun - dieser Report ist eine laufende Datei. Wird andauernd ergänzt. Die weiteren Seiten berechnen Werte (Bestände, Löhne, Arbeitszeiten ect) aus den in der ersten Seite eingegebenen.
    Aber nur ein Teil dieser Daten soll versendet werden.
    Falls dort "Zuviel Gemüse" ist - was kann denn weg ?
    Vielen Dank
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 13:13:17
    ralf_b
    
    ....nur einen Teil der ersten Seite (Bezeichnung "DATA") per Macro zu senden....
    
    Was spricht dagegen Activesheet gegen Range("DATA") zu ersetzen?
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 13:14:40
    ralf_b
    
    ....nur einen Teil der ersten Seite (Bezeichnung "DATA") per Macro zu senden....
    
    Was spricht dagegen Activesheet gegen Range("DATA") zu ersetzen? Sofern DATA ein dateiweit gültiger Name ist.
    Anzeige
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 14:09:59
    Patrik
    Ich habe die unterschiedlichsten Varianten eingesetzt, verschoben, gelöscht und kopiert - und das Ergebniss ist leider immer das selbe - entweder keine Daten im Mail, oder Kopien die ich nicht möchte - oder es läuft gar nichts.
    Es ist nicht so als ob das jetzt mal was neues wäre - ich versuchs schon seit nem halben Jahr....Und inrgnwann resigniert man dann - und macht später weiter...
    Von Seite 1 die ich als "Data" bezeichnet habe - möchte ich nur den Bereich von A bis X in der Mail beigefügt haben.
    Das Ursprüngliche Heft bleibt erhalten. Keine weiteren Kopien werden erstellt.
    Das hier hat nicht funktioniert :
    sFilename = Environ$("TEMP") & "\" & Left$(Wb.Name, InStrRev(Wb.Name, ".") - 1) & ".xlsx"
    Workbooks.Add
    ActiveSheet.Name = "Data"
    Wb.Sheets("Data").Range("A1:X20").Copy
    Range("A1:X20").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
    Range("A1:X20").Select
    ActiveWorkbook.SaveAs Filename:=sFilename, _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close
    Wie gesagt - Die vorhandene Programmierung - macht was sie soll. Nur - sie verschickt die gesammte erste Seite.
    Anzeige
    AW: VBA - Teil einer Seite abschicken
    17.01.2022 15:04:17
    ralf_b
    in deinem ersten Code könntest du ohne viel dran zu ändern den unnötigen Bereich löschen.
    
    Activesheet.Range("A21:" & Activesheet.UsedRange.SpecialCells(xlCellTypeLastCell).Address(0, 0)).Clear   oder delete shift:=xlshiftup
    
    oder du erzeugst das neue Workbook nicht durch die Copy Methode des Blattes.
    
    set wbx = workbooks.add
    wb1.sheets(DATA").Range("A1:X20).copy
    wbx.Sheets(1).paste
    wbx.Sheets(1).name = "DATA"
    wbx.saveas  ..........
    

    AW: VBA - Teil einer Seite abschicken
    17.01.2022 12:48:13
    volti
    Hallo Patrik,
    leider habe ich gerade keine Zeit...
    Deshalb hier mal ein Link, in dem eine Anregung zum Versand von Bildschirmauschnitten steht.
    Denn ist es leicht möglich, über Kopieren einen Bereich oder einen Bereich als Bild in die Mail einzufügen.
    https://www.ms-office-forum.net/forum/showpost.php?p=2051399&postcount=11.
    Mehr, falls noch Bedarf besteht, gerne auch später...
    Gruß
    Karl-Heinz
    Anzeige
    AW: VBA - Teil einer Seite abschicken
    18.01.2022 00:20:38
    Patrik
    Hallo. Bin bis jetzt noch nicht an die richtige Problemlösung getroffen.
    Giebt es eine Möglichkeit die urprüngliche Programmierung so abzuändern - um nur einen Teil der ersten Seite abzuschicken ?
    Vielen Dank
    AW: VBA - Teil einer Seite abschicken
    18.01.2022 09:19:57
    volti
    Hallo Patrik,
    falls Du den zu versendenden Bereich direkt in die Mail einfügen möchtest könntest Du es so bzw. angepasst auf Deine Verhältnisse (Ausschnitt) angehen.
    Es gibt auch eine Lösung über RangetoHTML bzw. Range2HTML.
    Code:

    [Cc]

    Sub Mail() ' code.... ActiveSheet.Range("A1:F10").Copy ' Bereich kopieren With OutlookMail .To = ".......@........de" .CC = ".......@......de;..........@.com;.......@.de" .BCC = "" .Subject = "REPORT" & Date sMailtext = "REPORT" .GetInspector .htmlbody = Replace(sMailtext, vbLf, "<br>") & .htmlbody .Display With .GetInspector.WordEditor.Application.Selection .Start = Len(sMailtext) + 1 .Paste ' Bereich in Mail einfügen End With End With ' code.... End Sub

    _________________________
    viele Grüße aus Freigericht 😊
    Karl-Heinz

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige