Supportnet / Forum / Tabellenkalkulation
Email aus Excel
Frage
Hallo zusammen,
habe ein excel sheet mit 350 zeilen von denen jeweils 50 zu einem anderen Bereich gehören...
in diesen 50 zeilen werden jeweils alle Deliverables angezeigt die im Augenblick im Verzug sind...
nun möchte ich jeweils hinter den Bereich einen Knopf setzen, der mir den entsprechenden Bereich als XPS "druckt"/speichert und dann eine Mail mit dieser Datei als Anhang erstellt.
folgende Probleme habe ich - als absolutes VBA Greenhorn -dabei:
a) wie wähle ich mit VBA nen Drucker aus
b) wie sage ich dem Drucker er soll Bereich xy drucken? Muss ich ihm Zeilen/Spalten geben oder kann ich ihm auch den Bereichsnamen geben?
c) ich denke mal wenn als Drucker der XPS Writer angegeben ist wird automatisch das "save as" Fenster aufgehen. Wie gebe ich diese Position nun weiter an meinen email client, um ihm zu sagen wo er die anzuhängende Datei findet
d) wie häng ich überhaupt ne Datei mit VBA an?
e) geht das ganze überhaupt wenn nicht outlook sondern lotus notes das standard emailprogramm ist?
f) geht emails verschicken überhaupt über VBA? oder nur mit mailto befehl der automatisch deaktiviert ist wenn outlook nicht Standardprogramm ist!
Fragen über Fragen ;)
Ich hoffe ihr könnt mir helfen
Freue mich auch darüber wenn ich zumindest das mit dem "automatisch" drucken hinbekomme!
Viele Grüße und Danke schonmal für eure Hilfe
Philipp
Antwort 1 von wundi23
Hallo,
ne Antwort auf einen Teil der Fragen wäre auch schon toll!
Das mit dem Drucker müsste doch definitiv gehen oder? Also Bereiche drucken....
Viele Grüße
Philipp
PS: bin registriert yeah ;)
ne Antwort auf einen Teil der Fragen wäre auch schon toll!
Das mit dem Drucker müsste doch definitiv gehen oder? Also Bereiche drucken....
Viele Grüße
Philipp
PS: bin registriert yeah ;)
Antwort 2 von fedjo
Hallo Philipp,
drucken und den dazugehörigen Bereich, neue Arbeitsmappe erstellen mit dem Druckbereich kann man mit dem Makro Recorder aufzeichnen. E-Mail (Outlook) ist eine Aufzeichnung nicht möglich.
Ich hab mal ein Musterbeispiel erstellt , in ein Modul einfügen und Pfad, Empfänger E-Mail, Speichername ändern.
Gruß
fedjo
Option Explicit
Sub Makro1()
Range("E1:J39").PrintOut Copies:=1, Collate:=True 'Drucken
Range("E1:J39").Copy 'Neue Arbeitsmappe speichern
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ChDir "C:\Dokumente und Einstellungen\Admin\Desktop" 'Speichern Pfad ändern, Name (Mappe2) ändern
ActiveWorkbook.SaveAs Filename:= _
"C:\Dokumente und Einstellungen\Admin\Desktop\Mappe2.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Dim objOL As Object
Dim objMail As Object
Dim Bezeichnung As String
Dim MAdr As String
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Bezeichnung = ActiveWorkbook.Name
MAdr = "@freenet.de" 'Empfänger E-Mail Adresse einfügen
Application.ScreenUpdating = False
With objMail
.To = MAdr
.Subject = Bezeichnung
.Body = "Hallo Kollege"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
MsgBox ("Tabelle wurde erfolgreich versendet.")
Application.ScreenUpdating = True
End Sub
drucken und den dazugehörigen Bereich, neue Arbeitsmappe erstellen mit dem Druckbereich kann man mit dem Makro Recorder aufzeichnen. E-Mail (Outlook) ist eine Aufzeichnung nicht möglich.
Ich hab mal ein Musterbeispiel erstellt , in ein Modul einfügen und Pfad, Empfänger E-Mail, Speichername ändern.
Gruß
fedjo
Option Explicit
Sub Makro1()
Range("E1:J39").PrintOut Copies:=1, Collate:=True 'Drucken
Range("E1:J39").Copy 'Neue Arbeitsmappe speichern
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ChDir "C:\Dokumente und Einstellungen\Admin\Desktop" 'Speichern Pfad ändern, Name (Mappe2) ändern
ActiveWorkbook.SaveAs Filename:= _
"C:\Dokumente und Einstellungen\Admin\Desktop\Mappe2.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Dim objOL As Object
Dim objMail As Object
Dim Bezeichnung As String
Dim MAdr As String
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
Bezeichnung = ActiveWorkbook.Name
MAdr = "@freenet.de" 'Empfänger E-Mail Adresse einfügen
Application.ScreenUpdating = False
With objMail
.To = MAdr
.Subject = Bezeichnung
.Body = "Hallo Kollege"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
MsgBox ("Tabelle wurde erfolgreich versendet.")
Application.ScreenUpdating = True
End Sub

