Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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

Variabel in die Pfadangabe übernehmen

Variabel in die Pfadangabe übernehmen
19.09.2022 16:15:46
Günther
Hallo Forum,
und schon wieder habe ich ein Problem, an dem ich scheitere.
Ich möchte nachdem abgefragt wird, ob das Verzeichnis x vorhanden ist und falls nicht angelegt wird., ein Tool zum zusammenführen diverser PDF Dateien in eine PDF starten. Leider gelingt mir das nur mit dem absoluten Pfad.
Bei der Pfadangabe mit Variablen scheite ich. Warum ? Siehe unten
Für Eure Hilfe wäre ich sehr dankbar.

Private Sub CommandButton7_Click()
'Kundenname von Tabelle "Deckblatt" auslesen
Dim kd As String
kd = Worksheets("Deckblatt").Range("D6").Value 'z.B. Huber
'Kundenverzeichnis prüfen und anlegen
Dim Path As String
Dim Folder As String
Dim Answer As VbMsgBoxResult
Path = "C:\temp\test\" & kd 'z.B. Huber
Folder = Dir(Path, vbDirectory)
If Folder = vbNullString Then
Answer = MsgBox("Der Pfad existiert nicht. Möchtest Du diesen anlegen?", vbYesNo, "Verzeichnis anlegen?")
Select Case Answer
Case vbYes
VBA.FileSystem.MkDir (Path)
MsgBox Path
Case Else
Exit Sub
End Select
Else
MsgBox "Verzeichnis existiert bereits"
End If
' Funktioniert
'Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"c:\temp\test\*.pdf cat output c:\temp\test\zusammen.pdf", WindowStyle:=vbHide)
'Funktioniert nicht
'Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"c:\temp\test\ & kd "\" & *.pdf cat output c:\temp\test\ &kd & "\" & zusammen.pdf", WindowStyle:=vbHide) 
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabel in die Pfadangabe übernehmen
19.09.2022 16:27:33
peterk
Hallo
"c:\temp\test\" & kd & "\*.pdf cat output c:\temp\test\" & kd & "\zusammen.pdf", WindowStyle:=vbHide)
Peter
AW: Variabel in die Pfadangabe übernehmen
19.09.2022 16:30:45
Daniel
Hi
naja, wenn man einen Text mit einer Variabeln kombinieren will, dann muss man an der Stelle, an der die Variable eingefügt werden soll zunächst beenden (Anführungszeichen) und die Variable mit & anbinden. Nach der Variable kommt dann wieder ein & und zum zeichen, das jetzt wieder Text kommt, wieder anführungszeichen:
also im Prinizip so:

"TextTextText" & Variable & "TextTextText"
hast du ja teilweise im Code schon richtig gemacht, warum dann unten nicht mehr?
und warum setzt du die "\" extra in Anführungszeichen?
probier mal das:

Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"c:\temp\test\" & kd & "\*.pdf cat output c:\temp\test\" & kd & "\zusammen.pdf", WindowStyle:=vbHide) 
eine andere Methode wäre, wenn man mit den " und & durcheinander kommt, den Text zunächst mit einem DummyText anstelle der Variable zu erstellen und dann die Variable durch Replace in den Text einzubringen:
also statt:

"c:\temp\test\" & kd "\*.pdf cat output c:\temp\test\" &kd & "\zusammen.pdf"
sowas:

Replace( "c:\temp\test\_kd_\*.pdf cat output c:\temp\test\_kd_\zusammen.pdf", "_kd_", kd)
Gruß Daniel
Anzeige
AW: Variabel in die Pfadangabe übernehmen
20.09.2022 07:36:30
Günther
Hallo Daniel,
Danke für Deine schnelle Antwort. Leider funktioniert es noch nicht. Es wird zwar das Verzeichnis mit mkdir angelegt, aber leider wird mit dem call shell Befehl keine Datei "zusammen.pdf" im Verzeichnis c:\temp\test\ & kd abgelegt bzw. erzeugt.
AW: Variabel in die Pfadangabe übernehmen
20.09.2022 11:45:27
Daniel
Mit dem shell-Befehl kenne ich mich nicht aus.
Gruß Daniel
AW: Variabel in die Pfadangabe übernehmen
20.09.2022 20:11:17
peterk
Hallo
Beinhaltet "kd" ein Leerzeichen oder "-" ?
Probier:

Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"""c:\temp\test\" & kd & "\*.pdf"" cat output ""c:\temp\test\" & kd & "\zusammen.pdf"", WindowStyle:=vbHide)
Peter
Anzeige
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 08:38:30
Günther
Funktioniert leider noch immer nicht. Ich habe es mal so versucht. Allerdings kann die Variable kd hier nicht aufgelöst werden.

Private Sub CommandButton7_Click()
'Kundenname von Tabelle "Deckblatt" auslesen
kd = Worksheets("Deckblatt").Range("D6").Value
'Kundenverzeichnis prüfen und anlegen
Dim Path As String
Dim Folder As String
Dim Answer As VbMsgBoxResult
Path = "C:\temp\test\" & kd
Folder = Dir(Path, vbDirectory)
If Folder = vbNullString Then
Answer = MsgBox("Der Pfad existiert nicht. Möchtest Du diesen anlegen?", vbYesNo, "Verzeichnis anlegen?")
Select Case Answer
Case vbYes
VBA.FileSystem.MkDir (Path)
MsgBox Path
Case Else
Exit Sub
End Select
Else
MsgBox "Verzeichnis existiert bereits"
End If
Const quelldatei As String = "C:\temp\test\*.pdf"
Const Zielpfad As String = "C:\temp\test\"
Const zieldatei As String = "allezusammen.pdf"
Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
quelldatei & " cat output " & Zielpfad & kd & zieldatei, WindowStyle:=vbHide) ' kd wird nicht aufgelöst
End Sub
Grüße
Günther
Anzeige
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 09:26:42
Heli
Hi,
steht bei Dir in der Variable "kd" am Ende auch ein "\"?
Falls nicht landest Du nicht im richtigen Ordner...
VG, Heli
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 09:57:26
Günther
Hallo Heli,
sorry, war meine eigene Dummheit. Natürlich habe ich den "\" vergessen. Jetzt funktioniert es.
Nur habe ich im Kundenname teilweise nicht nur ein Wort wie z.B. Müller stehen sondern auch "Mercedes Benz". Also zwei Wörter. Dies nimmt er so nicht an. Wie kann ich denn das noch irgendwie abfangen?
Günther
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 10:03:31
peterk
Hallo
Hab ich Dir doch schon geschickt.
Peter
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 12:06:21
Günther
Stimmt. Trotzdem funktioniert es nicht. Keine Ahnung warum. ich habe noch bei der quelle die Variable kd entfernt. Sonst nichts. KD (Kundenname) kann Leerzeichen enthalten.
Call Shell(PathName:="C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"""c:\temp\test\" & "*.pdf"" cat output ""c:\temp\test\" & kd & "\zusammen.pdf"", WindowStyle:=vbHide)
Anzeige
AW: Variabel in die Pfadangabe übernehmen
21.09.2022 12:37:52
peterk
Hallo
Funktioniert bei mir (KD must Du wieder richtig setzen und auch den Pfad)

Sub Test()
'Kundenname von Tabelle "Deckblatt" auslesen
kd = "Franz Meier"
'Kundenverzeichnis prüfen und anlegen
Dim Path As String
Dim Folder As String
Dim File As String
Dim Answer As VbMsgBoxResult
Dim PN As String
Path = "C:\temp\" & kd
Folder = Dir(Path, vbDirectory)
If Folder = vbNullString Then
Answer = MsgBox("Der Pfad existiert nicht. Möchtest Du diesen anlegen?", vbYesNo, "Verzeichnis anlegen?")
Select Case Answer
Case vbYes
VBA.FileSystem.MkDir (Path)
MsgBox Path
Case Else
Exit Sub
End Select
Else
MsgBox "Verzeichnis existiert bereits"
End If
File = Dir("c:\temp\" & kd & "\zusammen.pdf")
If File  "" Then
' File wird gelöscht
Kill "c:\temp\" & kd & "\zusammen.pdf"
End If
File = Dir("c:\temp\" & kd & "\*.pdf")
If File  "" Then
PN = "C:\Program Files (x86)\PDFtk\bin\pdftk.exe " & _
"""c:\temp\" & kd & "\*.pdf"" cat output ""c:\temp\" & kd & "\zusammen.pdf"""
Call Shell(PathName:=PN, WindowStyle:=vbHide)
Else
MsgBox "Keine PDF vorhanden!"
End If
End Sub
Peter
Anzeige
AW: Variabel in die Pfadangabe übernehmen
19.09.2022 16:33:43
Piet
Hallo
ich nehme ein ein simpler Flüchtigkeitsfehler. Schau bitte mal hier, was mir auffiöe:
"c:\temp\test\ & kd "\" & *.pdf cat output c:\temp\test\ & kd & "\" & zusammen.pdf", WindowStyle:=vbHide)
Da fehlt ein & Zeichen hinter kd und vor "\" - Ich hoffe das ist der einzige Fehler!
mfg Piet
AW: Variabel in die Pfadangabe übernehmen
20.09.2022 07:26:20
Günther
Super Danke Piet.
Grüße
Günther

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige