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

Ziffernblock nach Einfügen deaktiviert

Ziffernblock nach Einfügen deaktiviert
30.03.2021 12:40:28
{Boris}
Hallo zusammen,
nach Ausführen des folgenden Codes wird stets der Ziffernblock deaktiviert. Ich muss ihn also immer mit der Num-Taste wieder zum Leben erwecken.
Warum ist das so bzw. wie kann ich das verhindern?
Der Code fügt eigentlich nur den Inhalt der Zwischenablage in ein Blatt ein und befreit es dann von Zeichenobjekten .
Danke und
VG, Boris

Private Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard& Lib "user32" ()
Public Sub ClearClipboard()
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub
Sub einfuegen()
Dim myAnswer As Variant
On Error GoTo ERR_HANDLER
Application.ScreenUpdating = False
With Tabelle1 'Hier wird der Inhalt der Zwischenablage eingefügt
.Activate
.DrawingObjects.Delete 'alle mit eingefügten Zeichenobjekte löschen
.Cells.Clear
.Cells.UnMerge
.Range("A1").Select
Application.SendKeys "^v" 'Einfügen mit Strg + v
DoEvents
.Range("A1").Select
.DrawingObjects.Delete 'übrig geblieben Zeichenobjekte löschen - warum auch immer...
End With
Tabelle4.Activate
Range("Kunde_manuell").ClearContents
Application.ScreenUpdating = True
myAnswer = MsgBox("Erledigt. Soll der Inhalt der Zwischenablage jetzt gelöscht werden ( _
empfohlen)?", vbYesNo, "Melde Vollzug...")
If myAnswer = vbYes Then
Call ClearClipboard
MsgBox "Zwischenablage ist nun wieder leer", vbInformation, "Hinweis"
End If
Exit Sub
ERR_HANDLER:
MsgBox "Es gab irgendeinen Fehler. Falls Daten nicht angezeigt werden, bitte erneut starten.",   _
_
_
vbInformation, "Fehler " & Err.Number
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ziffernblock nach Einfügen deaktiviert
30.03.2021 12:51:28
Nepumuk
Hallo Boris,
das liegt am SendKeys. Warum benutzt du nicht einfach:
.Paste
Gruß
Nepumuk

Das Leben kann ja so einfach sein...
30.03.2021 13:06:28
{Boris}
Hi Max, hi Karl-Heinz,
.Paste
Und alles ist gut :-)
Danke Euch und
VG, Boris

AW: Ziffernblock nach Einfügen deaktiviert
30.03.2021 12:54:46
volti
Hallo Boris,
Du verwendest die SendKeys-Funktion in Deinem Code. Diese ist oft dafür verantwortlich, dass sich der Ziffernblock umstellt.
Hier zwei Alternativen, die das Problem beheben bzw. nicht haben.
PS: Bei Win7 und älter bitte das Schlüsselwort PtrSafe wegnehmen:
Code:

[Cc]

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige