Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Makro: Terminübergabe von Excel nach Outlook

Frage Microsoft Microsoft Office

Mitglied: Tsunami87

Tsunami87 (Level 1) - Jetzt verbinden

06.02.2014, aktualisiert 10:40 Uhr, 5553 Aufrufe, 7 Kommentare, 1 Danke

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

A B C D E
Lieferant Art. No. Artikel Prod.Gruppe Datum

Mit diesemMakro funktioniert dies auch wunderbar.
01.
Option Explicit 
02.
 
03.
Sub AufgabenNachOutlook() 
04.
'Variablen deklarieren. 
05.
Dim appOutLook As Outlook.Application 
06.
Dim taskOutLook As Outlook.TaskItem 
07.
'Dim mydelegate As Outlook.Recipient 
08.
     
09.
    'Mit Zelle "E4" beginnen, In Spalte E steht das Datum 
10.
Range("E4").Select 
11.
 
12.
    'Wiederhole solange bis eine Zelle in Spalte H leer ist 
13.
Do Until ActiveCell.Value = "" 
14.
 
15.
    'Prüfen ob in Spalte 41 ein x ist, 
16.
    'dass bedeutet, dass der Termin schon einmal erfasst wurde 
17.
    'Wenn ein x vorhanden ist, dann zur Sprungmarke AufgabeDa gehen 
18.
 
19.
If ActiveCell.Offset(0, 36).Value = "x" Then GoTo AufgabeDa 
20.
 
21.
    'Verbindung zu Outlook herstellen. 
22.
Set appOutLook = CreateObject("Outlook.Application") 
23.
    'Ankündigen, dass eine Aufgabe erstellt werden soll. 
24.
Set taskOutLook = appOutLook.CreateItem(olTaskItem) 
25.
 
26.
    With taskOutLook 
27.
        'Set mydelegate = taskOutLook.Recipients.Add("mail@irgendwas.de") 
28.
        'Betreff einfügen. 
29.
        .Subject = "INDEX" & " " & ActiveCell.Offset(0, -1) 
30.
        'Text für die Aufgabe eintragen. 
31.
        .Body = ActiveCell.Offset(0, -3) & " / " & ActiveCell.Offset(0, -2) 
32.
        'Datum für den Beginn setzen. 
33.
        .StartDate = Format(ActiveCell.Value, "dd.mm.yyyy") 
34.
        'Erinnerungszeit setzen. 
35.
        .ReminderTime = Format(ActiveCell.Value - 21, "dd.mm.yyyy") & " " & "01:00" 
36.
        'Erinnerung einschalten. 
37.
        .ReminderSet = True 
38.
        'Aufgabe speichern. 
39.
        .Save 
40.
        'Aufgabe öffnen. 
41.
        .Display ' Wenn die Aufgaben nicht geöffnet werden sollen, dann einfach auskommentieren 
42.
 
43.
    End With 
44.
 
45.
    ' In die 41. Spalte ein x setzen heißt: 
46.
    ' der Termin wurde schon einmal in den Kalender eingetragen 
47.
    ' Deshalb den Code ab hier weiter abarbeiten 
48.
ActiveCell.Offset(0, 36).Value = "x" 
49.
 
50.
    'Sprungmarke 
51.
AufgabeDa: 
52.
 
53.
 
54.
    'Nächste Zeile der gleichen Spalte auswählen 
55.
ActiveCell.Offset(1, 0).Select 
56.
 
57.
    ' Verbindung zu Outlook trennen 
58.
Set taskOutLook = Nothing 
59.
Set appOutLook = Nothing 
60.
 
61.
'Nächster Schleifendurchlauf 
62.
Loop 
63.
 
64.
MsgBox "Alle Aufgaben wurden in Outlook eingetragen!" 
65.
 
66.
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
01.
Betreff: Index Fahrrad 
02.
Fälligkeitsdatum: 30.01.2014 
03.
Erinnerung: 09.01.2014 
04.
Text: 00615 / Kette w     
05.
      00715 / Kette x            
06.
      00815 / Kette y 
07.
      00915 / Kette z 
08.
 
09.
Betreff: Index Fahrrad 
10.
Fälligkeitsdatum: 28.02.2014 
11.
Erinnerung: 07.01.2014 
12.
Text: 00624 / Helm x     
13.
      00724 / Helm y           
Wie kann ich dies am besten umsetzen? Wäre für jede Hilfe sehr dankbar.

Mit freundlichen Grüßen
Tsunami
Mitglied: colinardo
LÖSUNG 06.02.2014, aktualisiert 10.02.2014
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
Bitte warten ..
Mitglied: Tsunami87
06.02.2014 um 12:20 Uhr
Hallo Uwe,

vielen Dank für deine Antwort.
Ich werde dies gleich einmal verbauen.

Grüße
René
Bitte warten ..
Mitglied: colinardo
06.02.2014, aktualisiert um 12:25 Uhr
Nur zur Info falls ein Fehler auftreten sollte ...darüber bin ich gestolpert:
In deinen Demo-Daten war ein 30.02.2014 vorhanden. Dieser Tag im Februar existiert aber nicht

Grüße Uwe
Bitte warten ..
Mitglied: Tsunami87
10.02.2014 um 06:53 Uhr
Morgen Uwe,

