Clever-Excel-Forum

Normale Version: Druckbefehl durch VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich stehe wieder vor einem kleinen Problem.. 
Ich soll einen Kalibrierschein entwerfen mit fortlaufender Nummer, über einen Butten soll dieser schließlich ausgedruckt werden und direkt an 2 Verteilergruppen als PDF gesendet werden.
Das versenden funktioniert einwandfrei, der Druckbefehl kommt aber nicht beim Drucker an. 

Ein tolles Benefit wäre wenn die Kalibrierscheinnummer = PDF-Name ist das bekomm ich ebenfalls nicht hin!

Code:
Sub PDF_per_EMail()

Dim RechNr As Long
Dim Jahr As Integer
    Jahr = Worksheets("Versteckt").Range("A1")
    RechNr = Worksheets("Versteckt").Range("B1")
    If Application.Dialogs(xlDialogPrinterSetup).Show = False Then Exit Sub
    If Jahr <> Year(Date) Then
        RechNr = 0
        Jahr = Year(Date)
        Worksheets("Versteckt").Range("A1") = Jahr
    End If
    RechNr = RechNr + 1
    Worksheets("Versteckt").Range("B1") = RechNr
    Range("B1") = Format(RechNr, "00000") & "/" & Jahr

'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object

'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

'** PDF erzeugen
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  ThisWorkbook.Path & "\Excel-File.pdf", Quality:=xlQualityStandard _
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False

'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
With strEmail
  .To = "VERTEILERMESSMITTEL" + ";" + "INFOQMB"
  .Subject = "Neuer Kalibrierschein" 'Betreffzeile
  .body = "Hallo Zusammen, ein Kalibrierschein im Anhang. Bei Fragen melden Sie sich bitte. Ihr schambeck-team. "
  .Attachments.Add strPDF
  .Display
  '.Send 'Damit wir die E-Mail sofort versendet
  Kill strPDF
End With
 
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub


schon mal vielen Dank im Voraus! Schöne Feiertage euch allen!
Beste Grüße
Musix
Tach, 

ich sehe weder eine Beschreibung woher die Kalibrierschein Nr. kommen soll für den Dateinamen, noch einen Versuch etwas zu drucken. 
Aber ich vermute es handelt sich um die RechnNr. 
Der pdf export erzeugt eine Datei aber drucken mußt du schon noch. Natürlich war der Anfang mit der Druckerauswahl schon gemacht.  Der printout Befehl ist einfach zu finden. 
Die forlaufende Nr hast du schon in B1 
Ist mit Range ("B1") das selbe gemeint wie mit   Worksheets("Versteckt").Range("B1")

und hier. Fällt dir was auf ?
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
Filename:= ThisWorkbook.Path & "\Excel-File.pdf"

vielleicht ja so
strPDF  = ThisWorkbook.Path & "\" & Range("B1").text & ".pdf"
Filename:= strpdf
Hallo Ralf,

danke für deinen Input! Sorry ich vergas! ja die Rechnungsnummer = Kalibrierscheinnummer

Ist mit Range ("B1") das selbe gemeint wie mit   Worksheets("Versteckt").Range("B1")
Im Tabellenblatt "Versteckt" läuft ein Zähler mit der wenn er ausgeblendet ist nicht mehr zu verändern sein sollte. 


und hier. Fällt dir was auf ?
strPDF = ThisWorkbook.Path & "\Excel-File.pdf"
Filename:= ThisWorkbook.Path & "\Excel-File.pdf"


ja mir ist bewusst dass ich die PDF Excel-File" nenne ich bekomm die Verknüpfung zur Zelle B1 nicht gebacken.. Funktioniert mit deinem Code leider auch nicht...

Ich versuche mal so gut wie möglich den Ablauf zu erklären. 

Sobald ich das Makro ausführe (Button Bild 1 ), kommt ein Pop-up zur Druckerauswahl (Bild2).
Ich wähle meinen Drucker aus klicke "ok", dann ändert sich die Kalibrierschein-Nr.(aber kein Druckbefehl kommt am Drucker an)
Outlook wird geöffnet mit dem Mailtext und der PDF. (Bild3)

Vielen Dank für deine Unterstützung! Hast du vielleicht noch einen anderen Tipp?

Beste Grüße und Frohe Weihnachten
Musix

PS. Excel und Bilder sind jetzt angehängt.
Hallo Musix,

ich habe eine funktionierende Version  erstellt. Bitte mal anschauen. Die simple Druckfunktion habe ich etwas umständlicher implementiert, weil man ja auch in eine pdf Datei drucken kann. Dann muß man die nicht extra noch erstellen. Und sollte sie später nicht löschen, da ja gewollt.   
Ich empfehle dir die erzeugten Scheine als Tabelleneinträge zu sichern mit dem Sendungsvermerk. Das könnte bei Verlusten hilfreich sein. Und man muß keine Aktenordner aus dem Archiv wühlen.  Excel hat dafür ne Menge Tabellen und Zellen zur Verfügung. Da muß man nicht sparen. 
den Druckbutton kannst du wieder löschen.  
[attachment=36040]


gruß

RB
Hallo Ralf!

vielen vielen Dank sieht super aus :D