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

Nummmern Block

Nummmern Block
01.04.2023 17:24:45
Wilma

Guten Tag,
ich habe folgende Zeile eingesetrzt:
SendKeys "{NUMLOCK}", True

manchmal sendet aber die Info NumBlock deaktiviert wieso ?

Wie kann ich den Abfragen, ob aktiviert ist oder nicht ?
Ich möchte den Nummern Block immer aktiviert haben.

mfg wilma

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nummmern Block
01.04.2023 18:19:05
onur
SendKeys "{NUMLOCK}", True
ist genau die falsche Lösung, weil "SendKeys" selbst das Problem manchmal verursachtt.
Ist ein bekanntes Problem. Google mal danach.


AW: Nummmern Block
01.04.2023 21:34:19
Wilma
Guten Abend,
du hast recht aber ich habe keine Lösung für mich gefunden.

Mit freundlichen Grüßen wilma


AW: Nummmern Block
01.04.2023 21:35:40
onur
Die Lösung: auf alle Sendkeys verzichten.


AW: Nummmern Block
01.04.2023 22:12:29
Wilma
Guten Abend onur,
Und welchen Vorschlag hast Du ?

Gruß wilma


AW: Nummmern Block
01.04.2023 22:15:57
onur
Da gibt es noch eine Möglichket mit API-Funktion. Google mal nach "NumLock Sendkeys".


Anzeige
AW: Nummmern Block
02.04.2023 08:35:39
volti
Hallo Wilma, h

hier mal eine Idee dazu....

Code:


Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _ pbKeyState As Byte) As Long Sub TestSendKeys() SendMyKeys "^v" End Sub Sub SendMyKeys(Was As String) ' Nummernblockeinstellung merken, SendKeys abschicken, ' Nummernblock ggf. wiederherstellen ' GetKeyboardState Keys(0) Keyboard-Array füllen Dim Keys(0 To 255) As Byte, bNumBlock As Byte GetKeyboardState Keys(0): bNumBlock = Keys(vbKeyNumlock) SendKeys Was GetKeyboardState Keys(0) If bNumBlock <> Keys(vbKeyNumlock) Then SendKeys "{NUMLOCK}" End Sub ' oder diese Alternative hier Sub Test2() CreateObject("WScript.Shell").SendKeys "^v", True End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
AW: Nummmern Block
02.04.2023 10:29:49
Wilma
Guten Morgen Karl-Heinz,
danke für das Beispiel.
Wo kopiere ich es rein ?
Ich möchte beim öffnen der Datei, das geprüft wird, ob NumBlock aktiviert ist.
Wenn nicht aktivieren sonst so lassen.

mfg wilma


AW: Nummmern Block
02.04.2023 11:09:23
Wilma
Hallo Karl-Heinz,

ich habe alles in "meineArbeitsmappe" kopiert.
Das Makro:
Sub TestSendKeys()
  SendMyKeys "^v"
End Sub
in meine Tabelle, dabei zeigt er mir einben Fehler.
"Fehler beim Kompilieren:
Sub oder 
Function nicht definiert"

gruß wilma



AW: Nummmern Block
02.04.2023 11:26:54
volti
Hallo Wilma,

der Code gehört in ein normales VBA-Modul...

Der Code ist nicht zum Ermitteln, ob der Numblock aktiviert ist sondern ersetzt die Funktion SendKeys in Deinem Code, also anstelle von Sendkeys SendmyKeys verwenden. Die Funktion "Testsendkeys" brauchst Du dann nicht mehr.

Intention hier ist, dass sich der Nummernblock unkontrolliert umstellen kann (ein bekanntes Problem), so dass dieses Makro vor dem Senden der Tastaturanschläge den Numblock-Zustand prüft und ihn hinterher, falls es sich verändert haben sollte, wiederherstellt.

viele Grüße KH


Anzeige
AW: Nummmern Block
02.04.2023 11:36:11
volti
Wenn Du nur testen willst, ob der Numblock an ist. kannst Du das ja so machen.
Code:


Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _ pbKeyState As Byte) As Long Function TestNumBlock() As Boolean Dim Keys(0 To 255) As Byte GetKeyboardState Keys(0): TestNumBlock = Keys(vbKeyNumlock) End Function Sub Test() MsgBox TestNumBlock End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
Nicht nur testen...
02.04.2023 11:44:30
Wilma
Hallo KH,
ja, aber wenn deaktiviert ist, soll aktiviert werden !!!

mfg wilma


AW: Nicht nur testen...
02.04.2023 11:59:07
volti
Hi Wilma,

dann mach es halt so....

Code:


Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _ pbKeyState As Byte) As Long Sub AktiviereNumBlock() Dim Keys(0 To 255) As Byte GetKeyboardState Keys(0) If Keys(vbKeyNumlock) = False Then SendKeys "{NUMLOCK}" End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
Bestens !!! Danke Karl-Heinz - )
02.04.2023 12:05:08
Wilma
Hallo Karl-Heinz,
genau so klappt es !
Danke und schönen Sonntag noch,
mfg wilma


Leider ein Problem
02.04.2023 19:59:24
Wilma
Guten Abend Karl-Heinz,

leider habe ich ein Problem.
Wenn ich von einer anderen Datei per Makro Daten kopiere, wird komischerweise NumBlock deaktiviert, dies wird auch angezeigt.
Lade ich die die Datei nochmal und kopiere nochmal die Daten, wird angezeigt NumBlock aktiviert.

Warum / Wieso ?
Ich habe nur im
Public Sub Workbook_Open()
 der aktiven Datei dies reingesetzt:    Call AktiviereNumBlock
es ist auch NumBlock aktiviert.

Dies steht in einem Modul:
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
        pbKeyState As Byte) As Long
 
Sub AktiviereNumBlock()
  Dim Keys(0 To 255) As Byte
  GetKeyboardState Keys(0)
  If Keys(vbKeyNumlock) = False Then SendKeys "{NUMLOCK}"
End Sub
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Würde mich um Unterstützung freuen.
mfg wilma


Anzeige
AW: Leider ein Problem
02.04.2023 20:02:39
onur
"Wenn ich von einer anderen Datei per Makro Daten kopiere" - WIE GENAU kopierst du die Daten? Wo ist das Makro dazu?


AW: Leider ein Problem
02.04.2023 20:34:21
Wilma
Guten Abend onur,
anbei das Makro, nach dem kopieren wird die Datei geschlossen, funktioniert alle.

Private Sub In_Vorlage_kopieren_Button()
    Dim wb     As Workbook
    Dim thiswb As Workbook
    Dim b      As Boolean
    Dim i&, ze
    
    Set thiswb = ThisWorkbook
    
    Application.ScreenUpdating = False
    i = ActiveCell.Row
    For Each wb In Application.Workbooks
        If wb.Name Like "Lagerlisten*.xlsm" Then
            b = True
            Exit For
        End If
    Next wb
    If Not b Then
        ' MsgBox "nix gefunden"
        Exit Sub
    End If
    ActiveSheet.TextBox1 = ""
     Range("b2:L2").Select
    If ActiveSheet.AutoFilterMode Then
       Selection.AutoFilter
    End If
     Range("E2").Select
'---------------------------------------
       wb.Activate
      ze = ActiveSheet.Name
'- somit wird der Tabellenname von der Empfängerdatei übernommen
'---- und zurück --
   thiswb.Activate
    With ActiveSheet
       wb.Worksheets(ze).Range("K11:K21") = Application.Transpose(.Range(.Cells(i, 2), .Cells(i, 12)))
    End With
    
    wb.Activate
    
     ActiveSheet.Cells(11, 11).Select
        SendKeys "{ENTER}", True
    Application.ScreenUpdating = True
End Sub
mfg wilma


Anzeige
AW: Leider ein Problem
02.04.2023 20:48:46
onur
Genau DAS hab ich mir gedacht. Du solltest doch "SendKeys" weglassen....


gelöst Danke -)
02.04.2023 21:24:19
Wilma


Gerne !
02.04.2023 21:25:03
onur


AW: Nummmern Block
02.04.2023 11:42:51
Wilma
Hallo KH,
wenn ich von einer anderen Datei etwas in meine aktive Tabelle reinkopiere,
wird der NumTastatur auf deaktiviert gestellt.

gr wilma

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige