Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Druckbefehl durch VBA
#1
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
Antworten Top
#2
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
Antworten Top
#3
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.


Angehängte Dateien Thumbnail(s)
           

.xlsm   Kalibrierschein.xlsm (Größe: 30,8 KB / Downloads: 2)
Antworten Top
#4
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.  

.xlsm   Kalibrierschein.xlsm (Größe: 36,99 KB / Downloads: 4)



gruß

RB
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • Musix
Antworten Top
#5
Hallo Ralf!

vielen vielen Dank sieht super aus :D
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste