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

Excel Datei automatisch speichern und versenden

Excel Datei automatisch speichern und versenden
25.06.2013 15:48:12
Tobias
Hallo,
Klaus hat mir schon einmal super bei diesem Thema geholfen, mir gelingt es aber nicht Anpassungen vorzunehmen. Das Thema wurde hier behandelt:
https://www.herber.de/forum/archiv/1316to1320/t1317504.htm
Es geht darum eine Datei nach Benutzern zu filtern, danach pro Benutzer eine Datei zu speichern, und im Anschluß eine Email mit dieser Datei individuell mit Outlook zu versenden.
Ich habe zum letzten mal einige Änderungen vorgenommen, da ich merke wie viel Potential dieses Thema hat. Statt eine Tabelle zu filtern, möchte ich auf einem Tabellenblatt nun oben (im Beispiel gelbes Feld) aus einer Namensliste alle Namen aufrufen, und diese Datei dann mit dem Namen als PDF Datei speichern.
Die neue Datei liegt hier:

Die Datei https://www.herber.de/bbs/user/86042.xlsm wurde aus Datenschutzgründen gelöscht


Vielen Dank für Eure Hilfe.
Tobias

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Datei automatisch speichern und versenden
25.06.2013 16:43:27
Klaus
Hallo Tobias,
auf den "Vorschau" Button bin ich auch schon mal reingefallen :-)
Danke für deine späte Rückmeldung. Ich habe sie erst heute gelesen, da der Thread bereits im Archiv war. Aber ich glaube jetzt wieder an das gute im Menschen :-)
Deine neue Aufgabe müsste prinzipiell recht einfach zu lösen sein. Unter 2010 kann man ja ein Sheet direkt mit Boardmitteln als PDF exportieren, und dem Mail-Makro ist es egal, ob sein Anhang (die Variable AWS) ein *.xlsx oder ein *.pdf ist solange der Pfad stimmt.
Ich schreib das hier aber gerade von meinem Netbook, auf dem kein Excel installiert ist. Das heißt, ich komme erst morgen Vormittag dazu, mir deine Dateien anzusehen. Falls sich bis dahin ein anderer Helfer findet, lasse ich den Beitrag erstmal noch offen.
Grüße,
Klaus M.vdT.

Anzeige
AW: Excel Datei automatisch speichern und versenden
25.06.2013 18:09:55
Tobias
Hallo Klaus,
für mich war es wirklich ein Schock deine Nachricht zu lesen, die ich zum Glück per email bekam. Ich hatte mich so über deine Lösung gefreut, und das tat mir leid dass ich die Antwort dann nicht richtig abgeschickt habe.
Nun beschäftige ich mich seit Tagen mit einer Abwandlung dieser Tabelle. Ich denke die Hauptschwierigkeit ist nicht das PDF Format, sondern dass es keine Tabelle mehr ist die gefiltert wird. Ich möchte nun aus verschiedenen Tabellenblättern Informationen in eine Übersicht per Formel ziehen, und dann über eine Auswahlliste, welche per Datenüberprüfung eine Namens-Liste enthält filtern. Am Ende soll dann nur diese Übersicht als PDF Datei versendet werden.
Vielleicht kann man anstatt der Datenüberprüfung auch etwas besseres einsezten. Wichtig ist eben nur dass alle Benutzer, die in der "Hilfstabelle" vorliegen, nacheinander in die Zelle A2 eingetragen werden (denn darauf beziehen sich die Formeln im unteren Bereich).
Wäre wirklich toll wenn dir hierzu noch etwas einfällt, deine erste Lösung hat auf jedenfall schonmal perfekt funktioniert.
VG Tobias

Anzeige
AW: Excel Datei automatisch speichern und versenden
25.06.2013 18:11:30
Tobias
noch offen :)

