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

Mitglied: Tsunami87

Tsunami87 (Level 1) - Jetzt verbinden

06.02.2014, aktualisiert 10:40 Uhr, 6595 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
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
Excel Makro Hilfe
gelöst Frage von freshman2017Microsoft Office8 Kommentare

Moin Moin! Ich würde gerne mit Excel - Kombinationen für Artikelnummern erstellen. Könnte hierbei bereits heraus finden, dass ein ...

Microsoft Office
Excel Button Makro
gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich habe folgendes Problem. Wir haben uns einige Buttons erstellt und mit Macros hinterlegt. Jetzt gibt es einen ...

Microsoft Office
Excel Makro zerstört SVerweis
gelöst Frage von schwalbepilotMicrosoft Office4 Kommentare

Hallo, anbei ein Makro welches sich alle Excel Dateien eines Ordners vornimmt und einen Zellbereich färbt und die Formel ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 1 TagSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 3 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...

Router & Routing
Lancom-VPN-Client
Frage von FM28880Router & Routing14 Kommentare

Hallo zusammen, ich habe heute zwei Rechner mit einem Lancom VPN-Client eingerichtet. Die VPN-Verbindung wird aufgebaut und steht. Jedoch ...

Basic
VBS soll alle Ordner auswählen, die im Startmenu angezeigt werden
Frage von Senseless-CreatureBasic12 Kommentare

Guten Morgen - gibt es eine Möglichkeit, per VBS das Startmenu in Win10 zu modifizieren? Ich beherrsche VBS mittlerweile ...

Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V11 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...