Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speichern & Drucken

Speichern & Drucken
16.11.2018 08:57:26
Schnider
Guten Morgen Ihr lieben Helfer
Ich habe für unseren Betrieb, bei dem ich arbeite ein Bestellformular angelegt. Nun möchte ich über eine Befehlsschaltfläche eine Speicherung als PDF und den Druck auslösen. Das es machbar ist, habe ich bereits gelesen, aber ich bringe es noch nicht fertig, die Codes so zusammen zu führen, dass es funktioniert und beim testen druckt er mir immer wieder neue Blätter. Die Schaltfläche befindet sich direkt auf dem Tabellenblatt und wird nicht mit gedruckt.
Der Code den ich bis jetzt habe lautet:
With Sheets("Bestellformular")
ActiveWindow.SelectedSheets.PrintOut Copies:=2
ActiveSheet.Cells(11, 7) = ActiveSheet.Cells(11, 7) + 1
Die Idee wäre: Dass beim Drücken der Schaltfläche im Tabellenblatt "Drucken" eine MessageBox aufgeht, in der man den Dateinamen eingeben kann. Wenns geht oder klappt, natürlich auch mit dem Datum und der Kostenstellennummer (Feld A20 "Datum", Feld D20 "Kostenstelle"). Die Datei sollte als PDF gespeichert werden.
Der Pfad der Datei bleibt immer gleich und lautet:
G:\Technik\ww_Technik\Team Werkstatt\Lager\Bestellungen
Danach sollte wie oben das ganze 2mal gedruckt werden.
Ich hoffe Ihr könnt mir weiterhelfen.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern & Drucken
16.11.2018 09:45:29
Werner
Hallo Marc,
so:
Public Sub Druck_und_PDF()
Dim Pfad As String, Dateiname As String
Pfad = "G:\Technik\ww_Technik\Team Werkstatt\Lager\Bestellungen\"
Dateiname = Application.InputBox("Dateiname eingeben.", "Speichern als PDF")
If Dateiname = "Falsch" Then Exit Sub
If Not Dateiname = vbNullString Then
With ThisWorkbook.Worksheets("Bestellformular")
Pfad = Pfad & Dateiname & "_" & .Range("A20") & "_" & .Range("F20") & ".pdf"
.PrintOut Copies:=2
.Cells(11, 7) = .Cells(11, 7) + 1
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
Else
MsgBox "Fehler: Es wurde kein Dateiname vergeben."
End If
End Sub
Gruß Werner
Anzeige
AW: Speichern & Drucken
16.11.2018 10:07:52
Schnider
Danke nochmals für deine Hilfe
Der Code funktioniert, vielen Dank. Wie kann ich bewerkstelligen, dass das Formular, als 1 gespeichert wird? Beim Speichern erhöht er so nun die Zelle um 1?
.Cells(11, 7) = .Cells(11, 7) + 1
Das Formular sollte aber erst danach um 1 erhöht werden.
AW: Speichern & Drucken
16.11.2018 10:13:22
Werner
Hallo Marc,
dann speicher halt vor dem Druck und lass die erstellte PDF nicht anzeigen.
Public Sub Druck_und_PDF()
Dim Pfad As String, Dateiname As String
Pfad = "G:\Technik\ww_Technik\Team Werkstatt\Lager\Bestellungen\"
Dateiname = Application.InputBox("Dateiname eingeben.", "Speichern als PDF")
If Dateiname = "Falsch" Then Exit Sub
If Not Dateiname = vbNullString Then
With ThisWorkbook.Worksheets("Bestellformular")
Pfad = Pfad & Dateiname & "_" & .Range("A20") & "_" & .Range("F20") & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
.PrintOut Copies:=2
.Cells(11, 7) = .Cells(11, 7) + 1
End With
Else
MsgBox "Fehler: Es wurde kein Dateiname vergeben."
End If
End Sub
Gruß Werner
Anzeige
AW: Speichern & Drucken
16.11.2018 10:50:14
Schnider
Vielen Dank für deine Hilfe
Wie würde denn der Code aussehen, wenn ich den Dateinamen vorab schon gestalten würde?
Worksheets("Bestellformular").Cells(1, 20) & "_" & Cells(4, 20) & "_" & Cells(6, 11) & "_" & Cells(7, 11) & "_" & Cells(8, 11) & "_" & ".pdf"
Was muss ich hier ändern, damit er die letzten 3 angesprochenen Zellen in eine Zahl zusammenfasst? und es eine Nummer gibt?
Ausserdem schreibt er so nur __.pdf als Dateiname. Der Rest Top
AW: Speichern & Drucken
16.11.2018 10:58:12
Werner
Hallo Marc,
also nicht mehr über eine Inputbox sondern komplett aus diversen Zelleinträgen?
Gruß Werner
Anzeige
AW: Speichern & Drucken
16.11.2018 12:10:12
Schnider
Genau, also ist nur zum Verständnis für meine eigene Bildung vom Verstehen des VBA Zusammenhangs.
Wie genau, dass ich es dann mache, weiss ich eben noch nicht, da ich am liebsten hätte, wenn die betreffenden Mitarbeiter alle die gleichen Dateinamen benutzen würden.
AW: Speichern & Drucken
16.11.2018 12:26:26
Werner
Hallo Marc,
mal ein paar Anmerkungen:
1. Bitte vorher Gedanken machen wie das Ergebnis aussehen soll. Es ist nichts lästiger als eine Lösung gemäß Vorgaben anzubieten um dann zu hören "Ich will es doch lieber so und nicht so."
2. Dass dein Versuch in die Hose geht liegt u.A. daran, dass du die falschen Zellen ansprichst. Bei Cells(1, 20) ist der erste Zahlenwert in der Klammer die Zeile und der zweite Zahlenwert die Spalte. Bei diesem Beispiel sprichst du also die Zelle T1 an. Da die aber in deiner Tabelle nicht benutzt wird und keinen Wert hat, wird dir im Dateinamen an der entsprechenden Stelle dann auch nichts ausgegeben.
3. Damit kommen wir dann auch dazu, dass das aber der Helfer nicht weiß, dass du hier mit der Zelle auf dem Holzweg bist, weil du nämlich keine Datei mit hochgeladen hast. Ich konnte das nur deshalb bemerken, weil ich die Datei aus deinem vorherigen Beitrag hatte.
4. Zudem willst du dann noch die Zellen F11 und E20 ansprechen. Aber auch diese Zellen haben keinen Inhalt. Du hast dort Label platziert, also willst du den Inhalt der entsprechenden Label. Aber auch das kann der Helfer, mangels Datei, nicht bemerken -siehe Punkt 3
5. Also bitte zukünftig wenn irgend möglich Fragen mit entsprechender Beispieldatei.
Jetzt zum eigentlichen Problem. Teste mal das hier.
Public Sub Druck_und_PDF()
Dim Pfad As String, Dateiname As String
Pfad = "G:\Technik\ww_Technik\Team Werkstatt\Lager\Bestellungen\"
With ThisWorkbook.Worksheets("Bestellformular")
Dateiname = .Cells(20, 1) & "_" & .Label7.Caption & "_" _
& .Cells(11, 6) & .Label8.Caption & .Cells(11, 7) & .Cells(11, 8) & ".pdf"
Pfad = Pfad & Dateiname
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
.PrintOut Copies:=2
.Cells(11, 7) = .Cells(11, 7) + 1
End With
End Sub
Aber Achtung: Da ist keine Prüfung drin, ob die Zellen, die du für die Zusammenstellung des Dateinamens brauchst, einen Wert enthalten. Sollten die Zellen leer sein, dann hast du auch nichts im Dateinamen.
Gruß Werner
Anzeige
AW: Speichern & Drucken
16.11.2018 15:13:34
Schnider
Vielen Dank
Ich muss mich entschuldigen. Ich weiss das das Thema VBA extrem komplex ist und nur ein Fehler einen riesen Rattenschwanz auslösen kann. Da mein Wissen betreffend VBA noch nicht relativ gross ist und ich noch mehr oder weniger die Codes mittels diesem Forum zusammen würfle, lasse ich mich auch mehr dazu verleiten, dass ich mir bei einem Punkt dann zu sicher bin und dies für die Frage ausser Acht lasse. Ich bedanke mich daher nochmals sehr bei dir für die Hilfe und werde es für die zukünftigen Fragen beherzigen.
Gerne u. Danke für die Rückmeldung. o.w.T.
16.11.2018 16:08:24
Werner
AW: Speichern & Drucken
16.11.2018 12:07:55
Schnider
Vielen Dank für deine Hilfe
Wie würde denn der Code aussehen, wenn ich den Dateinamen vorab schon gestalten würde?
Worksheets("Bestellformular").Cells(1, 20) & "_" & Cells(4, 20) & "_" & Cells(6, 11) & "_" & Cells(7, 11) & "_" & Cells(8, 11) & "_" & ".pdf"
Was muss ich hier ändern, damit er die letzten 3 angesprochenen Zellen in eine Zahl zusammenfasst? und es eine Nummer gibt?
Ausserdem schreibt er so nur __.pdf als Dateiname. Der Rest Top
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige