Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 64 bit Version Makro funktioniert nicht?

64 bit Version Makro funktioniert nicht?
24.01.2018 10:31:35
arek
Hallo zusammen,
ich habe folgendes Problem: Ich habe ein Makro erstellt, welches mir eine automatische PDF erzeugt und dann unter einem Pfad abspeichert. Dieses Makro funktioniert auch, wenn eine 32 bit Version vorhanden ist. Bei einer 64 bit Version kommt die Kompilierungsfehlermeldung, dass der Code auf 64 bit Version aktualisiert werden muss. Ich denke es liegt an der API Dekleration...Kann mir hier jemand weiterhelfen?
Hier mein Code:
Option Explicit
'API Deklaration~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal DirPath As String) As Long
'Ende API Deklaration~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'PDF erstellen (MEI)
Private Sub CommandButton1_Click()
Dim strFileName As String
Dim strPath As String
Dim result As Long
strPath = "I:\Desktop\arek\1\" & "\" & Range("A3").Text & "\"
result = MakeSureDirectoryPathExists(strPath)
If result  0 Then
strFileName = strPath & Range("C31") & "_" & Range("B2")
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Else
MsgBox "Verzeichnis kann nicht erstellt werden!" & vbLf & strPath, 48, "Hinweis"
End If
End Sub

'PDF erstellen (B)
Private Sub CommandButton2_Click()
Dim strFileName As String
Dim strPath As String
Dim result As Long
strPath = "I:\Desktop\arek\2\" & "\" & Range("A3").Text & "\"
result = MakeSureDirectoryPathExists(strPath)
If result  0 Then
strFileName = strPath & Range("C31") & "_" & Range("B2")
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Else
MsgBox "Verzeichnis kann nicht erstellt werden!" & vbLf & strPath, 48, "Hinweis"
End If
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 64 bit Version Makro funktioniert nicht?
24.01.2018 10:43:31
Robert
Hallo arek,
brauchst Du die API-Deklaration hier nur, um zu prüfen, ob es das Verzeichnis gibt? Das könntest Du ohne API auch wie folgt erreichen:
result = Dir(strPath, vbDirectory)
Wenn es das Verzeichnis gibt, hat result den Verzeichnisnamen als Wert, wenn es das Verzeichnis nicht gibt ist result leer ("").
Gruß
Robert
Anzeige
AW: 64 bit Version Makro funktioniert nicht?
24.01.2018 10:46:50
Sepp
Hallo Arek,
ändere die Deklaration um in:

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal DirPath As String) As Long
Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige