Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige