Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Declare ??

Declare ?
23.04.2021 08:13:29
opalu
Hallo Profis,
ich hab in einer Tabelle ein Makro das bis Excel 2013 funktionierte.
Bei Excel aus Office 365 bekomme ich bei dem Befehl:
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
und den Hinweis "Fehler beim Komplimieren" Der Code in diesem Projekt muss für die Verwendung auf 64 bit Systemen akutualiert werden.
Überarbeiten und aktualisieren sie die Declar-Anweisungen und markieren Sie Sie mit dem Ptr-Safe- attribut
ich leider keine Ahnung was ich nun machen soll.
Könnt Ihr mir Helfen dann danke ich jetzt schon.
mfg Opalu

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Declare ?
23.04.2021 08:36:24
Nepumuk
Hallo Opalu,
zeig mal den gesamten Code des Moduls.
Gruß
Nepumuk
AW: Declare ?
23.04.2021 08:45:26
MRUTOR
Hallo Opalu,
du hast gewechselt von 32bit auf 64bit Excel. Somit muessen die Declare Anweisungen dafuer erweitert werden. So:
Declare PtrSafe Function
Gruss Tor
AW: Declare ?
23.04.2021 10:48:21
volti
Hallo Opalu,
das Schlüsselwort PtrSafe muss sein, ist aber u.U. nicht ausreichend, da auch diverse Variablen auf LongPtr umgestellt werden müssen.
Wenn es nur die zwei Funktionen sind, schau Dir diese Declare-Anweisungen an.
Falls es noch nicht funktionieren sollte und abhängig von Deinem Code noch irgendwo was geändert werden müsste, bräuchte man, wie von Nepumuk vorgeschlagen, Deinen gesamten Code.
Code:

[Cc]

Private Declare PtrSafe Function SHBrowseForFolder Lib "Shell32.dll" _ Alias "SHBrowseForFolderA" ( _ lpBrowseInfo As BROWSEINFO) As LongPtr Private Declare PtrSafe Function SHGetPathFromIDList Lib "Shell32.dll" _ Alias "SHGetPathFromIDListA" ( _ ByVal pidl As LongPtr, ByVal pszPath As String) As Long Private Type BROWSEINFO hOwner As LongPtr pidlRoot As LongPtr pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As LongPtr lParam As LongPtr iImage As Long End Type

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Declare ?
23.04.2021 13:41:57
Nepumuk
Hallo Karl-Heinz,
wo kann ich mir dein Code-Konverter-Addin herunterladen?
Gruß
Max
AW: Declare ?
23.04.2021 20:22:06
opalu
Hallo Volti, Hallo Nepomuk,
die declar-Anweisung hab ich angepasst.
jetzt bleibt das Makro bei
Function GetDirectory(Optional cMsg) As String
'Mittels dieser Funktion kann vom User eine Directory gewählt werden
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(cMsg) Then
bInfo.lpszTitle = " "
Else
bInfo.lpszTitle = cMsg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
anbei der komplette Code von Modul 1
Anzeige
AW: Declare ?
23.04.2021 23:00:24
volti
Hallo Max,
ich habe meinen Codeconverter mal bei unserem 64-Bit-Thema bei Office-Forum hochgeladen.
http://www.office-loesung.de/p/viewtopic.php?f=169&t=856588&start=60#p3351422
Hallo opalu,
der Rückgabetyp der Function SHBrowseForFolder ist LongPtr, also muss auch die Variable x entsprechend deklarert werden.
DIM x as LongPtr.
PS: Auch scheint mir Dein Code nicht vollständig zu sein...
viele Grüße
Karl-Heinz
AW: Declare ?
24.04.2021 19:41:56
opalu
Hallo Karl Heinz,
Danke für Deine Hilfe,
Du hast recht, da gibts noch ein Modul
Da muss ich noch weiter checken.
Danke von Opalu
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige