Clever-Excel-Forum

Normale Version: Ampelfunktion mit Email oder Outlookkalender verbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo, ich habe eine Tabelle die mit Ampelfunktion ausgestattet ist.

Es geht in der Tabelle um Schwertransportgenehmigungen die zeitlich begrenzt sind.
Ich möchte gerne per Email oder per Outlookkalender informiert werden wenn die Laufzeit z.B. gelb erreicht, sprich 60 oder 90 Tage.

Ist das möglich und wenn ja wie????

Ich habe die Tabelle mit angehängt und ich würde mich freuen wenn mir jemand helfen könnte.




Vielen Dank im voraus
Guten Morgen hat keiner eine Lösung oder ist das so unmöglich????
Hallöchen,

eine Info per E-Mail aus Excel heraus hat zwei Voraussetzungen. Zum einen muss Excel gestartet sein und zum anderen muss einer vor dem Rechner sitzen und im Outlook "Senden" betätigen. Aus Sicherheitsgründen ist es schon seit langem nicht mehr möglich, aus Office heraus E-Mails direkt zu senden.
Um trotzdem E-Mails senden zu können muss man andere Wege beschreiten. Schaue Dir z.B. mal das an

Sending mail from Excel with CDO


Send Email from Excel using VBA and VBScript
Moin, also die Excel Datei schaffe ist bei mir auf dem Rechner, da aber dort an die 100 Termine drinnen sind möchte ich die Erinnerung direkt auf meinen Emailaccount bekommen.
Wenn das nicht möglich ist dann wenigstens in den Outlookkalender.
Es ist zeitaufwendig die ganzen Termine zu kontrollieren
Hallöchen,

hier mal ein Code. Der nimmt die Termine aus Spalte G, macht einen Termin draus mit einer Woche Erinnerung, und dann wird in Spalte U noch eine ID eingetragen. Was alles passiert ist kommentiert, kann man einiges ändern. Der Code kommt in ein normales Modul...

Code:
Option Explicit

Sub Excel_Control_Termin_nach_Outlook()
Dim wksSheet As Worksheet
Dim objFolder As Object
Dim objOutApp As Object
Dim objTermin As Object
Dim lngRow As Long
Dim LMinuten As Long

'On Error GoTo Fin
Set wksSheet = ThisWorkbook.Worksheets("Autokran") ' Anpassen!!!
Set objOutApp = CreateObject("Outlook.Application")
'9 = olFolderCalendar
Set objFolder = objOutApp.GetNamespace("MAPI").GetDefaultFolder(9)
'Schleife von Zeile 3 bis zur letzten gefuellten Zelle in Spalte A
For lngRow = 3 To Cells(Rows.Count, 1).End(xlUp).Row
   'Wenn in Spalte 7 (G) ein Datum steht, dann
   If IsDate(wksSheet.Cells(lngRow, 7).Value) Then
    'Wenn Termin nicht schon vorhanden, dann
    If Not fncPointExist(objFolder, wksSheet.Cells(lngRow, 2).Value) Then
      Set objTermin = objOutApp.CreateItem(1)
      'LMinuten = Format(wksSheet.Cells(lngRow, 4).Value, "h.mm")
      With objTermin
        'Starttermin (hier bswp.: Datum der Zelle um 14 Uhr)
        .Start = Format(wksSheet.Cells(lngRow, 7).Value, "dd.mm.yyyy") & " 14:00"
        '.Start = Format(wksSheet.Cells(lngRow, 7).Value, "dd.mm.yyyy") & " " & Format(wksSheet.Cells(lngRow, 3).Value, "hh:mm")
        'Ende des Termins
        '.End = Format(wksSheet.Cells(lngRow, 2).Value, "dd.mm.yyyy") & " 20:00"
        '.End = Format(wksSheet.Cells(lngRow, 2).Value, "dd.mm.yyyy") '& " " & wksSheet.Cells(lngRow, 4).Value
        'Daten aus Spalte A als Subjekt
        .Subject = wksSheet.Cells(lngRow, 1).Value
        'Inhalt des Termins
        .Body = "Das macht Spass!"
        'Ort
        .Location = "DEKRA Gera"
        '.Location = wksSheet.Cells(lngRow, 5).Value & " - " & wksSheet.Cells(lngRow, 6).Value
        'Dauer in Minuten
        .Duration = 15
        '.Duration = wksSheet.Cells(lngRow, 4).Value
        'Erinnerung vor Start in Minuten
        .ReminderMinutesBeforeStart = 7 * 24 * 60 '7 Tage
        'Sound abspielen
        .ReminderPlaySound = True
        'Erinnerung setzen
        .ReminderSet = True
        'Kategorie = Farbe
        .categories = "dringend"
        'Speichern
        .Save
        'In Spalte 21 (U) ID eintragen
        wksSheet.Cells(lngRow, 21) = .EntryID
      End With
      Set objTermin = Nothing
    'Ende Wenn Termin nicht schon vorhanden, dann
    End If
   'Wenn in Spalte 7 (G) ein Datum steht, dann
   End If
Next lngRow
Fin:
If Err.Number <> 0 Then MsgBox "Fehler: " & _
   Err.Number & " " & Err.Description
   Set objFolder = Nothing
   Set objTermin = Nothing
   Set objOutApp = Nothing
   If Err.Number = 0 Then MsgBox "Termine nach Outlook ?bertragen!"
End Sub

Private Function fncPointExist(ByVal objTMP As Object, _
ByVal strSubject As String) As Boolean
Dim objItem As Object
For Each objItem In objTMP.Items
   If objItem.Subject = strSubject Then fncPointExist = True
Next
End Function
Hallo André,

normaler Termin geht schon mal.

Kannst Du bitte versuchen, damit eine Terminserie (z.B. Geburtstag) für mehrere Jahre einzutragen?
Hallo Ralf,

anbei mal mit einem wöchentlichen Termin. Machst einfach ...yearly draus und müsstest die Daten noch aus Zellen entnehmen, ich hab das zum Test nur fest drin. Relevant für die Serie ist im Prinzip dieser Teil:

Code:
      'woechentliche Serie bilden
      With .GetRecurrencePattern
        .PatternStartDate = #9/20/2020#
        .PatternEndDate = #12/12/2020#
        .RecurrenceType = olRecursWeekly
      End With


oben hab ich dann auch die Variablendeklarationen angepasst.
Hi André,

danke, jährlich hat bei mir auch funktioniert.

Es wurde aber der End-Termin nicht beachtet, es wurden 64 Termine eingetragen => 64 Jahre. Smile
Hi Ralf,

Zitat:Es wurde aber der End-Termin nicht beachtet, es wurden 64 Termine eingetragen => 64 Jahre.
Hätte ich auch gerne noch, natürlich bei bester Gesundheit Smile Andererseits, Du weißt doch, bei Luther waren's 2017 500 Jahre :15:

Hier mal zwei weitere Parameter. Da ist dann auch die Reihenfolge relevant. Du musst am Anfang erst mal den "Button" bzw. die Eigenschaft für das Enddatum setzen, dann klappt es mit Anfang und Ende. Occurrences wäre die Alternative für die Anzahl Termine, dann lässt Du NeEndDate weg.

Code:
.RecurrenceType = olRecursYearly
.NoEndDate = False
.PatternStartDate = #10/28/2020#
.PatternEndDate = #10/28/2022#
' .Occurrences = 5
Hi André,

wenn ich das so teste:
Code:
With .GetRecurrencePattern
         .RecurrenceType = olRecursYearly
         .NoEndDate = False
         .PatternStartDate = #01/01/2020#
         .PatternEndDate = #12/31/2026#
'         '.Occurrences = 5
       End With

wird, egal was bei .NoEndDate eingetragen ist, das Enddatum eingetragen.

Wie kann ich das z.B. .PatternStartDate über eine Variable/Zellverweis setzen?

Auch wenn ich das End-Datum auskommentiere, bleibt es noch im Speicher bestehen.
Seiten: 1 2