Achso, Datenüberprüfung ... naja.
26.06.2013 08:58:06
Klaus
Hallo Tobias,
in einem Beitrag weiter unten findest du den fertigen Code. Das hält mich nicht davon ab, diesen Beitrag noch zu kommentieren :-)
Ich denke die Hauptschwierigkeit ist nicht das PDF Format,
richtig, denn PDFs kann xl seit 2007 von alleine erstellen
sondern dass es keine Tabelle mehr ist die gefiltert wird.
was es tatsächlich einfacher macht! Vergleich mal die Codes. Nur noch eine Zeile PDF-erstellen statt des ewig langen "Autofilter - neue Datei - Bereich kopieren - Bereich einfügen - Format anpasssen" der ersten Lösung.
und dann über eine Auswahlliste, welche per Datenüberprüfung eine Namens-Liste enthält filtern
Oh, das habe ich geflissentlich ignoriert. Stattdessen habe ich direkt auf die "Datenbank" im Blatt Hilfstabelle zugegriffen und da eine einfache Schleife drüber gelegt. Die Usernamen füge ich natürlich auf dem Email-Blatt ein, damit die Formeln neu rechnen ... aber dem Makro ist jetzt relativ egal, ob da eine Datenüberprüfung in Zelle A2 stattfindet oder ein Sack Reis kippt um.
Die Mail-Adressen nehme ich mir ebenfalls direkt aus "Hilfstabelle". Kannst dir sogar überlegen, ob du die aus deiner Übersicht nicht löschen möchtest ...
Grüße,
Klaus M.vdT.

Anzeige
AW: Excel Datei automatisch speichern und versenden
26.06.2013 08:34:54
Klaus
Hallo Tobi,
ich bin jetzt an deiner Datei dran. Was soll das?
Private Sub Workbook_Open()
ActiveSheet.Activate
End Sub
Grüße und bis gleich,
Klaus M.vdT.

AW: Excel Datei automatisch speichern und versenden
26.06.2013 08:51:16
Klaus
Hi Tobias,
hatta!
Deine Erklärungstexte natürlich aus der Datei löschen, sonst kommen die mit ins PDF.
Ich habe mir jetzt nicht die Mühe gemacht, alle Spalten / Zeilen zu dynamisieren. Wenn du Zeilen oder Spalten verschiebst oder Blätter umbenennst, musst du im Code entsprechend ändern.
Im Code die Zeile (ganz oben)
Const MyPath As String = "C:\TestTmp\"
anpassen, bevor du ihn das erste mal startest!
Grüße,
Klaus M.vdT.
Option Explicit
'Hier den Pfad anpassen, unter dem du die PDFs speichern willst!
Const MyPath As String = "C:\TestTmp\"
'Hier angeben, ob du die PDFs speichern (True) oder nach versand löschen (False) willst!
Const KeepPDF As Boolean = True
'Definition der Mail-Inhalte
Const MailSubject As String = "Zusammenfassung von / für " '+Anwender 1 usw
Const MailText1 As String = "Hallo " '+Anwender
Const MailText2 As String = ", (br) hier ist deine Zusammenfassung!"  'HTML-Tags im Text nutzen! _
Sub EachUserOnce()
Dim sUserName As String
Dim sUserMail As String
Dim sUserText As String
Dim LastRow As Long
Dim r As Range
With Sheets("Hilfstabelle")
LastRow = .Cells(.Rows.Count, 1).End(xlUp).row
For Each r In .Range(.Cells(1, 1), .Cells(LastRow, 1))
sUserName = r.Value
sUserMail = r.Offset(0, 1).Value
sUserText = MailText1 & sUserName & MailText2
Sheets("Email").Range("A2").Value = sUserName
Call SendSheetOutlook(MailSubject & sUserName, sUserMail, "", sUserText, sUserName)
Next r
End With
End Sub
'Makro to send Excel-Sheet directly with outlook
'April 2013 by Klaus M.vdT.
'MODIFIED June 2013: Send pdf, not xlsx!
'original Code by mumpel / www.herber.de / 11.04.2013 11:23:25
'https://www.herber.de/forum/messages/1308295.html
Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String,  _
sUser As String)
Dim olApp         As Object
Dim AWS           As String
Dim olOldBody     As String
'define temporary Path and Filename
AWS = MyPath & "\" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & " _
_Zusammenfassung_" & sUser
'export File as PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=AWS, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
AWS = AWS & ".pdf"
'Make Email
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add AWS
End With
'remove TEMP file
If Not KeepPDF Then Kill AWS
End Sub

Anzeige
AW: Excel Datei automatisch speichern und versenden
26.06.2013 13:30:17
Tobias
Hallo Klaus,
dein Einsatz und Schnelligkeit ist wirklich unglaublich. Danke für die ganze Zeit die du hierfür investierst.
Leider läuft das Makro nicht fehlerfrei durch. Der folgende Bereich wird gelb markiert
"Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String, _
sUser As String)"
und dazu erhalte ich die Meldung "Compile Error: Syntax error"
Hast du eine Idee wie ich das beheben kann?
Oder habe ich das Makro falsch gestartet? Ich bin auf "EachUserOnce" gegangen.
Viele Grüße
Tobias

AW: Excel Datei automatisch speichern und versenden
26.06.2013 13:30:53
Tobias
Hallo Klaus,
dein Einsatz und Schnelligkeit ist wirklich unglaublich. Danke für die ganze Zeit die du hierfür investierst.
Leider läuft das Makro nicht fehlerfrei durch. Der folgende Bereich wird gelb markiert
"Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String, _
sUser As String)"
und dazu erhalte ich die Meldung "Compile Error: Syntax error"
Hast du eine Idee wie ich das beheben kann?
Oder habe ich das Makro falsch gestartet? Ich bin auf "EachUserOnce" gegangen.
Viele Grüße
Tobias

Anzeige
AW: Excel Datei automatisch speichern und versenden
26.06.2013 13:36:45
Klaus
Hi,
lass mich raten:
das:
"Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String, _
ist gelb, und das:
sUser As String)"
ist rot?
das ganze ist ursprünglich eine Zeile. Der Zeilenumbruch, durch _ gekennzeichnet, wird im Forum manchmal falsch gesetzt bzw falsch kopiert.
Geh einmal händisch durch den Code und entferne die falschen Zeilenumbrüche, dann sollte es laufen.
Grüße,
Klaus M.vdT.

einfacher: Upload
26.06.2013 13:40:08
Klaus
Hi,
ich lade einfach mal die Datei MIT Makro ... hätte ich auch gleich machen können.
https://www.herber.de/bbs/user/86059.xlsm
Dann klappt es auch mit den Zeilenumbrüchen und den HTML-Tags im Code ...
Grüße,
Klaus M.vdT.

Anzeige
AW: einfacher: Upload
26.06.2013 14:55:42
Tobias
Hi Klaus,
was soll ich sagen, es läuft so perfekt wie ich es mir nicht hätten träumen lassen!!!!
Der Zeilenumbruch war genau der Grund dafür dass es nicht geklappt hat. Ich habe so wenig Ahnung von VBA dass ich darauf nicht gekommen bin. Wenn ich sehe was so alles möglich ist reizt es micht sehr das programmieren mal selbst zu lernen.
Die Idee die Email Adresse vom eigentlichen Blatt zu entfernen ist übrigens super, ich dachte nur dass sie darauf stehen muss. Aber wenn diese jetzt vor Hilfstabelle genommen wird ist das natürlich die beste Lösung.
Eine letzte Frage hätte ich noch :)
Gibt es noch einen Befehl der die Emails dann direkt absendet, oder muss der Senden-Knopf manuell gedrückt werden?
Vielen, vielen Dank! Auch wenn ich mich wiederhole, aber ich finde es wirklich wahnsinn was für eine Hilfe du ohne finanziellen Interessen gibst.
VG Tobias

Anzeige
send? ja, mit punkt-send!
26.06.2013 15:12:16
Klaus
Hi Tobias,
Gibt es noch einen Befehl der die Emails dann direkt absendet
ja, sinnigerweise ist das .send !
aus persöhnlichen schlechten Erfahrungen rate ich davon aber stark ab. Du musst nur einmal eine Variable in einer Schleife falsch setzen, schon sendet das Ding hundertausend Mails ... und dann schimpft der Admin :-)
Wenn du das trotzdem willst, ergänze den Code an der passenden Stelle um .send, ich habe dir die Stelle mal herausgesucht:
   With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add AWS
 .send
End With

Vielen, vielen Dank! Auch wenn ich mich wiederhole, aber ich finde es wirklich wahnsinn was für eine Hilfe du ohne finanziellen Interessen gibst.
Ich und alle anderen hier im Forum! Ich würd nie auf die Idee kommen, für so ein paar Zeilen VBA-Code Geld zu verlangen. Andererseits, wenn du ein schlechtes Gewissen hast meine Hilfe "umsonst" anzunehmen, folgender Vorschlag: überleg dir, wieviel Euro dir meine Hilfe wert war. Diesen Betrag spendest du an
http://www.plan-deutschland.de/helfen-mit-plan/spenden/
oder eine ähnliche Organisation deiner Wahl!
Grüße,
Klaus M.vdT.

Anzeige
AW: send? ja, mit punkt-send!
26.06.2013 16:17:49
Tobias
Danke für den Code, und die Warnung. Aber eigentlich dürfte es nach ausführlichen Tests keine Probleme geben wenn sich nichts ändert. Mal schauen wie es läuft :) Den Punkt mit der Spende werde ich mir überlegen.
Vielen Dank nochmal für deine tolle Hilfe!
VG Tobias

Danke für die Rückmeldung! owT.
26.06.2013 16:58:49
Klaus
.

174 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige