Registriert seit: 25.09.2019
Version(en): 2016
26.11.2019, 08:24
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019, 08:24 von kutte44.)
Hallo ihr lieben,
ich kämpfe mal wieder mit einem doing für meinen Job.
Ich habe 20 Tabellenblätter, die ich alle zusammen per makro als pdf erstellen und mit
differentem dateinamen jeweils per outlook in dem gleichen Arbeitsgang versenden möchte.
Theoretisch bräucht eich nur eine Tabelle in der ich jeweils den Namen des Mitarbeiters über den
Datenschnitt in der Povit änderer. Nur dann müsste excel dies alleine tun und den Namen aus dem
Datenschnitt auch als Dateiname übernhemen. Und ich glaube nicht das das geht oder ?
Kann mir da jemand helfen ? Ich habe noch nie ein Makro erstellt.
Den Namen und den Pfad würde ich gern in einer Zelle vorab definieren.
Möglich ist auch, den Dateinamen aus dem Tabellenbalttname zu nehmen wenn dies möglich ist.
Vielen Dank im Voraus.
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
26.11.2019, 09:34
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019, 09:34 von SteBen.)
Hi,
hatte ein ähnliches Problem, welches ich mit dem folgenden Code lösen konnte.
Code:
Sub pdftomail()
Dim app As Object
Dim file As String
Dim isNew As Boolean
file = ActiveSheet.Range("D4") & ".pdf" 'vergibt den Dateinamen
ActiveSheet.ExportAsFixedFormat xITypePDF, Environ("TEMP") & "\" & file
On Error Resume Next
Set app = GetObject(, "Outlook.Application")
If app Is Nothing Then
Set app = CreateObject("Outlook.Application")
isNew = True
End If
With app.CreateItem(0)
.To = "" 'Empfängermail
.CC = ""
.BCC = ""
.Subject = ActiveSheet.Range("D4") & "zusätzliche Infos?"
.Body = " Hier kannst Du Deiner Mail noch einen Text verpassen"
.Attachments.Add Environ("TEMP") & "\" & file
.Send 'Sendet die Mail direkt
.Show 'Mail anzeigen & manuell verschicken
End With
If isNew Then app.Quit
End Sub
Der Code sendet Dir deine aktive Tabelle als Mail.
Gruß
SteBen
___
Du müsstest Dir dann nur über Entwicklertools --> Einfügen --> Formularsteuerelement eine Schaltfläche pro Tabellenblatt anlegen & jeder Schlatfläche dann entsprechend dieses Makro zuweisen. Dann kannst Du per Klick auf diese Schlatfläche die jeweilige Mail generieren.
Registriert seit: 25.09.2019
Version(en): 2016
26.11.2019, 09:47
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019, 09:51 von kutte44.)
ok. super danke dir.
kann ich auch aus einer liste mehrer mailadressen auslesen lassen ?
wie sage ich in dem makro das ich mehrere tabellenblätter auswählen möchte?
kann das makro den Dateinamen anhand des Tabellen blattnahmens erstellen ?
kannst du mir da helfen ?
habe sent mal gelöscht weil ich mir die mailvorher anschauen wollte, nun passiert nichts mehr.
Registriert seit: 25.09.2019
Version(en): 2016
26.11.2019, 11:19
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019, 11:19 von kutte44.)
muß ich dann nicht auch 20 makros für 20 namen anlegen wegen der unterschiedlichen mail adresse ?
wie gesagt, show funktioniert leider nicht nur send. woran könnte das liegen ?
Registriert seit: 12.06.2019
Version(en): Microsoft Office Professionak Plus 2016
26.11.2019, 12:01
(Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019, 12:01 von SteBen.)
Hi,
sorry, Du musst .Show durch .Display ersetzen.
Was Deine übrigen Fragen betrifft, hat bestimmt der ein oder andere hier aus dem Forum mehr Ahnung.
hab mir das Makro für mich auch fast nur durch copy & paste erstellt.
Sorry
VG
SteBen
_______
Wenn Du allerdings pro Blatt ein Makro erstellt, kannst Du die Mailadressen im Makro selber ändern - das geht auch.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Kutte,
so was geht alles, dafür gibt es zB. Schleifen.
Hier mal was zum Testen:
Sub Makro1()
Dim blaetter As Worksheet
For Each blaetter in Worksheets
Msgbox blaetter.name
Next
End sub
Damit bekommst Du mehrere Meldungen, je nachdem, wie viele Blätter in der Datei sind. Statt der Meldung steht dann natürlich (d)ein E-Mail-Code in dem Du blaetter.name für den Dateinamen verwendest.
Usw.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)