Anzeige
Archiv - Navigation
1508to1512
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

Laufzeitfehler 440 und NumLock

Laufzeitfehler 440 und NumLock
30.08.2016 10:53:49
Rico
Hallo und guten Tag zusammen!
Ich benötige wieder einmal kompetente Hilfe zu einem für mich nicht lösbaren Problem:
Aus einer Excel-Tabelle sollen Termine nach Outlook übertragen werden. Im Forums-Archiv habe ich einige Beiträge dazu gefunden und auch etwas für mich zusammengestellt. Ich muss dazu anmerken, dass ich mich mit VBA nicht wirklich gut auskenne. Anweisungen, die ich vorerst nicht benötige, habe ich auskommentiert. Der Code sieht so aus und funktioniert fast perfekt:
Sub Excel_Control_Termin_nach_Outlook()
'Termine werden von einer Excel-Liste nach Outlook übertragen
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Dim BlattName As String
Dim Zeile As Integer
Dim EmailNamen As String
BlattName = "Arbeitsauftragstracker"
'EmailNamen = "" 'hier können auch Termin an Emailempfänger versendet werden, Adressen mit  _
Semikolon trennen
For Zeile = 4 To Sheets(BlattName).UsedRange.Rows.Count
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem
If Sheets(BlattName).Cells(Zeile, 6) > 0 Then    'Datum vorhanden
If IsEmpty(Sheets(BlattName).Cells(Zeile, 10)) = True Then  'Status ohne Wert
With apptOutApp
'Als Datum wird der Termin aus der Zelle genommen
.Start = Format(Sheets(BlattName).Cells(Zeile, 6), "dd.mm.yyyy") & " 08:00"
'Termininfo
.Subject = "Auftrag: " & Sheets(BlattName).Cells(Zeile, 3)
'Zusätzlicher Text
Nachricht = Sheets(BlattName).Cells(Zeile, 2) & Chr(10)
'Nachricht = Nachricht & "weiterer Text möglich"
.Body = Nachricht
'Anzeige
.display
'ort
'         .Location = "Einsatzort: " & Sheets(BlattName).Cells(Zeile, 3)
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
.Duration = "60"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound?
.ReminderPlaySound = False
'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, 10) = "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
Die Termine werden in den Outlook-Kalender übernommen. Allerdings wird am Ende der „Laufzeitfehler 440“ gemeldet („Das Objekt unterstützt diese Methode nicht“). Außerdem schaltet sich die NumLock-Taste aus.
Bei meiner Recherche bin ich u. a. darauf gestoßen, dass für das Ausschalten der NumLock-Taste der Befehl „Application.SendKeys“ zuständig sein kann. Ich weiß aber leider nicht, wie ich das Problem beheben soll.
Kann mir bitte jemand verraten, was ich im Code anpassen muss, damit das Makro fehlerfrei läuft? Eine Beispieldatei habe ich hochgeladen.
Für Eure Hilfe bedanke ich mich schon einmal vorab!
Viele Grüße
Rico
https://www.herber.de/bbs/user/107893.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 440 und NumLock
30.08.2016 12:53:24
ChrisL
Hi Rico
Ich vermute die Punkte in Zellen F18:F22 können nicht als Datum formatiert werden.
Und ja, Sendkeys schaltet den NumLock aus. Ich glaube die Zeile kannst du löschen. Oder alternativ schaltest du den NumLock am Schluss vom Code mit der gleichen Anweisung wieder ein.
cu
Chris
AW: Laufzeitfehler 440 und NumLock
30.08.2016 13:18:41
Rico
Hi Chris,
erstmal vielen Dank für Deine Antwort!
Ich habe "SendKeys" einfach mal deaktiviert. Dann bleibt jedoch im Outlook das Terminfenster offen stehen. Aber vielleicht finde ich ja im Archiv noch eine Möglichkeit, wie ich unabhängig davon NumLock wieder einschalten kann.
Mit dem Datum bzw. der Formatierung bin ich auch nicht wirklich weitergekommen. Keine Ahnung, wo das Problem mit dem Laufzeitfehler herkommt...
Viele Grüße
Rico
Anzeige
AW: Laufzeitfehler 440 und NumLock
30.08.2016 13:33:19
ChrisL
Hi Rico
Auch wenn ich kein Outlook zum Testen habe...
.Start = Format(Sheets(BlattName).Cells(Zeile, 6), "dd.mm.yyyy") & " 08:00"
... kann nicht funktionieren wenn kein Datum drin steht.
Die Überprüfung funktioniert bei einem Punkt nicht:
If Sheets(BlattName).Cells(Zeile, 6) > 0 Then 'Datum vorhanden
Eher so...
If IsDate(Sheets(BlattName).Cells(Zeile, 6)) Then 'Datum vorhanden
Und wie du NumLock wieder aktivierst habe ich in der letzten Antwort bereits erwähnt. Einfach SendKeys am Ende wiederholen.
cu
Chris
AW: Laufzeitfehler 440 und NumLock
30.08.2016 13:50:21
Rico
Hi Chris,
also, was soll ich sagen... Der Laufzeitfehler ist weg! Vielen Dank! Dein Tipp mit der Datumszeile hat funktioniert. Ich bin beeindruckt!
Trotzdem muss ich nochmal nachfragen: Ich habe "Sendkeys" am Ende wiederholt. Aber offensichtlich stelle ich mich zu blöd an. Muss dann die Anweisung ebenfalls "Application.SendKeys "%DL"" lauten? Da bleibt nämlich NumLock aus...
Vielen Dank und viele Grüße
Rico
Anzeige
AW: Laufzeitfehler 440 und NumLock
30.08.2016 14:07:10
ChrisL
Hi
Ja ein- und ausschalten immer gleich...
Sub t()
Application.SendKeys "%DL"
MsgBox "Num-Lock aus"
Application.SendKeys "%DL"
MsgBox "Num-Lock ein"
Application.SendKeys "%DL"
MsgBox "Num-Lock aus"
Application.SendKeys "%DL"
MsgBox "Num-Lock ein"
End Sub

cu
Chris
AW: Laufzeitfehler 440 und NumLock
30.08.2016 14:15:47
Rico
Hi Chris,
vielen Dank! Aus irgendeinem Grund funktioniert das bei mir nicht. Die blöde NumLock-Taste bleibt einfach aus. Ich muss mein Makro nochmal durchforsten. Vielleicht finde ich ja irgendwo den "Übeltäter". Dir erstmal ein großes Dankeschön für deine schnelle Hilfe!
Viele Grüße
Rico
Anzeige
AW: Laufzeitfehler 440 und NumLock
31.08.2016 08:19:34
ChrisL
Hi Rico
Ich würde mal recherchieren, ob du nicht eine Lösung ohne SendKeys findest. SendKeys geht selten gut und dürfte eigentlich für eine Terminerstellung nicht zwingend erforderlich sein.
Mir ist aufgefallen, dass du den Termin nur speicherst aber nicht verschickst (gewollt?). Vielleicht würde sich beim Verschicken das Fenster selber schliessen.
Falls doch per SendKeys frage ich mich, ob die Anweisung nur in Zusammenhang mit deinem Beispielcode oder generell (auch im letzten Beispiel) nicht funktioniert. Falls es ein generelles Problem ist, müsstest du evtl. eine andere Methode anwenden (im Netz finden sich Num-Lock Codes basierend auf API).
cu
Chris
Anzeige
AW: Laufzeitfehler 440 und NumLock
31.08.2016 10:17:36
Rico
Hi Chris,
danke für den Hinweis! Du hast vollkommen Recht: Die Termine sollen auch verschickt werden. Ich wollte aber zuerst eine Lösung für das Eintragen in Outlook finden, bevor ich mich um das Versenden kümmere...
In meinem Makro ist das Versenden wohl schon vorgesehen (aber auskommentiert). Wo müsste ich denn die Adresse hinterlegen, dass der Termin entsprechend verschickt wird? Vielleicht schließt sich das Fenster dann tatsächlich von selbst.
Vielen Dank vorab!
Rico
AW: Laufzeitfehler 440 und NumLock
31.08.2016 10:25:43
ChrisL
Hi Rico
Nicht getestet, aber sieht schwer danach aus...
'EmailNamen = "" 'hier können auch Termin an Emailempfänger versendet werden, Adressen mit Semikolon trennen
Wobei dein Makro inzwischen ziemlich verhunzt ist und ich daher einen neuen Code aus dem Internet kopieren würde.
cu
Chris
Anzeige
AW: Laufzeitfehler 440 und NumLock
31.08.2016 10:29:22
Rico
Hi Chris,
stimmt, ich habe etwas viel hin- und hergetestet... Aber danke für den Hinweis. Ich probiere es einfach mal aus.
Danke und Gruß
Rico

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige