Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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
Tabellen-Bereich in E-Mail einfügen
22.07.2020 19:03:46
Jochen
Tabellen-Bereich in E-Mail einfügen
Hallo zusammen,
erstmal ein großes Lob an alle die hier Antworten posten und ihr Wissen bereitstellen, hat mir schon einige Male geholfen, vielen Dank dafür!!!
ich berufe mich hier auf eine Fragestellung aus 2007 mit dem Titel "Tabellen-Bereich in E-Mail einfügen" leider hab ich keinen Weg gefunden direkt im Thread zu fragen....
Kurz zu meinem Problem: Ich möchte über einen commandButton automatisiert einen Excelbereich in eine Mail kopieren.
der folgende code hat bis jetzt super funktioniert:
Sub BEREICHMAILEN()
Dim OutApp As Object, Mail As Object, i
Dim Nachricht
' nachfolgend den gewünschten Tabellenbereich einstellen
Range("C47:G102").Select
Selection.Copy
' Öffnen der Mail
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.Subject = "Betrefftext"
.To = "Email@dresse.de"
.Display
End With
Set OutApp = Nothing
Set Nachricht = Nothing
'Kurz warten, damit die Mail Zeit zum Öffnen hat
Application.Wait (Now + TimeValue("0:00:05"))
' Dann die Zwischenablage einfügen
Application.SendKeys ("%bi") ' im Menü BEARBEITEN (Alt-B) das e-I-nfügen wählen
'Application.SendKeys ("^v") ' Strg-V Anweisung ist die 2.Möglichkeit statt Alt-B + I
End Sub
leider musste ich mein Excel File ändern und das führt dazu, dass der Range nicht mehr statisch ist sondern variabel. Was jedoch fix ist, ist der Startpunkt der Markierung in der Zelle C2, die Spalte für dem Endpunkt ist auch statisch in meinem Fall Z, jedoch die Zeile kann variieren zum Beispiel kann es die Zeile 2 sein aber auch die Zeile xx. Meine Frage ist jetzt, wie muss ich den oben genannten Code variieren, damit er auch den variablen Endpunkt der Markierung richtig erfasst?
Vielen Dank schon mal für eure Antworten.....

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
22.07.2020 19:23:09
ralf_b
Range("C47:G102").Select
Range("C47:G" & Cells(rows.count, "G").end(xlup).Row ).Select
hier wird in G die letzte benutzte Zeile als Endpunkt deines Bereiches herangezogen
AW: Tabellen-Bereich in E-Mail einfügen
22.07.2020 20:44:28
Jochen
Vielen Dank Ralf mit, deiner Modifikation funktioniert es so wie ich mir das vorgestellt habe!! ;)
freut mich ,danke für die rückmeldung owt
22.07.2020 20:51:27
ralf_b
AW: Tabellen-Bereich in E-Mail einfügen
22.07.2020 20:13:03
volti
Hallo Jochen,
ergänzend zu Ralf's Ausführungen habe ich evtl. noch einen Tipp für Dich.
Ich würde hier nicht mit SendKeys arbeiten. Du könntest den Bereich auch direkt einfügen.
Mir fiel auch auf, dass Du auch keinen Body-Text und keine Signatur hast. Ist das so gewollt?
Vielleicht gefällt Dir ja nachfolgende Anregung zur Erweiterung Deines Codes, die sicher auch noch ausbaufähig ist:

[+][-]
Sub BEREICHMAILEN() Dim OutApp As Object, Mail As Object, i Dim Nachricht, WSh As Worksheet, sBer As String Set WSh = ActiveSheet ' nachfolgend den gewünschten Tabellenbereich einstellen sBer = Range("C47:G" & Cells(Rows.Count, "G").End(xlUp).Row).Address ' öffnen der Mail Set OutApp = CreateObject("Outlook.Application") Set Nachricht = OutApp.CreateItem(0) With Nachricht .Getinspector 'Signatur holen .Subject = "Betrefftext" .To = "Email@dresse.de" .Display 'Bereich einfügen With .Getinspector.WordEditor.Application.Selection WSh.Range(sBer).Copy 'Bereich kopieren .Start = 1 'Einfügeposition .End = 1 .Paste 'Bereich einfügen End With End With Set OutApp = Nothing Set Nachricht = Nothing End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
22.07.2020 21:01:26
Jochen
Hallo Karl-Heinz
zu deinen Frage, ja das ist gewollt, dass keine Signatur eingegeben wird; da dies von meiner Firmenmail weggeht, ist automatisch in jeder zu verfassenden Mail die Signatur enthalten.
Nachdem ich mich mit den Fachausdrücken bezgl. VBA nicht auskenne (meine VBA Kenntnisse beruhen auf Googlesuchen um spezifische Probleme zu lösen) rate ich mal, dass mit Body-Text der Mailtext (z.B. Sehr geehrte Damen und Herren, nachstehend finden sie die gewünschten Informationen) gemeint ist, auch dieser ist schon im zu markierenden Bereich enthalten, weil mir das so am einfachsten erschien...
aber deine Tipps haben mich neugierig gemacht...
Mit SendKeys ist laienhaft gesprochen Strg+C und Strg+V gemeint oder? Welchen Vorteil hat es hier mit dem "As String" zu arbeiten?
MfG Joe
Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
22.07.2020 21:31:17
volti
Hallo Joe,
SendKeys ist bei den meisten Programmierern nicht beliebt, weil fehleranfällig. Es sind ja Tastaturanschläge ins offene Fenster.
Neu ist hier der Part .Getinspector.WordEditor.Application.Selection, der eine Übernahme ohne SendKeys ermöglicht und hierbei auch die Einfüge-Position bestimmt werden kann. In Deinem Fall eher uninteressant, weil kein body-Text.
Dass ich den zu kopierenden Bereich vorher in eine Variable sBer eingelesen habe, ist eher praktischer Art und muss nicht unbedingt so sein.
Das relevante Excelblatt habe ich in die Variable WSh gesetzt, da kann man auch mal ein anderes als das aktive angeben.
Wenn Du noch weitere Fragen hast, beantworte ich sie gerne....
viele Grüße
Karl-Heinz
Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
23.07.2020 12:04:01
Jochen
Vielen Dank für deine Ausführungen....
zur Zeit bin ich glücklich, aber meine Vorgesetzten lassen sich sicher wieder was einfallen, was man in dem File nichrt noch alles machen könnte und dann komme ich gerne auf dein Angebot zurück! ;)
MfG Joe
AW: Tabellen-Bereich in E-Mail einfügen
24.07.2020 11:28:51
Jochen
Hallo Karl-Heinz,
jetzt hab ich doch noch eine Aufgrab und eine Frage. Wie Bringe ich Excel über VBA dazu, vor dem Beenden des Programms, den Inhalt eines Textfeldes durch n.a. zu ersetzten? Zum besseren Verständnis hänge ich ein Dummyfile an. Im reiter Kommentar befindet sich das Textfeld, dass ich über VBA vor dem SChließen gerne mit n.a. befüllt hätte...
https://www.herber.de/bbs/user/139271.xlsm
würde mich freuen, wenn du mir auch hier helfen kannst....
LG Jo
Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
24.07.2020 12:19:01
volti
Hallo Joe,
teste mal die folgenden Makros.
In Deinem Fall würde ich das Makro Workbook_BeforeSave nehmen und in das Modul DieseArbeitsmappe einfügen, denn Du möchtest ja sicher, dass es gespeichert wird und das Textfeld bei Neustart entsprechend gesetzt ist.

Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Kommentar").TextBoxes("TextBox 1").Text = "n.a." End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("Kommentar").TextBoxes("TextBox 1").Text = "n.a." End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
24.07.2020 12:59:45
Jochen
Hi,
vielen Dank für die schnelle und perfekte Lösung
du hast Recht, die BevoreSave Variante ist die bessere, auf die Idee bin ich nicht gekommen, wollte einfach nur verhindern, dass Kommentare im Excel stehen bleiben, und der nächste User dann vergisst diese zu löschen, bevor er seine Abfrage wegschickt.
Wünsche schon mal ein schönes Wochenede

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige