Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

NumLoch Deaktivierung verhindern

Forumthread: NumLoch Deaktivierung verhindern

NumLoch Deaktivierung verhindern
15.05.2017 09:51:00
Ingo
Hallo
Ich nutze Excel 2013 auf einem Windows 10 PC.
Ich habe mir ein kleines Makro gebastelt, um ein paar Daten aus der Tabelle in ein WordPad-Dokument zu schreiben:
Sub Bestellzettel()
Dim Adresse As DataObject
Dim sTxt As String
Dim irow As Long
Set Adresse = New DataObject
irow = ActiveCell.Row
Adresse.SetText Range("Vorname").Cells(irow) & " " & Range("Nachname").Cells(irow)
Adresse.PutInClipboard
Shell "C:\Program Files\Windows NT\Accessories\wordpad.exe C:\Privat\WordPad-Vorlage.rtf", 1
SendKeys "^V"
End Sub
Wenn ich das Makro ausführe, wird auf meiner Tastatur die NumLock-Funktion des Ziffernblocks immer deaktiviert.
Lässt sich das irgendwie verhindern?
Gruß
Ingo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: NumLoch Deaktivierung verhindern
15.05.2017 10:03:35
ChrisL
Hi Ingo
Probiere mal "v" klein...
SendKeys "^v"
cu
Chris
AW: NumLoch Deaktivierung verhindern
15.05.2017 10:14:59
Ingo
Hallo Chris
Das hat leider nicht funktioniert.
Die NumLock-Funktion wird auch deaktiviert, wenn ich das V klein schreibe.
Gruß
Ingo
einfach 2x Application.SendKeys "num" owT
15.05.2017 10:18:41
Matthias
Anzeige
SendKeys "NUMLOCK" heißt es, sorry
15.05.2017 10:27:44
Matthias
Hallo
Application.SendKeys "{NUMLOCK}"
Gruß Matthias
AW: NumLoch Deaktivierung verhindern
15.05.2017 10:21:39
ChrisL
Hi Ingo
Vielleicht so...
SendKeys "^v", True
Oder sonst Numlock nach dem Sendkeys wieder aktivieren...
Sendkeys "{NUMLOCK}", True
cu
Chris
AW: NumLoch Deaktivierung verhindern
15.05.2017 10:26:55
Ingo
Hallo Chris
SUUUPER, das
Sendkeys "{NUMLOCK}", True
funktioniert.
Ich danke Dir sehr!
Gruß
Ingo
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

NumLock Deaktivierung in Excel VBA verhindern


Schritt-für-Schritt-Anleitung

Um die Deaktivierung der NumLock-Taste beim Ausführen eines Makros in Excel zu verhindern, kannst du die folgende Vorgehensweise nutzen:

  1. Öffne Excel und erstelle ein neues Makro oder öffne ein bestehendes.

  2. Füge den folgenden VBA-Code in dein Modul ein:

    Sub Bestellzettel()
        Dim Adresse As DataObject
        Dim sTxt As String
        Dim irow As Long
        Set Adresse = New DataObject
        irow = ActiveCell.Row
        Adresse.SetText Range("Vorname").Cells(irow) & " " & Range("Nachname").Cells(irow)
        Adresse.PutInClipboard
        Shell "C:\Program Files\Windows NT\Accessories\wordpad.exe C:\Privat\WordPad-Vorlage.rtf", 1
        SendKeys "^V"  ' Füge den Text ein
        Application.SendKeys "{NUMLOCK}", True  ' Aktiviere NumLock wieder
    End Sub
  3. Starte das Makro und überprüfe, ob die NumLock-Taste aktiv bleibt.


Häufige Fehler und Lösungen

Fehler: NumLock wird weiterhin deaktiviert.

  • Lösung: Stelle sicher, dass du Application.SendKeys "{NUMLOCK}", True nach dem SendKeys-Befehl verwendest, um NumLock nach der Einfügung des Textes wieder zu aktivieren.

Fehler: SendKeys funktioniert nicht wie erwartet.

  • Lösung: Verwende SendKeys "^v", True für das Einfügen des Textes. Dies könnte die Stabilität des Befehls erhöhen.

Alternative Methoden

Falls das Problem weiterhin besteht, kannst du folgende Alternativen in Betracht ziehen:

  • Verwendung von Zwischenablage-Objekten: Anstelle von SendKeys, kannst du die Zwischenablage direkt nutzen, um Daten in WordPad zu übertragen, ohne SendKeys zu verwenden.

  • Direktes Schreiben in WordPad: Wenn möglich, könntest du auch ein COM-Objekt für WordPad erstellen und die Daten direkt dort schreiben, anstatt die Zwischenablage zu nutzen.


Praktische Beispiele

Hier ein Beispiel, wie du die NumLock-Taste beim Einfügen von Daten in WordPad aktiv halten kannst:

Sub Bestellzettel()
    Dim Adresse As DataObject
    Dim irow As Long
    Set Adresse = New DataObject
    irow = ActiveCell.Row
    Adresse.SetText Range("Vorname").Cells(irow) & " " & Range("Nachname").Cells(irow)
    Adresse.PutInClipboard
    Shell "C:\Program Files\Windows NT\Accessories\wordpad.exe C:\Privat\WordPad-Vorlage.rtf", 1
    Application.Wait Now + TimeValue("00:00:01")  ' Warte eine Sekunde, um sicherzustellen, dass WordPad geöffnet ist
    SendKeys "^V"
    Application.SendKeys "{NUMLOCK}", True  ' Aktiviere NumLock wieder
End Sub

Tipps für Profis

  • Vermeide SendKeys, wenn möglich: Die Verwendung von SendKeys kann unzuverlässig sein. Wenn du kannst, nutze stattdessen die APIs oder COM-Objekte.
  • Testen in einer sicheren Umgebung: Teste dein Makro in einer Testumgebung, bevor du es in einer produktiven Umgebung ausführst, um unerwartete Ergebnisse zu vermeiden.

FAQ: Häufige Fragen

1. Warum wird die NumLock-Taste deaktiviert? Die Deaktivierung erfolgt, weil viele Anwendungen und Skripte die NumLock-Taste als Teil ihrer Einfügeoperationen beeinflussen.

2. Gibt es eine Möglichkeit, SendKeys zu umgehen? Ja, du kannst versuchen, die Zwischenablage direkt zu verwenden oder COM-Objekte zu nutzen, um direkt in WordPad zu schreiben, ohne SendKeys zu verwenden.

3. Funktioniert das auch in Excel 2016 oder 2019? Ja, die beschriebenen Techniken sind auch in neueren Excel-Versionen anwendbar, solange VBA unterstützt wird.

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