Clever-Excel-Forum

Normale Version: Kompilierungsfehler beim Ausführen mit Exel 365
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe eine Checkliste, die nach dem Ausfüllen auf C: in einem neu anzulegenen Ordner gesichert gespeichert werden soll. Unter Exel 2010 läufts. Unter Exel 365 kommt der Fehler.

Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal PFAD As String) As Long

Meine bisherige Eingabe im Makromodul:
<
<
<
Msgbox ("The file is stored with the country code and the date in the directory * C:\Name des Ordners\ * ")
'MkDir "C:\Save\"
Const PFAD As String = "C:\Name des Ordners\"
MakeSureDirectoryPathExists PFAD
'ActiveWorkbook.Copy
'ActiveWorkbook.SaveAs Filename:="C:\Daten\" & ActiveSheet.Range("A153").Value & ".xls"
ActiveWorkbook.SaveAs Filename:="C:\Name des Ordners\" & ActiveSheet.Range("D5") & "_" & ActiveSheet.Range("D6") & "_" & Format(ActiveSheet.Range("P2"), "yymmdd") & ".xls"
Call Ohne_Speichern_schliessen
Next
End Sub

Wer kann mir helfen, damit es auch unter Exel 365 funktioniert?[img=1x10]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

..... eine Ergänzung:

Beim Schließen der Datei kam noch folgende Meldung:

"Der Code in diesem Projekt muss für die Verwendung auf 64-Bit-Systemen aktualisiert werden. Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren Sie sie mit dem PtrSafe-Attribut."[img=1x10]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
Vielen Dank, aber mit MO 2010 funktioniert alles, nur bei MO365 nicht. Und da sollte es auch funktionieren.
Hast Du den Link gelesen?
Hi Storax, ja, ich habe mich jetzt mal eingelesen. Entschuldige bitte, ist mir trotzdem zu hoch. Ich bin eigentlich nur Anwender der Datei. Ich habe zwar vor Jahren daneben gesessen, als wir diese erstellt hatten, habe dann später alle Änderungen, die notwendig waren, mühevoll hinbekommen, doch jetzt bin ich am Ende. Zumal, vielleicht mache ich auch einen Denkfehler, die Datei mit MO 2010 unter WIN 7 funktioniert hat. Jetzt habe ich WIN10 auf dem Rechner, funktioniert mit MO2010 auch. Nur wenn ich MO365 ausführe, geht´s nicht. Jetzt habe ich geschnallt, dass es das Problem gibt, weil die Datei und MO2010, welches ich habe, 32-Bit ist und das MO365 eine 64-Bit-version ist und es deshalb zu dem Fehler kommt.
Ich habe mir auch eine Datei bei Microsoft runtergeladen : Office2010Win32API_PtrSafe.exe
Trotzdem weiß ich immer noch nicht, wo müßte ich was ändern. Sorry.
Für die 64-bit XL-Version dürfte diese Anpassung ausreichen

Code:
Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal PFAD As String) As LongPtr

Und Du hast den Link richtig verstanden, diese Anpassung ist wegen eines 64-bittigen XL nötig.
Und wohin muss der Code geschrieben werden? Und gehe mal davon aus, auch die exe. muss ausgeführt werden? Entschuldige bitte, bin Autodidakt im allerersten Anfangsstadium.  Auf jeden Fall Dir schon einmal ein schönes Wochenende! Gruß Fred
Hallo Fred,

Du hast doch ein Stück Code gepostet. Der war doch keine exe - Du schreibst vom Makromodul ...

Wo der Vorschlag hin gehört siehst Du da und in Deinem Eingangsbeitrag stand auch schon der Hinweis
"Der Code in diesem Projekt muss für die Verwendung auf 64-Bit-Systemen aktualisiert werden. Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren Sie sie mit dem PtrSafe-Attribut." .

Gepostet hast Du als erste Zeile
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal PFAD As String) As Long

Der Vorschlag ist
Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal PFAD As String) As LongPtr
und dazu wurde geschrieben
diese Anpassung ist wegen eines 64-bittigen XL nötig.

Wenn Du beide Zeilen vergleichst, siehst Du, dass es da 2 Unterschiede gibt. Das sind die Anpassungen …
Guten Morgen Schauan, vielen Dank, ich werde es ausprobieren. Dir noch eine schöne Woche!
Vielen vielen Dank, es funktioniert und ich habe etwas neues gelernt bzw. verstanden. :28: :28: