Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1712to1716
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

Code auf 64bit aktualisieren

Code auf 64bit aktualisieren
26.09.2019 11:46:18
Marcus
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

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Such im Archiv nach "PtrSafe". (owT)
26.09.2019 11:53:48
EtoPHG

AW: Such im Archiv nach "PtrSafe". (owT)
26.09.2019 12:32:33
Marcus
@Etophg
wie und wo mache ich das?
AW: Nach einem kurzen Blick...
26.09.2019 12:51:41
Marcus
@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
Anzeige
AW: Nach einem kurzen Blick...
26.09.2019 12:56:29
Nepumuk
Hallo Marcus,
LongPtr brauchst du nur für Pointer die Funktion gibt aber nur 0 (fehlgeschlagen) oder 1 (erfolgreich) zurück. also:
Declare PtrSafe Function MakePath Lib "imagehlp.dll" _
    Alias "MakeSureDirectoryPathExists" (ByVal _
    lpPath As String) As Long

Gruß
Nepumuk
Anzeige
AW: Nach einem kurzen Blick...
26.09.2019 13:15:21
Marcus
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

Anzeige
AW: Nach einem kurzen Blick...
26.09.2019 13:56:14
Nepumuk
Hallo Marcus,
wie äußert sich das, Fehlermeldung, Programmabsturz … ?
Gruß
Nepumuk
AW: Nach einem kurzen Blick...
26.09.2019 13:59:47
Marcus
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
AW: Nach einem kurzen Blick...
26.09.2019 14:15:23
Nepumuk
Hallo Marcus,
dazu kann ich nichts sagen, ich habe keine 64Bit - Version. Selbst Microsoft rät davon ab.
Gruß
Nepumuk
AW: Nach einem kurzen Blick...
26.09.2019 14:52:51
Marcus
wie kann ich Excel dazu zwingen das es im 32bit mode startet? geht das
AW: Nach einem kurzen Blick...
26.09.2019 14:58:04
Nepumuk
Hallo Marcus,
das geht nicht.
Gruß
Nepumuk
AW: Nach einem kurzen Blick...
26.09.2019 15:02:25
Marcus
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

jetzt mault er noch bei der Zeile if makepath usw. selbst wenn ich die durch MakeSureDirectoryPathExists ersetze:
kommt die Meldung fehler beim komilieren - sub oder function nicht definiert
Anzeige
AW: Nach einem kurzen Blick...
26.09.2019 15:11:04
Nepumuk
Hallo Markus,
teste mal:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    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 = .Columns(1).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 MakeSureDirectoryPathExists(strWurzel & strVerzeichnis & "\") Then
                    
                    'Hyperlink anlegen
                    .Hyperlinks.Add Anchor:=.Cells(lZeile, 1), _
                        Address:=strWurzel & strVerzeichnis, _
                        ScreenTip:="Öffne " & strVerzeichnis, _
                        TextToDisplay:=strVerzeichnis
                End If
            End If
        Next
        
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Nach einem kurzen Blick...
26.09.2019 15:14:34
Marcus
danke danke danke
wo wohnst du ich bring dir BIER danke Danke Danke

89 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige