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

Userform bzw. Makro funktioniert in Excel 2016 nicht

Userform bzw. Makro funktioniert in Excel 2016 nicht
06.12.2023 17:42:11
Charles
Hallo liebe Excelgemeinde,
mein Problem liegt in einem Makro.
Das Makro bzw. die entsprechende Userform wird zwar in Ecxel 2019 einwandfrei abgearbeitet, aber sobald ich es öffne wird Excel in den abgesicherten Modus geschaltet und Excel beendet.
Jetzt habe ich diese Datei in Excel 2019 bei einem Bekannten geöffnet und alles funktioniert.
Danach habe ich versucht den Fehler zu finden, ich bin eigentlich nur dahingehend gekommen, dass es in den Klassenmodulen liegt. Finde aber irgendwie keine Lösung.
Für mich war das Makro bei einer Arbeitsmappe mit vielen Tabellenblättern eine gute Sache, damit man schnell von einer zur anderen Tabelle "springen" konnte.
Ich möchte von meinem Office2016 nicht unbedingt auf Office2019 umsteigen bzw. neu installieren.
Vielleicht weiß ein User eine Lösung für dieses Problem. Hier die Beispieldatei: https://www.herber.de/bbs/user/164905.xls

Gruß Charles

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
06.12.2023 18:07:57
Marc
Ich hab unter:

https://learn.microsoft.com/de-de/office/vba/api/excel.application.onkey

folgendes gefunden:
Hinweis
Es gibt derzeit keine Möglichkeit, den Befehlsschlüssel in aktuellen Versionen von Office VBA zu erkennen. Microsoft ist sich dessen bewusst und prüft dies.

Das Problem ist deine OnKey Deklaration.
Da deine Userform auch ohne OnKey angezeigt wird und funktioniert, würde ich vielleicht entweder das Onkey einfach weg lassen oder eine Fehlerroutine erstellen z.b.



On Error GoTo OneKeyFehler
Application.OnKey "^{F1}"
On Error GoTo 0

...
Exit Sub
OneKeyFehler:
MsgBox Err.Description, vbOKOnly
Resume Next
End Sub



somit wird der Fehler abgefangen, wenn er auftritt und du kannst weiter machen.. die MsgBox musst du natürlich nicht anzeigen lassen, ist aber zum Testen immer ganz gut finde ich.

bei mir taucht der Fehler im übrigen in Excel 2016, 2019 und 365 auf..

Da ich mit OnKey noch nicht gearbeitet habe, bin ich sicher nicht der Experte dafür, aber gefühlt fehlt bei deiner Deklaration



Application.OnKey "^{F1}"


einfach was er bei der Tastenkombination machen soll, bzw. er stellt sie auf Standard zurück (gibt es für diese Kombination eine Standard Prozesdur?).
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
07.12.2023 08:56:07
Charles
Hallo Uwe,
danke für den Hinweis und Information.
Es ist aber trotzdem komisch, dass es bei mir mit Win 10 und Office 2016 nicht funktioniert (Gründe sind wahrscheinlich mit deiner Ausführung ausschlaggebend), aber bei meinem Bekannten mit Win10 und Office2019 funktioniert es einwandfrei?
Mein Gedanke ist nun, dass im Office 2016 von Microsoft irgendetwas anders ist und Office 2019 diese "Fehler" akzeptiert.

Dein Hinweis mit einer UF und einer ComboBox habe ich auch schon mal mit dem Makrorecorder versucht, aber "mmpff!"

Klar geht das mit dem Anklicken der Tabellenblätter einfacher und ist auch normal, aber bei mehr als 15 bis max 50 Tabellenblättern wollte das der damalige Nutzer eben "anders" gelöst haben.

Charles
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
07.12.2023 11:31:38
Piet
Hallo

höfliche Frage, bei mir läuft dein Beispiel nicht! Da werden die Declare Zeilen für 'Win64" rot markiert!

Wozu ist der Timer überhaupt gut, könnt ihr nicht darauf verzichten. Dann schmeisst ihn raus.
Alternativ gibt es noch den Applicaton.OnTime Befehl, den kann man meines Wissens ohne Kernel32 programmieren

mfg Piet
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
07.12.2023 11:32:25
Charles
Hallo leider ist es hier nicht mehr möglich, nach dem Absenden sich nochmals mit dem Beitrag einzuloggen und den Beitrag auf "NEU" zu setzen oder was ändern.
Schade ...
Also meine Anfrage von heute wäre die neueste und dies hier "nur" Text zum Überlegen ....

Charles
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
07.12.2023 13:40:11
Alwin Weisangler
Hallo Miteinander,

in der Klasse des Timers werden auch noch Elemente erzeugt, so dass es nicht mit dem Herausnehmen dieser Prozedur getan ist. Unvollständig programmiert ist das ebenfalls (Farbzuweisung).
Meine Frage:
Soll ich dir eins bauen, was so wie weiter oben angedeutet zum Anspringen und Anzeigen verwendet wird.
Simpler Weg: Combobox Auswahl --> Blatt anspringen
Aufwendiger Weg: dyn. erzeugte Buttons (nach Anzahl der Sheets) klassenprogrammiert.
Das Machwerk ist halt aus der Zeit gefallen. Da gibt es bessere Wege.

Gruß Uwe
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
07.12.2023 15:54:37
Alwin Weisangler
Hallo Charles,

ich habs mal repariert. Die Docking der Userform habe ich mal ans Fenster gehangen. Das Schwarz habe ich in Grau geändert.
Der Timer fürs Docking der Userform läuft im Sekundentakt. Wird aber eigentlich nur gebraucht, wenn sich die Fenstergröße ändert - ist also Spielerei.

https://www.herber.de/bbs/user/164921.xlsm

Gruß Uwe
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
06.12.2023 19:52:08
Charles
Hallo Marc,
danke für die Hinweise.
Habe das meinem Bekannten mitgeteilt und er hat sich das hier im Forum angeschaut und zuerst alles mit "OnKey Deklaration" auskommentiert.
Hat keine Lösung gebracht als er mir diese Datei zugesandt hatte und ich sie öffnen wollte. Tabelle wurde zwar geladen, aber diese Userform startete weder automatisch, noch mit dem Aufruf vom Makro.
Es ist für mich nicht so einfach mit dem "Hin und Her", dauert eben etwas länger.
MIr wurde nur vom Bekannten mitgeteilt. dass er eine Fehlermeldung in den Klassenmodulen erhalten hat. Zuerst hat er alles exportiert und dann nach und nach wieder importiert und entsprechend aufgerufen. Dann kamen Debug-Fehler. Leider weiß ich nicht mehr. Kann erst wieder morgen mit ihm reden.

Charles
Anzeige
AW: Userform bzw. Makro funktioniert in Excel 2016 nicht
06.12.2023 23:20:37
Alwin Weisangler
Hallo Charles,

der Timer ist das Problem.
Der Fehler passiert in Zeile 104 des Moduls: APITimer


' Adresse erster öffentlicher Methode eines COM Interfaces ermitteln
Private Function GetFirstPublicMethod(ByVal obj As Object) As Long
Dim pObj As Long
Dim pVtbl As Long

' Adresse über VTable des Interfaces (IUnknown und IDispatch
' dort zuerst eingetragen, daher 7 Einträge = &H1C Bytes überspringen)
CopyMem pObj, ByVal ObjPtr(obj), 4
CopyMem pVtbl, ByVal pObj + &H1C, 4

GetFirstPublicMethod = pVtbl
End Function

Mein Verdacht bis Win7 klappts, danach nicht mehr.
Ich habs mal unter XP laufen lassen. Es sieht schön bunt mit schwarzem Hintergrund aus. Riesen Aufwand und durch den Timer mit hoher CPU Last um Tabellenblätter zu aktivieren. Soll wohl eine Art Sidemenü sein.
Das geht mit ein paar wenigen Codezeilen und einer Combobox in einer Userform viel einfacher und ist störungssicher.
Noch einfacher und ganz ohne VBA - das gewünschte Tabellenblatt anklicken.

Gruß Uwe
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige