Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kompilierungsfehler beim Ausführen mit Exel 365
#1
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!
]
Antworten Top
#2
https://www.jkp-ads.com/articles/apideclarations.asp
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • FredW
Antworten Top
#3
Vielen Dank, aber mit MO 2010 funktioniert alles, nur bei MO365 nicht. Und da sollte es auch funktionieren.
Antworten Top
#4
Hast Du den Link gelesen?
Antworten Top
#5
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.
Antworten Top
#6
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • FredW
Antworten Top
#7
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
Antworten Top
#8
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 …
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • FredW
Antworten Top
#9
Guten Morgen Schauan, vielen Dank, ich werde es ausprobieren. Dir noch eine schöne Woche!
Antworten Top
#10
Vielen vielen Dank, es funktioniert und ich habe etwas neues gelernt bzw. verstanden. :28: :28:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste