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

Num-Lock wird deaktiviert

Num-Lock wird deaktiviert
04.02.2020 04:01:56
Thomas
Hallo
Ich habe folgenden Code im Forum gefunden.
Diesen habe ich etwas angepasst und funktioniert bis auf eine Kleinigkeit ganz gut.
Wenn ich das Makro starte, wird Num-Lock deaktiviert. Wie kann ich das wieder aktivieren per Makro?
Hier der Code:
Sub zurück()
' zurück Makro
' Makro am 6.12.2007 von Dirk Ehrhardt aufgezeichnet
Sheets("Terminübersicht").Select
ActiveWindow.LargeScroll Down:=-1
End Sub

Sub Excel_Control_Termin_nach_Outlook()
'E 2000
'Dim OutApp As Outlook.Application
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Dim BlattName As String
Dim Zeile As Integer
Dim EmailNamen As String
BlattName = "Terminübersicht"
EmailNamen = "" 'hier können auch Termin an Emailempfänger versendet werden, Adressen mit  _
Semikolon trennen
For Zeile = 2 To Sheets(BlattName).UsedRange.Rows.Count
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem
If Sheets(BlattName).Cells(Zeile, 8) > 0 Then    'Datum vorhanden
If IsEmpty(Sheets(BlattName).Cells(Zeile, 9)) = True Then  'Status ohne Wert
With apptOutApp
'Datum wird die Termine aus der Zelle genommen
.Start = Format(Sheets(BlattName).Cells(Zeile, 8), "dd.mm.yyyy") & " 08:00"
'Termininfo
.Subject = "" & Sheets(BlattName).Cells(Zeile, 7) 'Betreff
'Zusätzlicher Text
Nachricht = Sheets(BlattName).Cells(Zeile, 2) & Chr(10) 'Text aus Nachrichtenfeld
'Nachricht = Nachricht & "weiterer Text möglich"
.Body = Nachricht
'Anzeige
.display
'ort
.Location = "Ort: " & Sheets(BlattName).Cells(Zeile, 3)
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen von 8:00 bis ...
.Duration = "5"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound :-)
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
'Wichtigkeit
.Importance = olImportanceHigh
'Status
.MeetingStatus = olMeeting
'Optionale Adressen
'.OptionalAttendees = EmailNamen
Application.DisplayAlerts = False
'Termin speichern
.Save
'Schließen ohne senden
Application.SendKeys "%DL"
'Senden an anderen EmailAdressen (Aktivierung: 1. Zeichen bei den nächsten 2 Zeilen  _
entfernen)
'.OptionalAttendees = EmailNamen
'Application.SendKeys "%S" '*** automatisch ohne überprüfung senden ***
Application.DisplayAlerts = True
'Erledigt setzen
Sheets(BlattName).Cells(Zeile, 9) = "in Outlook übernommen"
End With
'ActiveCell.Offset(1, 0).Select
'Variablen leeren,
End If
End If
Set apptOutApp = Nothing
Set OutApp = Nothing
Next Zeile
MsgBox "Termine an Outlook übertragen!"
End Sub

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

Betreff
Datum
Anwender
Anzeige
altes Excelproblem ...
04.02.2020 05:53:41
Matthias
Hallo
Setze am Ende des Codes
SendKeys "{NUMLOCK}", True
SendKeys "{NUMLOCK}", True
Ja, tatsächlich 2x.
Gruß Matthias
AW: altes Excelproblem ...
04.02.2020 08:43:45
volti
Hi,
hier noch 'ne Variante. Da bei mir nur manchmal der NumLock verändert wurde, habe ich mir diese Sub gebaut, die sich den alten Zustand merkt und nach Veränderungen wiederherstellt.
Option Explicit
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
         pbKeyState As Byte) As Long
Private Const VK_NUMLOCK = &H90
Sub SendMyKeys(Was As String)
'Nummernblockeinstellung merken, SendKeys abschicken,
'Nummernblock ggf. wiederherstellen
 Dim Keys(0 To 255) As Byte, bNumBlock As Byte
 GetKeyboardState Keys(0): bNumBlock = Keys(VK_NUMLOCK)
 SendKeys Was
 GetKeyboardState Keys(0)
 If bNumBlock <> Keys(VK_NUMLOCK) Then SendKeys "{NUMLOCK}"
End Sub
Sub Excel_Control_Termin_nach_Outlook()
'...
  SendMyKeys "%DL"
'...
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Num-Lock wird deaktiviert
04.02.2020 08:45:38
volti
Hallo Thomas,
hier noch 'ne Variante. Da bei mir nur manchmal der NumLock verändert wurde, habe ich mir diese Sub gebaut, die sich den alten Zustand merkt und nach Veränderungen wiederherstellt.
Option Explicit
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
         pbKeyState As Byte) As Long
Private Const VK_NUMLOCK = &H90
Sub SendMyKeys(Was As String)
'Nummernblockeinstellung merken, SendKeys abschicken,
'Nummernblock ggf. wiederherstellen
 Dim Keys(0 To 255) As Byte, bNumBlock As Byte
 GetKeyboardState Keys(0): bNumBlock = Keys(VK_NUMLOCK)
 SendKeys Was
 GetKeyboardState Keys(0)
 If bNumBlock <> Keys(VK_NUMLOCK) Then SendKeys "{NUMLOCK}"
End Sub
Sub Excel_Control_Termin_nach_Outlook()
'...
  SendMyKeys "%DL"
'...
End Sub

viele Grüße
Karl-Heinz

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige