Makro: Terminübergabe von Excel nach Outlook
Hallo liebe Gemeinde,
Aufgabenstellung war eine Lösung zu finden was Daten aus Excel in eine Outlookaufgabe schreibt.
Eine Lösung habe ich mir mit Office 2013 und dem Internet zusammengeschustert.
Meine Tabelle sieht grob so aus
Mit diesemMakro funktioniert dies auch wunderbar.
Neue Aufgabe zu diesem Makro / Tabelle:
Prod.Gruppen mit selbem Datum zusammenfassen und die Artikelbeschreibungen in den Text der Aufgabe schreiben.
Bsp. Tabelle
Bsp. Aufgabe im Outlook
Wie kann ich dies am besten umsetzen? Wäre für jede Hilfe sehr dankbar.
Mit freundlichen Grüßen
Tsunami
Aufgabenstellung war eine Lösung zu finden was Daten aus Excel in eine Outlookaufgabe schreibt.
Eine Lösung habe ich mir mit Office 2013 und dem Internet zusammengeschustert.
Meine Tabelle sieht grob so aus
A | B | C | D | E |
Lieferant | Art. No. | Artikel | Prod.Gruppe | Datum |
Mit diesemMakro funktioniert dies auch wunderbar.
Option Explicit
Sub AufgabenNachOutlook()
'Variablen deklarieren.
Dim appOutLook As Outlook.Application
Dim taskOutLook As Outlook.TaskItem
'Dim mydelegate As Outlook.Recipient
'Mit Zelle "E4" beginnen, In Spalte E steht das Datum
Range("E4").Select
'Wiederhole solange bis eine Zelle in Spalte H leer ist
Do Until ActiveCell.Value = ""
'Prüfen ob in Spalte 41 ein x ist,
'dass bedeutet, dass der Termin schon einmal erfasst wurde
'Wenn ein x vorhanden ist, dann zur Sprungmarke AufgabeDa gehen
If ActiveCell.Offset(0, 36).Value = "x" Then GoTo AufgabeDa
'Verbindung zu Outlook herstellen.
Set appOutLook = CreateObject("Outlook.Application")
'Ankündigen, dass eine Aufgabe erstellt werden soll.
Set taskOutLook = appOutLook.CreateItem(olTaskItem)
With taskOutLook
'Set mydelegate = taskOutLook.Recipients.Add("mail@irgendwas.de")
'Betreff einfügen.
.Subject = "INDEX" & " " & ActiveCell.Offset(0, -1)
'Text für die Aufgabe eintragen.
.Body = ActiveCell.Offset(0, -3) & " / " & ActiveCell.Offset(0, -2)
'Datum für den Beginn setzen.
.StartDate = Format(ActiveCell.Value, "dd.mm.yyyy")
'Erinnerungszeit setzen.
.ReminderTime = Format(ActiveCell.Value - 21, "dd.mm.yyyy") & " " & "01:00"
'Erinnerung einschalten.
.ReminderSet = True
'Aufgabe speichern.
.Save
'Aufgabe öffnen.
.Display ' Wenn die Aufgaben nicht geöffnet werden sollen, dann einfach auskommentieren
End With
' In die 41. Spalte ein x setzen heißt:
' der Termin wurde schon einmal in den Kalender eingetragen
' Deshalb den Code ab hier weiter abarbeiten
ActiveCell.Offset(0, 36).Value = "x"
'Sprungmarke
AufgabeDa:
'Nächste Zeile der gleichen Spalte auswählen
ActiveCell.Offset(1, 0).Select
' Verbindung zu Outlook trennen
Set taskOutLook = Nothing
Set appOutLook = Nothing
'Nächster Schleifendurchlauf
Loop
MsgBox "Alle Aufgaben wurden in Outlook eingetragen!"
End Sub
Neue Aufgabe zu diesem Makro / Tabelle:
Prod.Gruppen mit selbem Datum zusammenfassen und die Artikelbeschreibungen in den Text der Aufgabe schreiben.
Bsp. Tabelle
A | B | C | D | E |
Lieferant | Art. No. | Artikel | Prod.Gruppe | Datum |
Hr. X | 00615 | Kette w | Fahrrad | 30.01.2014 |
Hr. X | 00815 | Kette y | Fahrrad | 30.01.2014 |
Hr. Y | 00724 | Helm y | Fahrrad | 28.02.2014 |
Hr. X | 00915 | Kette z | Fahrrad | 30.01.2014 |
Hr. Y | 00624 | Helm x | Fahrrad | 28.02.2014 |
Hr. Y | 00824 | Helm z | Fahrrad | 30.02.2014 |
Hr. X | 00715 | Kette x | Fahrrad | 30.01.2014 |
Bsp. Aufgabe im Outlook
Betreff: Index Fahrrad
Fälligkeitsdatum: 30.01.2014
Erinnerung: 09.01.2014
Text: 00615 / Kette w
00715 / Kette x
00815 / Kette y
00915 / Kette z
Betreff: Index Fahrrad
Fälligkeitsdatum: 28.02.2014
Erinnerung: 07.01.2014
Text: 00624 / Helm x
00724 / Helm y
Wie kann ich dies am besten umsetzen? Wäre für jede Hilfe sehr dankbar.
Mit freundlichen Grüßen
Tsunami
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 228894
Url: https://administrator.de/forum/makro-terminuebergabe-von-excel-nach-outlook-228894.html
Ausgedruckt am: 22.12.2024 um 11:12 Uhr
7 Kommentare
Neuester Kommentar
Hallo Tsunami,
schau dir am besten dieses Demo-Sheet dazu an.
Es sortiert die Tabelle nach Datum und erstellt dann die Tasks gruppiert nacheinander.
Grüße Uwe
schau dir am besten dieses Demo-Sheet dazu an.
Es sortiert die Tabelle nach Datum und erstellt dann die Tasks gruppiert nacheinander.
Grüße Uwe
Hallo René,
machen (Offset an die zu überprüfende Zelle anpassen). Dann springt er aus der Schleife und beendet die Prozedur.
Hoffe das hilft die weiter.
Grüße Uwe
leider erhalte bei der letzten Zeile "Typen unverträglich"
das hilft jetzt nicht so wirklich, bei End Sub
wird der Fehler sicher nicht liegen. Kenne deinen Tabelleninhalt jetzt nicht, aber der Code in Zeile 8 legt ja die Zelle fest in der als letztes ein Wert in Spalte A eingetragen ist. Wenn du eine andere Zelle auf vorhandensein eines Wertes prüfen willst kannt du das vor der Zeile 18 mitif cell.Offset(0,4).Value <> "" then Exit For
Hoffe das hilft die weiter.
Grüße Uwe