bitte Entschuldige die späte Rückantwort.

Das Makro sieht nun so aus:
01.
  
02.
Sub AufgabenNachOutlookGruppe() 
03.
 
04.
   Dim rngStart As Range, rngEnd As Range, cell As Range, sheet As Worksheet, taskOutlook As Variant 
05.
    Set appOutLook = CreateObject("Outlook.Application") 
06.
    Set sheet = Worksheets(2) 
07.
   Set rngStart = sheet.Range("A4") 
08.
    Set rngEnd = rngStart.End(xlDown) 
09.
     
10.
 
11.
 
12.
   sheet.Range(rngStart, rngEnd.Offset(0, 14)).Sort Key1:=Range("H3"), Order1:=xlAscending, Key2:=Range("E3"), Order2:=xlAscending 
13.
    prev_date = "" 
14.
    prev_group = "" 
15.
 
16.
    For Each cell In sheet.Range(rngStart, rngEnd) 
17.
 
18.
    If cell.Offset(0, 18).Value = "x" Then GoTo AufgabeDA 
19.
        art_date = cell.Offset(0, 7).Value 
20.
        art_group = cell.Offset(0, 4).Value 
21.
         
22.
        If prev_date = art_date And prev_group = art_group Then 
23.
            taskOutlook.Body = taskOutlook.Body & cell.Offset(0, 1).Value & " / " & cell.Offset(0, 3).Value & vbNewLine 
24.
     
25.
        Else 
26.
            Set taskOutlook = appOutLook.CreateItem(3) 
27.
            With taskOutlook 
28.
                'Betreff einfügen. 
29.
                .Subject = "INDEX " & cell.Offset(0, 4).Value 
30.
                'Text für die Aufgabe eintragen. 
31.
                .Body = cell.Offset(0, 1).Value & " / " & cell.Offset(0, 3).Value & vbNewLine 
32.
                'Datum für den Beginn setzen. 
33.
                .StartDate = DateValue(cell.Offset(0, 7).Value) 
34.
                'Erinnerungszeit setzen. 
35.
                .ReminderTime = DateAdd("d", -21, .StartDate) & " 01:00" 
36.
                'Erinnerung einschalten. 
37.
                .ReminderSet = True 
38.
                'Aufgabe speichern. 
39.
                '.Save 
40.
                'Aufgabe öffnen. 
41.
                .Display ' Wenn die Aufgaben nicht geöffnet werden sollen, dann einfach auskommentieren 
42.
            End With 
43.
           prev_date = art_date 
44.
           prev_group = art_group 
45.
        End If 
46.
cell.Offset(0, 18).Value = "x" 
47.
AufgabeDA: 
48.
    Next 
49.
    Set appOutLook = Nothing 
50.
End Sub
Funktioniert super, leider erhalte bei der letzten Zeile "Typen unverträglich" ist es möglich einen Befehl ähnlich
01.
Do Until ActiveCell.Value = ""
Grüße
René
Bitte warten ..
Mitglied: colinardo
10.02.2014 um 08:43 Uhr
Hallo René,
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 mit
if cell.Offset(0,4).Value <> "" then Exit For
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
Bitte warten ..
Mitglied: Tsunami87
10.02.2014 um 09:56 Uhr
Hallo Uwe,

nicht ganz.
Ich glaube der fehler erscheint da keine Werte in der Spalte stehen.
Aber damit kann ich leben.

Vielleicht finde ich noch was

Vielen Dank.

Grüße
René
Bitte warten ..
Mitglied: colinardo
10.02.2014, aktualisiert um 10:05 Uhr
arbeite mit dem Debugging und Schritt-für-Schritt Ausführung (F8), setze Breakpoints und Variablenüberwachung in deinem Code, dann findest du den Übeltäter 100%.
Und den Sprung mit der Goto-Marke würde ich durch eine If-Abfrage ersetzen...

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Makro
Frage von maloh1984Microsoft Office4 Kommentare

Hallo Habe ein Problem, ein Kunde der hat Excellisten mit Makro die lassen sich öffnen aber die Buttons reagieren ...

Microsoft Office
Excel-Makro
gelöst Frage von yuki13Microsoft Office7 Kommentare

Hallo Zusammen!! :-) Ich bin nicht so fit in Excel Makros und wollte mich hier erkundigen, ob mir jemand ...

Microsoft Office
Probleme bei Makro in Outlook zum kopieren von Daten aus Mail in Excel
gelöst Frage von fiAScoMicrosoft Office6 Kommentare

Servus beinander Ich habe eine Frage bzw möchte folgendes haben/machen. Ich würde gern ein Makro in Outlook haben, welches ...

VB for Applications
Excel Makro Kreisdiagramm für Fortgeschrittene
gelöst Frage von StefanHVB for Applications3 Kommentare

hallo zusammen, habe mal wieder ein excel / makro problem  ich möchte ein kuchendiagramm / kreisdiagramm erstellen, das ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 1 StundeLinux7 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing13 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Microsoft Office
Outlook Cache Mode Frage
Frage von GwaihirMicrosoft Office11 Kommentare

Hallo zusammen, bin gerade neu in der Firma und lerne hier einige neue Dinge kennen. Zum Beispiel, dass die ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server11 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...