Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

pdf-Druck in einen Ordner mit einem bestimmten Nam


Betrifft: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 03.08.2018 22:05:54

Hallo zusammen,

ich habe folgendes funktionierendes Makro im Einsatz:

Option Explicit
Sub CreatePdfDocuments()

Dim a As Worksheet, b As Worksheet, c As Range
Set a = Sheets("Makro_Hilfe")
Set b = Sheets("BB Berater")
For Each c In a.Range("A11:A" & a.Cells(Rows.Count, 1).End(xlUp).Row)
b.Range("K3").Value = c.Value 'Beraterauswahl
b.ExportAsFixedFormat xlTypePDF, c.Value & ".pdf"
Next

End Sub
Im möchte dieses Makro dahingehend erweitern, dass es mir die generierte pdf in einen Ordner wirft, der vom Makro zu erstellen ist und den Namen aus Zelle BQ2 des Sheets "BB Berater" erhält.
Ich habe mich schon selbst ein bisschen mit MkDir versucht, bin aber bislang noch auf keinen grünen Zweig gekommen.
Kann mir jemand auf die Sprünge helfen?

Vielen Dank für jegliche Unterstützung!!

  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 07:50:03

Hallo Sandro,

Modul Modul1

Option Explicit 
 
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long 
 
Sub CreatePdfDocuments() 
  Dim a As Worksheet, b As Worksheet, c As Range 
  Dim strPath As String 
   
  Set a = Sheets("Makro_Hilfe") 
  Set b = Sheets("BB Berater") 
   
  strPath = b.Range("BQ2").Value 
   
  If Right(strPath, 1) <> "\" Then strPath = strPath & "\" 
   
  If MakeSureDirectoryPathExists(strPath) <> 0 Then 
    For Each c In a.Range("A11:A" & a.Cells(Rows.Count, 1).End(xlUp).Row) 
      b.Range("K3").Value = c.Value 'Beraterauswahl 
      b.ExportAsFixedFormat xlTypePDF, strPath & c.Value & ".pdf" 
    Next 
  Else 
    MsgBox "Das Verzeichnis '" & strPath & "' konnte nicht erstellt werden!", vbExclamation 
  End If 
 
Set a = Nothing 
Set b = Nothing 
End Sub 


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0





 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 10:27:33

Hallo Sepp,

vielen Dank für die Hilfe. Ich denk ich habe ein Problem Wechsel 32 bit vs. 64 bit-Version. Er bringt mir einen Fehler bei

If MakeSureDirectoryPathExists(strPath) <> 0 Then

und zwar genau bei MakeSureDirectoryPathExists. Dort kommt dann der Hinweis Sub oder Function nicht definiert.

Ich hab mir aus dem Netz schon folgendes gezogen, hilft aber dem Problem an o.g. Stelle nicht...

Option Explicit

#If Win64 Then
Private Declare PtrSafe Function apiCreateFullPath Lib "imagehlp.dll" Alias _
"MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
#Else
Private Declare Function apiCreateFullPath Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" _
(ByVal lpPath As String) As Long
#End If

Vielen Dank!!


  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 10:39:33

Hallo Sandro,

ich habe auch win64 und der Code bringt keinen Fehler!


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 10:51:27

Hm, interessant. Ich hab es jetzt nochmals probiert; mit einer leichten Veränderung/Anpassung (deinen Code nur um PtrSafe ergänzt). Jetzt läuft es durch, aber jetzt wird die Msg-Box "Das Verzeichnis konnte nicht erstellt werden" aktiv.

Kann das am Speicherort liegen?


  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 11:12:19

Hallo Sandro,

"Kann das am Speicherort liegen?"

Wahrscheinlich! Was steht den in BQ2?


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 11:14:11

Eine Formel, die mir in Abhängigkeit von K3 jeweils einen anderen Wert auswirft.
Derzeit steht z.B. yh0rlab drin.


  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 11:44:58

Hallo Sandro,

es ist doch wohl logisch, dass ein Verzeichnis nur erstellt werden kann, wenn der gesamte Pfad angegeben Wird!

Woher soll die Funktion den wissen, auf welchem Laufwerk und in welchem Ordner das Verzeichnis erstellt werden soll!

  strPath = "C:\DeinVerzeichnis\" & b.Range("BQ2").Value
  'oder 
  strPath = ThisWorkbook.Path & "\" & b.Range("BQ2").Value


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 12:19:59

Hallo Sepp,

sorry, ja...

Es funktioniert, aber die pdfs landen alle in einem Ordner... :(
Ziel ist es, dass jede pdf in einem einzelnen Ordner landet (die Ordnernamen sind auch alle unterschiedlich...)

Gruß Sandro


  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 12:26:46

Hallo Sandro,

das wolltest du doch! Du hast geschrieben, dass der Ordnername in BQ2 steht, wenn du was anderes willst, dann musst du halt die entsprechenden Informationen liefern.


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 12:42:26

Der Ordnername steht auch wirklich in BQ 2, aber er verändert sich durch die for-next-Schleife (durch K3) ständig. Die for-next-Schleife durchläuft 150 bis 200 Zeilen, generiert die pdf-Datei und soll im Zielbild die generierte pdf in einen Ordner werfen, der den Namen von BQ 2 trägt.

Heißt also: ca. 150 Ordner mit jeweils 1 pdf-Datei im Ordner.

1. Ordnername: yh0rlab --- pdf-Datei MaxMustermann.pdf
2. Ordnername: yh0rlac --- pdf-Datei AnnaMustermann.pdf
3. Ordnername: yhßrlad --- pdf-Datei Berndmustermann.pdf
usw.


  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sepp
Geschrieben am: 04.08.2018 12:55:29

Hallo Sandro,

ungetestet!

Sub CreatePdfDocuments()
  Dim a As Worksheet, b As Worksheet, c As Range
  Dim strPath As String
  
  Set a = Sheets("Makro_Hilfe")
  Set b = Sheets("BB Berater")
  
  strPath = ThisWorkbook.Path & "\" 'oder was auch immer! 
  
  For Each c In a.Range("A11:A" & a.Cells(Rows.Count, 1).End(xlUp).Row)
    b.Range("K3").Value = c.Value 'Beraterauswahl 
    If MakeSureDirectoryPathExists(strPath & b.Range("BQ2") & "\") <> 0 Then
      b.ExportAsFixedFormat xlTypePDF, strPath & b.Range("BQ2") & "\" & c.Value & ".pdf"
    End If
  Next

  Set a = Nothing
  Set b = Nothing
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Wenn du deine Frage gleich richtig formuliert hättest, dann bräuchten wir nicht dieses Ratespiel spielen.



 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: pdf-Druck in einen Ordner mit einem bestimmten Nam von: Sandro Franke
Geschrieben am: 04.08.2018 13:45:56

Hallo Sepp,

tausend Dank für deine Hilfe und deine Mühen. Es funktioniert.
Und sorry, dass ich mich von Anfang an nicht deutlich genug ausgedrückt habe.

Wenn du im die Ecke wohnen würdest, würde ich dir einen ausgeben.

Gruß
Sandro


Beiträge aus dem Excel-Forum zum Thema "pdf-Druck in einen Ordner mit einem bestimmten Nam"