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

Compile Error in hidden module

Compile Error in hidden module
16.01.2023 10:35:35
Uwe
Guten Morgen in die Runde und allen ein froehliches und gesundes neues Jahr 2023.
Da ich einen neuen Rechner habe und dieser mit 64 bit laeuft, habe ich seitdem eine Exceldatei zu oeffnen.
Meine Excelversion ist wie folgt:
Microsoft® Excel® 2019 MSO (Version 2202 Build 16.0.14931.20858) 64-bit
Es erscheint beim oeffnen einer VBA Exceldatei die folgende Fehlermeldung:
Microsoft Visual Basic for Applications
Compile error in hidden module: basMain.
Wenn ich mir das VBA anschaue finde ich dort dann ROT im Modul "BasMain" das folgende:
Option Explicit
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
ByVal hdc As Long) As Long
Const HORZRES = 8
Const VERTRES = 10
Wie bekomme ich das denn angepasst so das es unter 32 und 64 Umgebung laeuft ?
Vielen Dank fuer eure Unterstuetzung und einen schoenen Tag,
Uwe

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Compile Error in hidden module
16.01.2023 11:41:54
Nepumuk
Hallo Uwe,
so:

Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32.dll" ( _
ByVal hdc As LongPtr, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDC Lib "user32.dll" ( _
ByVal hwnd As LongPtr) As LongPtr
Private Declare PtrSafe Function ReleaseDC Lib "user32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal hdc As LongPtr) As Long
#Else
Private Declare Function GetDeviceCaps Lib "gdi32.dll" ( _
ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal hdc As Long) As Long
#End If
Private Const HORZRES As Long = 8
Private Const VERTRES As Long = 10
Public Sub Beispiel()
#If Win64 Then
Dim lngDC As LongPtr
#Else
Dim lngDC As Long
#End If
lngDC = GetDC(0)
MsgBox GetDeviceCaps(lngDC, HORZRES) & " / " & GetDeviceCaps(lngDC, VERTRES)
Call ReleaseDC(0, lngDC)
End Sub
Gruß
Nepumuk
Anzeige
AW: Compile Error in hidden module
16.01.2023 12:23:10
Uwe
Hallo Nepumuk,
vielen Dank schon mal.
Ich habe es rein kopiert so wie von dir beschrieben und habe alles so belassen. Die "#" habe ich natuerlich raus genommen.
Die Bezeichnung der Sub "Beispiel" habe ich so belassen.
Alles was bei mir "zuvor falsch" war, ist weiterhin direkt ROT.
Die Fehlermeldung erscheint beim oeffnen noch immer. Habe ich was falsch verstanden / gemacht ?
Vielen Dank schon mal fuer deine Hilfe,
Uwe
AW: Compile Error in hidden module
16.01.2023 12:27:44
Nepumuk
Hallo Uwe,
die # sind wichtig, da sie der bedingten Kompilierung dienen. Dass dann Zeilen rot bleiben, ist damit kein Problem.
Gruß
Nepumuk
Anzeige
AW: Compile Error in hidden module
16.01.2023 12:43:19
Uwe
Hallo Nepumuk,
ich habe es so reinkopiert und belassen wie von dir beschrieben. Das Problem kommt leider immer noch.
Hier jetzt einmal alles aus der BASMAIN:
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32.dll" ( _
ByVal hdc As LongPtr, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDC Lib "user32.dll" ( _
ByVal hwnd As LongPtr) As LongPtr
Private Declare PtrSafe Function ReleaseDC Lib "user32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal hdc As LongPtr) As Long
#Else
Private Declare Function GetDeviceCaps Lib "gdi32.dll" ( _
ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal hdc As Long) As Long
#End If

Private Const HORZRES As Long = 8
Private Const VERTRES As Long = 10

Public Sub Beispiel()
#If Win64 Then
Dim lngDC As LongPtr
#Else
Dim lngDC As Long
#End If
lngDC = GetDC(0)
MsgBox GetDeviceCaps(lngDC, HORZRES) & " / " & GetDeviceCaps(lngDC, VERTRES)
Call ReleaseDC(0, lngDC)
End Sub


Function ScreenResolution()
Dim lRval As Long
Dim lDc As Long
Dim lHSize As Long
Dim lVSize As Long
lDc = GetDC(0&)
lHSize = GetDeviceCaps(lDc, HORZRES)
lVSize = GetDeviceCaps(lDc, VERTRES)
lRval = ReleaseDC(0, lDc)
ScreenResolution = lHSize & "x" & lVSize
End Function
Anzeige
AW: Compile Error in hidden module
16.01.2023 12:50:36
Nepumuk
Hallo Uwe,
du musst noch die Funktion wie in meinem Beispiel anpassen:

Function ScreenResolution()
#If Win64 Then
Dim lDc As LongPtr
#Else
Dim lDc As Long
#End If
Dim lRval As Long
Dim lHSize As Long
Dim lVSize As Long
lDc = GetDC(0&)
lHSize = GetDeviceCaps(lDc, HORZRES)
lVSize = GetDeviceCaps(lDc, VERTRES)
lRval = ReleaseDC(0, lDc)
ScreenResolution = lHSize & "x" & lVSize
End Function
Und wie schon geschrieben, die roten Zeilen kannst du ignorieren.
Gruß
Nepumuk
AW: Compile Error in hidden module
16.01.2023 12:56:37
Uwe
Jetzt klappt es.
Vielen, vielen Dank. Ein frohes und gesundes Jahr 2023. Vielen Dank !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige