Kopie von Sheet per Mail
09.09.2020 14:00:49
Sheet
da ich leider so gut wie keine Ahnung von Makros habe, schildere ich Euch erstmal was ich gerne hätte und Ihr könnt schauen ob das überhaupt möglich ist. Sollte darüber hinaus jemand Vorschläge/Lösungen haben, freue ich mich natürlich sehr darüber.
Ich habe eine Datei, die mehrere Reiter beinhaltet, Sheet 1 ist die Hauptliste (als Tabelle formatiert), die anderen enthalten lediglich zulässige Daten die in einzelnen Spalten der Hauptliste über eine Datenprüfung als Liste dann ausgewählt werden können.
Ich würde nun gern Tasten (Makros) einfügen, die mir eine Kopie der Hauptlisten in einer neuen Datei erstellen und diese dann an eine jeweilige Emailadresse versenden.
Prinzipiell habe ich mir diesen Teil auch schon aus verschiedenen Beiträgen hier zusammengebaut/-klaut, es gibt aber noch weitere Punkte, bei denen ich nun nicht weiterkomme.
Hier erstmal der "IST"-Stand des Makros:
Sub Schaltfläche1_Klicken()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String, wksMail As Worksheet
Set wksMail = Sheets(1)
AWS = Environ("USERPROFILE") & "\" & wksMail.Name & ".xls"
wksMail.Copy
With ActiveWorkbook
.SaveAs AWS
.Close
End With
Application.Visible = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "XXX@XXXX.XX"
.Cc = ""
.Subject = "TEST " & Date
.Attachments.Add AWS
.Body = "Anbei die Liste"
.Display
End With
Set OutApp = Nothing
Set Nachricht = Nothing
Kill AWS
End Sub
Jetzt kommen meine Wünsche, die ich nicht umgesetzt bekomme:
1. Die erstellte Datei heißt aktuell immer "Liste" (vermutlich weil der Reiter in der Ursprungsdatei so heißt), ich würde die Datei aber gern mit dem Tagesdatum und dem Namen des Mitarbeiters benennen, also "YYYYMMTT_Schmitz", ist das möglich?
2. Da die Ursprungsdatei Makros enthält, bekomme ich die Meldung:
"Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden:
- VB Projekt
Zum Speichern einer Datei mit diesen Features klicken Sie auf 'Nein'. Wählen Sie dann einen Dateityp mit aktivierten Makros in der Liste 'Dateityp' aus.
Klicken Sie auf 'Ja', um die Datei als Arbeitsmappe ohne Makros zu speichern."
Bei "Nein" wird der Aufwand größer als ohne Makro (Zwischenspeichern der Datei mit Makro und dann an die Mail anhängen), so bringt es mir halt nix.
Bei "Ja" geht es weiter, allerdings bekomme ich dann beim Öffnen der neuen Datei den folgenden Fehler:
"Das Dateiformat und die Dateierweiterung von 'Liste.xls' passen nicht zueinander. Möchten Sie die Datei trotzdem öffnen?"
Wähle ich "Ja", funktioniert alles, im Prinzip ist also alles ok, allerdings sind die ganzen Meldungen einfach unschön und nervig, daher die Frage, ob es da nicht eine saubere Lösung für gibt.
Trage ich einfach statt ".xls" ".xlsm" ein, dann wirft mir das Makro einen Laufzeitfehler aus.
3. Bevor ich die jeweiligen Kopien an die Mitarbeiter versende, sortiere ich die Liste und filtere jeweils nach den Mitarbeitern. Die aktuell erstellte Datei beinhaltet beim Öffnen zwar sowohl die Sortierung als auch die Filterung, aber auch die anderen Daten der Tabelle. So kann jeder Mitarbeiter die Filter entfernen und sieht dann trotzdem alles. Ich würde aber gern nur die tatsächlich sichtbaren Daten kopieren, geht das irgendwie?
So, damit wäre ich dann auch schon am Ende und freue mich auf Antworten und ggf. Lösungsvorschläge.
Beste Grüße
Patrick