Anzeige
Archiv - Navigation
1592to1596
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

Pfad und PDF-Dateien erstellen

Pfad und PDF-Dateien erstellen
04.12.2017 14:10:52
Tobi
Hallo zusammen,
ich könnte mal eure Hilfe gebrauchen bei einem VBA-Problem. Ich habe viele Foren durchsucht aber leider keine adäquate Lösung gefunden:
Ich habe eine Excel-Tabelle in dieser stehen in einer Zeile in Spalte B und C Werte (in Form von Wörtern):
Spalte B Spalte C
abc ijk
cde lmn
fgh opq
Ich bräuchte jetzt ein VBA welches Auf Knopfdruck prüft, ob in Zelle Cx ein Wert steht. Wenn die Zelle Cx befüllt ist, soll bitte unter einem bestimmten Pfad im Format C:\...\Wert aus Zelle Bx\Wert aus Zelle Cx\ 5 PDF-Dateien mit den Namen 01.pdf, ..., 05.pdf erstellt werden.
Wenn bei dieser Prüfung der Pfad bereits gefunden wurde (soll heißen die Kombination aus Zelle Bx und Cx bereits vorhanden war), sollen die PDF-Dateien nicht nochmal erzeugt werden, damit bereits gespeicherte Dateien nicht ersetzt werden und dann verloren gehen.
Ich hoffe es war halbwegs verständlich erklärt, bei Fragen stehe ich natürlich gerne jederzeit zur Verfügung. Würde mich sehr freuen, wenn ihr mir helfen könntet, da dies mir die Arbeit sehr erleichtern würde.
Vielen Dank vorab und Beste Grüße
Tobi :)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad und PDF-Dateien erstellen
05.12.2017 10:36:04
Robert
Hallo Tobi,
die Verzeichnisse kannst Du wie folgt erstellen:
Sub VerzErstellen()
Dim QPfad As String, Verz1 As String, Verz2 As String
QPfad = "D:\Test\"
If Range("C2")  "" Then
Verz1 = Range("B2")
Verz2 = Range("C2")
If Dir(QPfad & Verz1 & "\" & Verz2 & "\.", vbDirectory) = "" Then
If Dir(QPfad & Verz1 & "\.", vbDirectory) = "" Then
MkDir QPfad & Verz1
End If
MkDir QPfad & Verz1 & "\" & Verz2
End If
End If
End Sub

Die Variable QPfad muss noch an Deinen Pfad "C:\...\" angepasst werden. Das Makro prüft dann ob in C2 ein Wert steht (ich habe C2 genommen da ich nicht wusste, welche Zelle Du mit Cx meinst, steht die irgendwo, ist es die aktuell aktive Zelle oder welche?), dann wird geprüft, ob es das entsprechende Verzeichnis gibt. Sollte dies nicht der Fall sein, wird es erstellt.
Deine PDF-Dateien musst Du dann noch erstellen und in das entsprechende Verzeichnis speichern. Ich weiß ja nicht, was in den PDF-Dateien stehen soll.
Gruß
Robert
Anzeige
AW: Pfad und PDF-Dateien erstellen
05.12.2017 10:59:12
Tobi
Hallo Robert,
vielen Dank für deine schnelle Antwort :)
Hab schonmal getestet funktioniert schon ganz gut.
Vom Prinzip geht es bei Cx um jede Zelle in Spalte C, weil da immer wieder Werte ergänzt werden. Die Kombination aus der Zelle Cx und Bx ist jeweils einzigartig und somit müsste dann quasi nach jeder Eintragung in Cx die ganze Spalte C geprüft werden, ob die Ordner bereits bestehen und wenn nicht die neuen PDF-Dateien erstellt werden.
Als PDF-Datei soll dann jeweils das Tabellenblatt "Tabelle2" unter den verschiedenen Namen (01.pdf, 02.pdf usw.) gespeichert werden.
Hast du diesbezüglich evtl. auch eine Lösung?
Kann gerne auch mal eine Beispieldatei hochladen, wenn dir das weiterhelfen sollte :)
Danke dir vielmals für deine Hilfe !!!
BG Tobi
Anzeige
AW: Pfad und PDF-Dateien erstellen
05.12.2017 13:27:33
Robert
Hallo Tobi,
nachstehendes Makro, das nicht in einem allgemeinen Modul sondern in dem Modul Deiner Tabelle, in der die Ordnernamen eingetragen werden, stehen muss, macht folgendes:
Es prüft bei jeder Änderung in der Tabelle automatisch, ob eine Zelle in der Spalte C geändert wurde. Ist dies der Fall und in der entsprechenden Zelle in der Spalte C steht ein Inhalt, wird geprüft, ob das entsprechende Verzeichnis existiert. Sollte dies nicht der Fall sein, wird es erstellt und das Tabellenblatt 2 fünfmal als 01.pdf bis 05.pdf in dieses neue Verzeichnis gespeichert.
Die Variable QPfad muss natürlich noch an Deine Gegebenheiten angepasst werden.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim QPfad As String, Verz1 As String, Verz2 As String, i As Integer
QPfad = "D:\Test\"
If Target.Column = 3 Then
If Target  "" Then
Verz1 = Target.Offset(0, -1)
Verz2 = Target
If Dir(QPfad & Verz1 & "\" & Verz2 & "\", vbDirectory) = "" Then
If Dir(QPfad & Verz1 & "\.", vbDirectory) = "" Then
MkDir QPfad & Verz1
End If
MkDir QPfad & Verz1 & "\" & Verz2
For i = 1 To 5
Sheets("Tabelle2").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
QPfad & Verz1 & "\" & Verz2 & "\0" & i & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Next i
End If
End If
End If
End Sub

Gruß
Robert
Anzeige
AW: Pfad und PDF-Dateien erstellen
07.12.2017 08:24:41
Tobi
Hallo Robert,
vielen Dank - funktioniert top :)
Mir ist nun nur ein weiteres "Problem" aufgefallen:
In dem Tabellenblatt habe ich jetzt deinen Code hinterlegt und auch Pfadtechnisch angepasst.
Das funktioniert auch, wie gesagt perfekt, wenn ich die Werte in den Zellen in Spalten C manuell eintrage.
Nur ist es derzeit so und soll wenn möglich auch so bleiben, dass diese Cx-Werte und die zugehörigen Werte aus dieser Zeile aus einem anderen Tabellenblatt per "Knopfdruck" hinein kopiert werden (hier teilweise auch mehr als eine Zeile auf einmal). In diesem Fall funktioniert der Code leider nicht und es kommt eine Fehlermeldung (Laufzeitfehler 13: Typen unverträglich).
Deswegen dachte ich, man kann diese Verzeichnisprüfung nach dem Kopieren per "Knopfdruck" manuell auslösen.
Gibt es diesbezüglich auch eine Lösung?
Besten Dank für deine Geduld :)
BG Tobi
Anzeige
AW: Pfad und PDF-Dateien erstellen
07.12.2017 10:31:37
Robert
Hallo Tobi,
das geht auch. Wenn das Makro nicht automatisch starten soll, entfernst Du es am besten wieder aus dem Modul Tabellenblatt und fügst es in ein normales Modul wieder ein. Den Namen des Makros kannst Du ja dann noch anpassen, z. B. ErstelleVerzeichnis oder ähnlich.
Wenn das Makro dann auf Knopfdruck starten soll, musst Du nur einen entsprechenden Button in Deiner Tabelle einfügen. Ich verwende dafür oft eines der Standardformen (Einfügen - Formen), z. B. die Form Rahmen, Rechteck, Kreis oder was immer Du willst. In dieser Form kannst Du einen entsprechenden Hinweistext eingeben. Wenn Du diese Form dann mit der rechten Maustaste anklickst, kannst Du mit "Makro zuweisen ..." das Makro auswählen. Zukünftig reicht dann ein Klick auf diese Form, um das entsprechende Makro zu starten.
Gruß
Robert
Anzeige
AW: Pfad und PDF-Dateien erstellen
07.12.2017 15:04:09
Tobi
Hallo Robert,
das mit den Schaltflächen ist mir bekannt :)
Leider wird das Makro, wenn ich es in ein normales Modul einfüge in der Liste zum Makro zuweisen leider gar nicht angezeigt. Woran könnte das liegen?
BG
T. Kunth
AW: Pfad und PDF-Dateien erstellen
07.12.2017 18:04:17
Robert
Hallo Tobi,
das Schlüsselwort "Private" musst Du noch entfernen, dann müsste das Makro auch angezeigt werden.
Gruß
Robert
AW: Pfad und PDF-Dateien erstellen
08.12.2017 12:05:18
Tobi
Hallo Robert,
entschuldige dich immer noch mit der Thematik zu nerven, aber es kommt dann immer die Fehlermeldung "Argument ist nicht optional" - Was hat es damit auf sich?
Danke und BG
Tobi
AW: Pfad und PDF-Dateien erstellen
08.12.2017 13:49:32
Robert
Hallo Tobi,
hier das bei mir funktionierende Makro. Es muss eine Zelle in der Spalte C angeklickt/aktiviert sein, also z. B. C3. Das Makro erstellt dann die Verzeichnisse mit den Namen aus B3/C3 und die entsprechenden PDF-Dateien.
Sub VerzeichnisErstellen()
Dim QPfad As String, Verz1 As String, Verz2 As String, i As Integer
QPfad = ""D:\Test\"
If ActiveCell.Column  3 Then
MsgBox "Bitte die Zelle in der Spalte C mit dem zu erstellenden Verzeichnis auswählen!",  _
vbCritical, "Falsche Zelle markiert"
Exit Sub
End If
If ActiveCell  "" Then
Verz1 = ActiveCell.Offset(0, -1)
Verz2 = ActiveCell
If Dir(QPfad & Verz1 & "\" & Verz2 & "\", vbDirectory) = "" Then
If Dir(QPfad & Verz1 & "\.", vbDirectory) = "" Then
MkDir QPfad & Verz1
End If
MkDir QPfad & Verz1 & "\" & Verz2
For i = 1 To 5
Sheets("Tabelle2").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
QPfad & Verz1 & "\" & Verz2 & "\0" & i & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Next i
End If
End If
End Sub
Gruß
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige