Betrifft: Code auf 64bit aktualisieren
von: Marcus
Geschrieben am: 26.09.2019 11:46:18
Hallo zusammen,
habe einen neuen Firmen PC und dort kommt sobald ich eine alte Datei von mir öffne, ich soll den Code für das Projekt auf 64 BIT aktuallisieren. Bloß wie und wo.
der Code der rot hinterlegt ist (installiert ist jetzt Excel 2016):
Declare Function MakePath Lib "imagehlp.dll" _
Alias "MakeSureDirectoryPathExists" (ByVal _
lpPath As String) As Long
Betrifft: Such im Archiv nach "PtrSafe". (owT)
von: EtoPHG
Geschrieben am: 26.09.2019 11:53:48
Betrifft: AW: Such im Archiv nach "PtrSafe". (owT)
von: Marcus
Geschrieben am: 26.09.2019 12:32:33
@Etophg
wie und wo mache ich das?
Betrifft: Nach einem kurzen Blick...
von: Case
Geschrieben am: 26.09.2019 12:38:52
Hallo, :-)
... ins Web: ;-)
Kompatibilität zwischen der 32-Bit- und der 64-Bit-Version von Office...
Servus
Case
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 12:51:41
@CASE
ja das habe ich auch gefunden, nur weis ich nicht was ich an meinem Code ändern muss um ihn kompatibel zu machen? das Long auf LongPtr, des reicht wohl nicht.
muss ich die Zeile dort kpl. kopieren und meinen Code ersetzen?
Bitte um Hilfe für Dumme hihi
danke Marcus
Betrifft: AW: Nach einem kurzen Blick...
von: Nepumuk
Geschrieben am: 26.09.2019 12:56:29
Hallo Marcus,
LongPtr brauchst du nur für Pointer die Funktion gibt aber nur 0 (fehlgeschlagen) oder 1 (erfolgreich) zurück. also:
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 13:15:21
besten Danke Nepumuk
jetzt habe ich die erste Zeile verstanden
nur mault er jetzt bei == if makepath(strwurzel usw.
der kpl. Code
Sub machHyperlinksNurEingeblendete() Dim lZeile As Long, lLetzteZeile As Long Dim strWurzel As String, strVerzeichnis As String 'Wurzelverzeichnis festlegen strWurzel = ActiveWorkbook.Path & "\" '"C:\Users\papa\Desktop\" 'Verweis auf Tabellenblatt (evtl. anzupassen) With ActiveSheet 'Letzte benutzte Zeile ermitteln lLetzteZeile = .Range("A:A").Find("*", , , , xlByRows, xlPrevious).Row 'Schleife über alle Zeilen (unabhängig, ob ausgeblendet, oder nicht) For lZeile = 7 To lLetzteZeile 'Nur eingeblendete Zeilen If Not .Rows(lZeile).Hidden Then 'Verzeichnis, das angelegt werden soll strVerzeichnis = CStr(.Cells(lZeile, 1).Value) 'Pfad anlegen If MakePath(strWurzel & strVerzeichnis & "\") Then 'Hyperlink anlegen ActiveSheet.Hyperlinks.Add Anchor:=.Cells(lZeile, 1), _ Address:=strWurzel & strVerzeichnis, _ ScreenTip:="Öffne " & strVerzeichnis, _ TextToDisplay:=strVerzeichnis End If End If Next End With End Sub
Betrifft: AW: Nach einem kurzen Blick...
von: Nepumuk
Geschrieben am: 26.09.2019 13:56:14
Hallo Marcus,
wie äußert sich das, Fehlermeldung, Programmabsturz … ???
Gruß
Nepumuk
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 13:59:47
Hi nepumuk
er springt ins VBA und markiert den Wortlaut und führt das Makro nicht aus.
Ich finde nur keinen bezug von dem Makro zu der Umstellung auf 64 Bit?
Gruß
Marcus
Betrifft: AW: Nach einem kurzen Blick...
von: Nepumuk
Geschrieben am: 26.09.2019 14:15:23
Hallo Marcus,
dazu kann ich nichts sagen, ich habe keine 64Bit - Version. Selbst Microsoft rät davon ab.
Gruß
Nepumuk
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 14:52:51
wie kann ich Excel dazu zwingen das es im 32bit mode startet? geht das
Betrifft: AW: Nach einem kurzen Blick...
von: Nepumuk
Geschrieben am: 26.09.2019 14:58:04
Hallo Marcus,
das geht nicht.
Gruß
Nepumuk
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 15:02:25
habe ich irgendeine chance diesen Code zum laufen zu bekommen?
Option Explicit Declare PtrSafe Function apiCreateFullPath Lib "imagehlp.dll" Alias _ "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long Sub machHyperlinksNurEingeblendete() Dim lZeile As Long, lLetzteZeile As Long Dim strWurzel As String, strVerzeichnis As String 'Wurzelverzeichnis festlegen strWurzel = ActiveWorkbook.Path & "\" '"C:\Users\papa\Desktop\" 'Verweis auf Tabellenblatt (evtl. anzupassen) With ActiveSheet 'Letzte benutzte Zeile ermitteln lLetzteZeile = .Range("A:A").Find("*", , , , xlByRows, xlPrevious).Row 'Schleife über alle Zeilen (unabhängig, ob ausgeblendet, oder nicht) For lZeile = 7 To lLetzteZeile 'Nur eingeblendete Zeilen If Not .Rows(lZeile).Hidden Then 'Verzeichnis, das angelegt werden soll strVerzeichnis = CStr(.Cells(lZeile, 1).Value) 'Pfad anlegen If MakePath(strWurzel & strVerzeichnis & "\") Then 'Hyperlink anlegen ActiveSheet.Hyperlinks.Add Anchor:=.Cells(lZeile, 1), _ Address:=strWurzel & strVerzeichnis, _ ScreenTip:="Öffne " & strVerzeichnis, _ TextToDisplay:=strVerzeichnis End If End If Next End With End Sub
Betrifft: AW: Nach einem kurzen Blick...
von: Nepumuk
Geschrieben am: 26.09.2019 15:11:04
Hallo Markus,
teste mal:
Betrifft: AW: Nach einem kurzen Blick...
von: Marcus
Geschrieben am: 26.09.2019 15:14:34
danke danke danke
wo wohnst du ich bring dir BIER danke Danke Danke