Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum mehrfach um 1 erhöhen

Forumthread: Datum mehrfach um 1 erhöhen

Datum mehrfach um 1 erhöhen
04.04.2013 11:27:04
Werner
Hallo zusammen!
Ich möchte in Outlook automatisch 5 Termine an aufeinderfolgende Tage (außer Wochenende) einfügen.
Beginnend immer Heute + 1.
Beispiel:
Heute wäre der 01.01.
Termine sollen automatisch dann für den 02.01., 03.01., 04.01., 07.01. und 08.01. erstellt werden.
05. & 06.01. ist ja Wochenende.
Geht so was?
Ich blicke nicht wie man das machen muss.
Kann mir jemand helfen?
Danke!
Gruß
Werner

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Excelforum?
04.04.2013 11:28:36
Klaus
Hallo Werner,
ich les grad den Bezug zu Excel nicht. Warum fragst du dass nicht in einem Outlook Forum?
Grüße,
Klaus M.vdT.
  • in Excel währs =HEUTE()+1

  • AW: Excelforum?
    04.04.2013 11:32:33
    Werner
    Hallo Klaus
    Weil ich das Ganze aus Excel heraus anlegen will.
    Gruß
    Werner

    AW: Excelforum?
    04.04.2013 11:34:44
    Werner
    So weit bin ich schon durch suchen vorgedrungen...
    Sub Terminanlegen()
    Dim OutApp As Object 'Dim OutApp As Outlook.Application
    Dim apptOutApp As Object
    Dim i As Integer
    Dim Datum As Date
    Datum = Date
    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.GetNamespace("Mapi").GetDefaultFolder(9).Items.Add
    For i = 1 To 5
    With apptOutApp
    .Start = Format(Datum, "dd.mm.yyyy") & " 8:00"
    .Subject = "Kennwort ändern!" 'Betreff für Termin
    '.Body = "Hier ist der Text" 'Zusätzlicher Text im Termininfo
    .Location = "" 'Ort des Termines
    .Duration = "5" 'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
    .ReminderMinutesBeforeStart = 5 'Erinnerung in Minuten
    .ReminderPlaySound = True 'mit oder ohne Sound
    .ReminderSet = True 'Erinnerung
    .Save 'Termin speichern
    End With
    Next i
    'ActiveCell.Offset(1, 0).Select 'Nächste Zeile auswählen
    Set apptOutApp = Nothing 'Variablen leeren
    'Set OutApp = Nothing 'Variablen leeren
    MsgBox "Termine angelegt..." 'Popup mit Erfolgsinfo
    End Sub
    

    Anzeige
    AW: Excelforum?
    04.04.2013 11:38:27
    Klaus
    Hi Peter,
    in deinem Code wird hier
    Datum = Date
    das Datum für den Termin festgelegt. EInfachste Lösung: schreibe hier
    Datum = Date + 1
    und kopiere das Makro 5 mal, jeweils mit +1, +2 usw in dieser Zeile und einer fortlaufenden Nummer im Namen.
    Wenn du Datum vorher übergibst, kannst du das auch per Schleife aufrufen und sparst dir das sinnlose kopieren:
    (absolut ungetestet, da ich momentan keine Termine in mein Outlook haben möchte)
    
    Sub FuenfTermine()
    dim i as integer
    for i = 1 to 5
    call terminanlegen(date + i)
    next i
    End Sub
    Sub Terminanlegen(datum as long)
    Dim OutApp As Object 'Dim OutApp As Outlook.Application
    Dim apptOutApp As Object
    Dim i As Integer
    Dim Datum As Date
    'AUSKOMMENTIERT
    'Datum = Date
    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.GetNamespace("Mapi").GetDefaultFolder(9).Items.Add
    For i = 1 To 5
    With apptOutApp
    .Start = Format(Datum, "dd.mm.yyyy") & " 8:00"
    .Subject = "Kennwort ändern!" 'Betreff für Termin
    '.Body = "Hier ist der Text" 'Zusätzlicher Text im Termininfo
    .Location = "" 'Ort des Termines
    .Duration = "5" 'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
    .ReminderMinutesBeforeStart = 5 'Erinnerung in Minuten
    .ReminderPlaySound = True 'mit oder ohne Sound
    .ReminderSet = True 'Erinnerung
    .Save 'Termin speichern
    End With
    Next i
    'ActiveCell.Offset(1, 0).Select 'Nächste Zeile auswählen
    Set apptOutApp = Nothing 'Variablen leeren
    'Set OutApp = Nothing 'Variablen leeren
    MsgBox "Termine angelegt..." 'Popup mit Erfolgsinfo
    End Sub
    
    Grüße,
    Klaus M.vdT.

    Anzeige
    AW: Excelforum?
    04.04.2013 12:45:00
    EtoPHG
    Hallo Werner,
    versuch's mal so:
    Datum = Date
    Set OutApp = CreateObject("Outlook.Application")
    For i = 1 To 5
    With OutApp.GetNamespace("Mapi").GetDefaultFolder(9).Items.Add
    Do
    Datum = Datum + 1
    Loop While Weekday(Datum, vbMonday) > 5
    .Start = Format(Datum, "dd.mm.yyyy") & " 8:00"
    '... restlicher Code
    .Save
    End With
    Next i
    
    Gruess Hansueli

    Anzeige
    AW: Excelforum?
    04.04.2013 13:12:14
    Werner
    Hallo Hansueli - EINWANDFREI!
    Danke an die Helfer!
    Geiles Forum hier.
    Bis neulich
    Werner
    Anzeige
    Anzeige

    Infobox / Tutorial

    Termine in Outlook aus Excel erstellen


    Schritt-für-Schritt-Anleitung

    Um in Excel automatisch 5 Termine in Outlook für aufeinanderfolgende Tage (außer Wochenenden) zu erstellen, kannst du das folgende VBA-Makro verwenden:

    1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

    2. Erstelle ein neues Modul: Rechtsklicke im Projektfenster auf "VBAProject (DeineDatei.xlsm)", wähle "Einfügen" und dann "Modul".

    3. Füge den folgenden Code ein:

      Sub TermineErstellen()
         Dim OutApp As Object
         Dim apptOutApp As Object
         Dim Datum As Date
         Dim i As Integer
      
         Datum = Date + 1 ' Startdatum ist heute + 1
         Set OutApp = CreateObject("Outlook.Application")
      
         For i = 1 To 5
             Do
                 ' Erhöhe das Datum um 1
                 Datum = Datum + 1
             Loop While Weekday(Datum, vbMonday) > 5 ' überspringe Wochenenden
      
             Set apptOutApp = OutApp.GetNamespace("MAPI").GetDefaultFolder(9).Items.Add
             With apptOutApp
                 .Start = Format(Datum, "dd.mm.yyyy") & " 08:00"
                 .Subject = "Termin"
                 .Duration = 60 ' Dauer in Minuten
                 .ReminderMinutesBeforeStart = 15
                 .Save
             End With
         Next i
      
         MsgBox "Termine angelegt..."
         Set apptOutApp = Nothing
         Set OutApp = Nothing
      End Sub
    4. Schließe den VBA-Editor und kehre zu Excel zurück.

    5. Führe das Makro aus: Drücke ALT + F8, wähle TermineErstellen und klicke auf "Ausführen".


    Häufige Fehler und Lösungen

    • Fehler: "Objekt nicht gefunden"
      Lösung: Stelle sicher, dass Outlook auf deinem Computer installiert und eingerichtet ist.

    • Fehler: Termine werden am falschen Datum erstellt
      Lösung: Überprüfe die Logik in der Schleife, die das Datum erhöht, um sicherzustellen, dass Wochenenden übersprungen werden.


    Alternative Methoden

    Eine alternative Methode ist die Verwendung von Excel-Formeln, um die Termine zuerst in einer Liste zu erstellen und dann manuell in Outlook zu übertragen. Du kannst die Formeln wie folgt verwenden:

    1. In Zelle A1: =HEUTE()+1
    2. In Zelle A2: =WENN(WOCHENTAG(A1+1;2)=6;A1+3;A1+1)
    3. Ziehe die Formel in Zelle A2 nach unten, um die nächsten Termine zu generieren.

    Praktische Beispiele

    Hier ist eine praktische Anwendung des oben beschriebenen Makros. Angenommen, heute ist der 01.01.2023:

    • Erster Termin: 02.01.2023
    • Zweiter Termin: 03.01.2023
    • Dritter Termin: 04.01.2023
    • Vierter Termin: 07.01.2023 (Wochenende übersprungen)
    • Fünfter Termin: 08.01.2023 (Wochenende übersprungen)

    Tipps für Profis

    • Anpassungen: Du kannst die Dauer oder den Betreff der Termine direkt im Code ändern, um sie an deine Bedürfnisse anzupassen.
    • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im Makro, um unerwartete Probleme zu vermeiden.
    • Verwendung von Variablen: Du kannst Variablen definieren, um den Code übersichtlicher zu gestalten, z.B. für den Betreff oder die Dauer.

    FAQ: Häufige Fragen

    1. Kann ich das Makro anpassen, um mehr als 5 Termine zu erstellen?
    Ja, ändere einfach die Zahl in der For-Schleife von 5 auf die gewünschte Anzahl.

    2. Was muss ich tun, wenn ich Excel 2010 oder älter verwende?
    Die meisten Funktionen und der VBA-Code sollten auch in älteren Versionen funktionieren. Achte darauf, die richtigen Verweise in den Einstellungen zu setzen, falls erforderlich.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige