Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Num-Lock Taste wird deaktiviert

Num-Lock Taste wird deaktiviert
14.05.2013 11:32:38
Dave
Hallo zusammen,
ich habe eine umfangreiche Excel-Datei mit vielen Blättern, umfangreichem Code, diversen Formularen etc. etc. Ein Formular ist eine Art Navigation durch die ganze Datei mit Aufruf von Blättern per Schaltfläche.
Während der Navigation kommt es ab und zu vor, dass auf der Tastatur des PC auf einmal die Num-Lock Taste abgeschaltet wird. Ich habe bisher noch nicht identifizieren können, bei welchem Klick genau das passiert, habe aber schon den ganzen Code durchsucht, was das verursachen könnte, aber bisher nichts gefunden.
Kann mir jemand sagen, welche Befehle dafür in Frage kommen könnten? Ich weiß nicht so richtig, wonach ich suchen muss.
Danke und Gruß
David

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
schau mal bei SendKeys ... owT
14.05.2013 11:36:22
Matthias

SendKeys "{NUMLOCK 2}" owT
14.05.2013 11:43:41
Matthias

AW: SendKeys "{NUMLOCK 2}" owT
14.05.2013 11:51:55
Dave
Hi.
Sendkeys gibt es mit {down}, {+} und {~+~}
Das dürfte es doch nicht sein, oder?
Gruß

Anzeige
AW: Num-Lock Taste wird deaktiviert
15.05.2013 08:46:20
Klaus
Hi Dave,
dein Code wird schon irgendwo Numlock schalten. Aber niemand ausser dir kann wissen wo, da wir den Code nicht kennen!
Unter diesem Link
http://www.samol.de/Excel_Tipps2.html#_Toc505357008
gibt es VBA-s, um den NumLock Status abzufragen und zu toggeln. Vielleicht hilft dir das ja (am Ende des Makros NumLock abfragen und bei bedarf umschalten).
Grüße,
Klaus M.vdT.

Anzeige
AW: Num-Lock Taste wird deaktiviert
15.05.2013 09:12:37
Dave
Hallo Klaus,
das ihr den Code nicht kennt, ist mir schon klar. Der Umfang und Inhalt der Datei macht es mehr oder weniger unmöglich, sie hier zu posten, das würde vermutlich eine Stunde Arbeit zum Bereinigen der vertraulichen Infos kosten. Ich habe auch nicht darum gebeten, den Code zu prüfen, um mir zu sagen, was das beschriebene Verhalten auslöst.
Ich wollte lediglich wissen, auch welche Ausdrücke ich meine Suche konzentrieren kann, da es sicher nur eine begrenzte Zahl von in Frage kommenden Möglichkeiten gibt.
Dein Tip hilft leider nicht wirklich weiter, denn da ich noch nicht herausbekommen habe, WANN diese "öminöse" Umschaltung erfolgt, weiß ich auch nicht, wann ich den Status abfragen muss. Und grundsätzlich soll Num-Lock immer an sein, ich müsste also theoretisch eine permanente Abfrage realisieren.
Ich danke dir trotzdem, vielleicht brauche ich das ja mal in einem anderen Fall.
Gruß
David

Anzeige
AW: Num-Lock Taste wird deaktiviert
15.05.2013 10:01:52
Klaus
Hi David,
Dein Tip hilft leider nicht wirklich weiter, denn da ich noch nicht herausbekommen habe, WANN diese "öminöse" Umschaltung erfolgt, weiß ich auch nicht, wann ich den Status abfragen muss. Und grundsätzlich soll Num-Lock immer an sein, ich müsste also theoretisch eine permanente Abfrage realisieren.
natürlich muss man jetzt sagen: Der Fehler im Code muss gefunden und beseitigt werden, ein dreckiger Workaround ist schlechter Programmierstil usw usw ...
Aber:
Du willst NumLock angeschaltet haben, nachdem das Makro um ist. Dann würde ich die og. Tips einfach unter die letzte Zeile des Makros knallen. Also ganz ans Ende einmal die o.g. Sub "NumLock_ein" callen. Effekt: Makro fertig = NumLock an.
Dann musst du nur noch gut schlafen können, mit einem Code im Nacken der nicht macht was du willst.
Grüße,
Klaus M.vdT.

Anzeige
AW: Num-Lock Taste wird deaktiviert
15.05.2013 10:06:40
Dave
...angeschaltet haben, nachdem das Makro um ist...
Das Problem ist ja, dass es DAS Makro nicht gibt. Der Code besteht aus einer Vielzahl von kleinen Codes, die bei diversen Ereignissen ablaufen. Außerdem gibt es die Navigationsleiste, bei der außer bei der Initialiserung noch jede Menge Sachen durch Schaltflächen und ähnliches ausgelöst wird.
Es sind nicht ein oder zwei große Makros. Sonst hätte ich den Code ja auch hier mal gepostet.
:-(
Gruß
David

Anzeige
AW: Num-Lock Taste wird deaktiviert
15.05.2013 10:13:23
Klaus
Hallo David,
wenn du es gerne brutal magst, dann calle "NumLock_ein" aus dem "Selection_Change" Ereignismakro. Das ist dann die Dampfhammer-Methode.
Fehlersuche mit STOP usw wäre dem aber natürlich vorzuziehen.
Grüße,
Klaus M.vdT.

setz mal ein paar "Stop" im Code ...
15.05.2013 10:05:13
Matthias
Hallo
Da kannst Du nur versuchen einzugrenzen
Im Code immermal ein Stop einbauen.
Dann den Code laufen lassen und schauen ob Numlock plötzlich aus ist.
So kannst Du dann das Ganze immer mehr einschränken.
Irgendwann findest Du die CodeZeile dann sicher.
Oder (wenn möglich) im Einzelschritt prüfen
Gruß Matthias

Anzeige
AW: setz mal ein paar "Stop" im Code ...
17.05.2013 08:52:44
Dave
Hi.
Nach einigen systematischen Tests hab ich jetzt herausgefunden, dass der Befehl

Application.SendKeys ("{down}")
die Num-Lock-Taste ausgeschaltet hat. Ergibt zwar für mich keinen Sinn, war aber reproduzierbar. Nach dem Auskommentieren des Befehls kam es nicht mehr vor.
Wollte das nur mal noch hier posten, falls irgendjemand ein ähnliches Problem hat und im Archiv sucht. :-)
Gruß
David

Anzeige
AW: Auf Sendkeys verzichten?
17.05.2013 18:51:50
Franz
Hallo Dave,
ich hatte das gleiche Problem, habe mich darauf entschieden auf einige SENDKEYS zu verzichten nachdem ich dies gelesen haben http://www.donkarl.com/FAQ/FAQ7Bugs.htm#7.8 .
Frohe Pfingsten trotzdem
Franz D.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Num-Lock Taste in Excel aktiv halten


Schritt-für-Schritt-Anleitung

Um die Num-Lock Taste in Excel aktiv zu halten, kannst du den folgenden VBA-Code verwenden. Dieser sorgt dafür, dass die Num-Lock Taste am Ende eines Makros wieder aktiviert wird.

Sub NumLock_ein()
    Dim numLockStatus As Boolean
    numLockStatus = CBool(GetKeyState(vbKeyNumLock))

    If Not numLockStatus Then
        Application.SendKeys "{NUMLOCK}"
    End If
End Sub

Füge diesen Code am Ende deines bestehenden Makros ein, um sicherzustellen, dass die Num-Lock Taste aktiviert bleibt. Alternativ kannst du auch Application.SendKeys "{NUMLOCK}" verwenden, um den Status zu toggeln.


Häufige Fehler und Lösungen

  • Num-Lock funktioniert nicht: Wenn die Num-Lock Taste immer wieder deaktiviert wird, überprüfe, ob in deinem Code Application.SendKeys verwendet wird, um andere Tasten zu simulieren. Zum Beispiel kann der Befehl Application.SendKeys ("{down}") die Num-Lock Taste unbeabsichtigt ausschalten.

  • Code wird nicht erkannt: Stelle sicher, dass du die richtigen Berechtigungen hast, um VBA-Skripte auszuführen, und dass deine Excel-Version Makros unterstützt.


Alternative Methoden

Wenn du auf SendKeys verzichten möchtest, um Probleme mit der Num-Lock Taste zu vermeiden, kannst du folgende Alternativen in Betracht ziehen:

  1. Direkte Tastatursteuerung: Verwende API-Funktionen, um den Status der Num-Lock Taste zu überprüfen und bei Bedarf zu ändern.
  2. Benutzerdefinierte Formulare: Erstelle Formulare in Excel, die die Eingaben ohne den Einsatz von SendKeys ermöglichen.

Beispiel für eine API-Funktion:

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Praktische Beispiele

Hier sind einige Szenarien, in denen du den Num-Lock Status mit VBA steuern kannst:

  • Nach dem Speichern aktivieren:

    Füge NumLock_ein am Ende eines Speichermakros hinzu.

Sub Speichern()
    ' ... Speichercode ...
    Call NumLock_ein
End Sub
  • Vor dem Drucken aktivieren:
Sub Drucken()
    Call NumLock_ein
    ' ... Druckcode ...
End Sub

Tipps für Profis

  • Vermeide unnötige SendKeys-Befehle: Wenn möglich, nutze alternative Methoden zur Steuerung von Tastenanschlägen, um unerwartete Probleme mit der Tastatur zu vermeiden.
  • Debugging: Verwende Stop-Befehle in deinem Code, um herauszufinden, wo die Num-Lock Taste deaktiviert wird. Teste deinen Code schrittweise.
  • Regelmäßige Wartung: Halte deinen VBA-Code sauber und dokumentiere Änderungen, um zukünftige Probleme schneller identifizieren zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Num-Lock Taste aktivieren, wenn sie deaktiviert ist?
Du kannst den folgenden VBA-Befehl verwenden:

Application.SendKeys "{NUMLOCK}"

2. Was kann ich tun, wenn die Num-Lock Taste während der Nutzung immer wieder deaktiviert wird?
Überprüfe deinen Code auf Stellen, an denen SendKeys verwendet wird, insbesondere auf Application.SendKeys ("{down}"), da dies die Num-Lock Taste beeinflussen kann.

3. Gibt es eine Möglichkeit, die Num-Lock Taste permanent zu aktivieren?
Durch das Einfügen des Codes NumLock_ein am Ende deiner Makros kannst du sicherstellen, dass die Num-Lock Taste immer aktiviert wird.

4. Wie kann ich den Status der Num-Lock Taste abfragen?
Verwende die API-Funktion GetKeyState, um den aktuellen Status der Num-Lock Taste zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige