Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1244to1248
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

PDF von 2 Tabs Pfad verschieden

PDF von 2 Tabs Pfad verschieden
2
Hallo Excelfreunde,
hab da noch ein problem. Mit unten stehendem Code was ich schon in einer anderen Datei benütze wollte ich in meiner neuen Datei zum laufen bringen aber er erzeugt mir nicht die gewünschten PDF.
Private Sub CommandButton1_Click()
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("Rechnung, Rechnung_Kopie,Brief", ",")
For i = 0 To UBound(ArrDruck)
With ThisWorkbook.Sheets(ArrDruck(i))
.PrintOut copies:=1
If .Name = "Rechnung" And "Brief" Then      >> mit "Rechnung"  _
gehts
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\Das ist mein Pfad.............PDF Dateien\" & ActiveSheet.Range( _
_
"B4") & "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub

Wie bekomme ich das hin das der Code mir für die Rechnung eine PDF erzeugt und für den Brief auch aber mit einem anderen Pfad?
Kann mir da jemand helfen?
Gruß Thomas
AW: PDF von 2 Tabs Pfad verschieden
22.01.2012 19:01:56
2
?
ich versteh die Frage nicht ganz
willst du das Briefe unter z.B. C:\Breife
und für Rechnungen z.B. C:\Rechnungen?
wenn ich das so richtig verstanden habe brauchst du nur bei "if .Name ....
etwas ergänzen
If .Name = "Rechnung" And "Brief" Then      > mit "Rechnung"  _
gehts
if .Name ="Rechnung" then
strPfad="C.\Rechnung\"
else
strPfad="C.\Breife\"
und aus
 Filename:="C:\Users\Das ist mein Pfad.............PDF Dateien\" & ActiveSheet.Range(...........
musst du dann nur
Filename:=strPfad & ActiveSheet.Ra...............
machen
ACHTUNG CODE NICHT GESTESTET
Gruß
Dirk
Anzeige
AW: PDF von 2 Tabs Pfad verschieden
22.01.2012 19:09:27
2
Sorry Tippfehler
nochmal vollstänidig
wenn ich dich richtig verstanden habe die Briefe nach z.B. C:\briefe und die Rechnungen nach z.B. C:\rechnungen
Auch hier wieder
ACHTUNG CODE NICHT GETESTET
Private Sub CommandButton1_Click()
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("Rechnung, Rechnung_Kopie,Brief", ",")
For i = 0 To UBound(ArrDruck)
With ThisWorkbook.Sheets(ArrDruck(i))
.PrintOut copies:=1
If .Name = "Rechnung" And "Brief" Then      > mit "Rechnung"  _
gehts
if .name ="Rechnung" then
stgPfad="C:\Rechnung\"
else
stgPfad="C:\Brief\"
end if
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=stgPfad & ActiveSheet.Range( _
_
"B4") & "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub

Anzeige
AW: PDF von 2 Tabs Pfad verschieden
22.01.2012 19:43:05
2
Hallo Dirk,
If .Name = "Rechnung" so bekomme ich die PDF. Mein versuch ging dahin das ich es mit If .Name = "Rechnung" And "Brief" Then probierte aber ging ja nicht.
Hab ne pause gemacht um wieder den Kopf frei zu bekommen und hab das nun nach einer Stunde nun so hin bekommen aber bitte hab verständnis ich übe noch.
Private Sub CommandButton1_Click()
Dim ArrDruck() As String
Dim i As Integer
Dim i1 As Integer
ArrDruck = Split("Rechnung", "Rechnung_Kopie")
For i = 0 To UBound(ArrDruck)
With ThisWorkbook.Sheets(ArrDruck(i))
.PrintOut copies:=1
If .Name = "Rechnung" Then
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\Das ist mein Pfad\..............\PDF Dateien\" & ActiveSheet. _
Range("B4") & "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
ArrDruck = Split("Brief")
For i1 = 0 To UBound(ArrDruck)
With ThisWorkbook.Sheets(ArrDruck(i1))
.PrintOut copies:=1
If .Name = "Brief" Then
'Blatt ggf. als PDF-Datei speichern und anzeigen
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\Das ist mein Pfad\.............\Briefe an\" & ActiveSheet.Range( _
"B4") & "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub
Aber ich versuch mich auch an Deinem Code und wenn der geht nehm ich dann die kurze Version.
Dank Dir Gruß Thomas
Anzeige
AW: PDF von 2 Tabs Pfad verschieden
22.01.2012 20:25:15
2
Hallo Thomas
dann hatte ich dich also doch richtig verstanden gehabt
du hast die Abfragen jetzt gesplittet und den Code koppiert.
wenn du bei deiner Abfrage bist
das muss übrigens oder und nicht und heißen
If .Name ="Rechnung or "Brief"
brauchst du dannach nur noch den Speicherpfad in einer Variablen definieren und den Pfad unten durch den Angegeben Pfad ersetzten
if .name ="Rechnung" then
stgPfad="C:\Users\Das ist mein Pfad\..............\PDF Dateien\"
else
stgPfad="C:\Users\Das ist mein Pfad\.............\Briefe an\"
end if   
andere Unterschiede zwischen den Wiederhohlungen kann ich auf anhieb nicht finden
dann kannst d die Variable il as Integer auch wieder raus nehmen und durch
stgPfad as String
ersetzen
Anzeige
AW: Code noch etwas anpassen
22.01.2012 20:34:03
Thomas
Hallo Dirk,
ich habe Dein Code versucht. Pfad angepasst und gestartet aber kam der Fehler Variable nicht difiniert hab Dim StgPfad As String, Long, Integer versucht es kommt noch immer der Fehler Typen unverträglichkeit aber es wird mir nichts angezeigt wo der Fehler nun kommt.
Dies zur Rückmeldung auf Dein Code.
Gruß Thomas
AW: Code noch etwas anpassen
22.01.2012 20:52:47
Thomas
Hallo Dirk,
hab alles gemacht es wird nur der Druckauftrag abgearbeitet aber die PDF wird nicht erzeugt kommt noch immer der Fehler Typen unverträglichkeit aber es wird nichts angezeigt.
Gruß Thomas
AW: Code noch etwas anpassen
23.01.2012 17:34:01
Dirk
Hallo Thomas
Hier verabschiedet der sich bei mir

ArrDruck = Split("Rechnung, Rechnung_Kopie,Brief", ",")    

mal so aus neugier wieso hast du die Schleife

For i = 0 To UBound(ArrDruck)

geschreiben?
ich hätte das so geschrieben
      Sub Brief_Rechnung_pdf_Druck()
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("Rechnung, Rechnung_Kopie, Brief")
For Each Worksheet In Worksheets
With Worksheet
.PrintOut copies:=1
If .Name = "Rechnung" Or .Name = "Brief" Then
If .Name = "Rechnung" Then
spstg = "C:\Tester\Rechnung\"
Else
spstg = "C:\Tester\Brief\"
End If
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=spstg & ActiveSheet.Range("B4") _
& "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub

Gruß
Dirk
Anzeige
AW: Code noch etwas anpassen
23.01.2012 19:03:17
Thomas
Hallo Dirk,
ArrDruck = Split("Rechnung, Rechnung_Kopie,Brief", ",") ich brauch das Komma in Anführungzeichen.
Zum anderen ist das nicht mein Code den hab ich mit Hilfe aus dem Forum hir also kann ich nichts für die Schleife.
Ich bekomme die erste PDF angezeigt und dann kommt Variable nicht difiniert wie immer.
Ich habe den Code im Tab Rechnung stehen das ist doch richtig?
Werd mich noch weiter an deinem Code versuchen denn das muss kürzer gehen als wie ich des gemacht habe mit dem zweiten Code.
Ich dank dir Dirk und ich bleib dran geht nicht gibts bei mir nicht..... zunächts mal nicht :))
Gruß Thomas
Anzeige
AW: Code noch etwas anpassen
23.01.2012 19:25:05
Dirk
Hallo Thomas,
ok ich hab gerade mal etwas gelesen wenn ich das richtig verstanden habe bildest du mit
ArrDruck = Split("Rechnung, Rechnung_Kopie,Brief", ",")

ein Array, das mit 3 Variablen gefüllt ist.
Damit die Schleife Sauber abgearbeitet werden kann, die du ja mit
For i = 0 To UBound(ArrDruck)

von 0 bis 3 definiert hast müssen aber auch genau diese Tabllenblätter alle vorhanden sein.
Die Schleife die ich verwendet habe fragt ALLE Tabellen kurz ab
 For Each Worksheet In Worksheets

für jedes Blatt von den Blättern so kannst du das verstehen
da ich aber direkt im Anschluss den Namen des Blattes Prüfe und somit aussortiere sollte das von der abarbeitungsgeschwindigkeit her nicht störend sein.
ach verflucht
das .print gehöhrt eine Zeile tiefer
      Sub Brief_und_Rechnung_pdf_Druck()
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("Rechnung, Rechnung_Kopie, Brief")
For Each Worksheet In Worksheets
With Worksheet
If .Name = "Rechnung" Or .Name = "Brief" Then
' .PrintOut copies:=1
If .Name = "Rechnung" Then
spstg = "C:\Tester\Rechnung\"
Else
spstg = "C:\Tester\Brief\"
End If
If MsgBox(Prompt:="Blatt """ & .Name & """ als PDF-Datei exportieren?", _
Buttons:=vbQuestion + vbYesNo, Title:="PDF-Datei erstellen") = vbYes Then
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=spstg & ActiveSheet.Range("B4") _
& "_" & ActiveSheet.Range("B5").Text _
& "-" & Format(Now, "YYYY-MM-DD hh-mm-ss") & " PDF.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End If
End With
Next
End Sub

Anzeige
AW: Code noch etwas anpassen
23.01.2012 19:37:55
Dirk
Ach un eh ich es vergesse bei
ArrDruck = Split("Rechnung, Rechnung_Kopie, Brief", ",")

dürfen keine Leerzeichen stehen
also
ArrDruck = Split("Rechnung,Rechnung_Kopie,Brief", ",")

sonnst trennt der die Stings in
"Rechnung" " Rechnung_Kopie" und " Brief"
da ich nicht davon ausgehe das du von dem Tabllennamen noch Leerzeichen gesetzt hast müssen die raus
solltest du doch mehrere Tabellenblätter in der Datei haben sag bescheid dann schau ich nochmal über den code genauer drüber
Gruß
Dirk
Anzeige
AW: So geht es nun :))
23.01.2012 20:32:01
Thomas
Hallo Dirk,
ich hab es nun so zum laufen gebracht nach unzähligen umschreiben und testen. Wie gut das ich mein Drucker aus gemacht habe.
Dim ArrDruck() As String
Dim Spstg As String
Dim i As Integer
ArrDruck = Split("Rechnung,Rechnung_Kopie,Brief", ",")
For i = 0 To UBound(ArrDruck)
'For Each Worksheet In Worksheets <<<< hier bleibt er gleich hängen
'Wiht Worksheet
With ThisWorkbook.Sheets(ArrDruck(i))
.PrintOut copies:=1
If .Name = "Rechnung" Or .Name = "Brief" Then
If .Name = "Rechnung" Then
Spstg = "C:\Users\Das ist mein\Documents\Neue Aufgaben\PDF Dateien\"
Else
Spstg = "C:\Users\Das ist mein\Documents\Briefe an\"
End If
Ich Danke Dir 1000 mal für die Kurzform so kann ich mein Monstercode nun in die Tonne kloppen.
Gruß Thomas
Anzeige
AW: So geht es nun :))
23.01.2012 20:37:50
Dirk
es freut mich wenn ich helfen konnte
Gruß
Dirk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige