Clever-Excel-Forum

Normale Version: mehrere Tabellenblätter per Makro als PDF erzeugen und gleichzeitig per outlook vers.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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.
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.
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.
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 ?
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.
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.