Brücke zwischen Excel und Outlook

  • Excel

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Brücke zwischen Excel und Outlook

    Guten Morgen zusammen, ich hoffe ich bin hier Richtig in der VBA Programierung?

    Ich habe folgende Idee bzw. Aufgabe welche ich gerne möglichst zeitnah in die Realität umsetzen möchte.
    Ich habe nicht die große Erfahrung mit der VBA Programierung und hoffe, dass Ihr mir helfen könnt.

    Ich habe eine Excel Tabelle, welche ich mit Formeln und Bedingten Formatiereungen bearbeitet habe.( mir wird angezeigt, "OK" *nichts* "Nein" (Grün, Gelb, Rot)
    Des Weiteren, habe ich in dieser Tabelle mehrere Daten, zum 1. Eingangsdatum eines Fromulares 2. Aktuelle Datum. Die daten beziehen sich auf einen Zeitraum von 7 Tagen zusammen mit Der "Ampel" (OK,nichts,nein).

    Ich möchte nun einen VBA code entwickeln, welcher nach folgenden Kriterien arbeiten sollte.

    -Automailer eines formulares nach 7 Tagen Wenn Wert = nichts und/oder nein beträgt
    Automailer jedentag Automatisch laufen lassen, mit berücksichtigung, an wen er schon eine mail geschickt hat (an die nicht noch eine senden)

    -Automatisch vergabe von einer fortlaufenden Nummer

    Ich hoffe, dass Ihr mir helfen könnt ?! TS ist ab nachmittags vorhanden.

    Gruß Quentin
    Guten Morgen,

    danke für deine Antwort peatod, wenn ich den code richtig interpretiere, ist dieser für eine einzelne mail richtig?
    ich bräuchte es für ein paar hundert mails. Die Mail adressen sind ebenfalls in der Excel tabelle hinterlegt. Wie definiere ich den wert, dass er die Mail´s nach 7 Tagen versendent, und die die er gesendet hat, nicht nochmal los schickt?

    Ich habe auch einen Txt verfasst, welcher als automail gesendet werden soll, da soll automatisch die Anschrift und eine Fortlaufende nummer eingebettet werden.
    Hatte überlegt dies über den Word Serienbrief mit Excel zu verknüpfen, allerdings bin ich mir nicht sicher ob man dies ebenfalls mit in den vba code schreiben kann, oder ob das anderweitig besser geregelt werden könnte.

    Sinn:

    Folgendes soll automatisch ausgefüllt und per mail weg geschickt werden.. alle nötigen adressen/parameter/werte sind in einer Excel tabelle zusammengefasst.
    (hilft vielleicht zum verständnis?)

    Sehr geehrter Herr ___(Name in Exceltabelle),

    unsere Systemabfrage hat Folgendes ergeben:

    • 2012-____ (fortlaufende Nummer) = offen, Schadteil wurde noch nicht an uns zurück geschickt!

    Wir erwarten zu den oben genannten Fall das Schadteil.
    Wenn wir innerhalb der nächsten 6 Werktage keine Rückmeldung bzw. kein Schadteil von Ihnen bekommen, sehen wir uns gezwungen Ihnen das kostenlos zugesandte Ersatzteil zu berechnen.

    Vielen Dank für Ihr Verständnis und Ihre Mühen. Für Rückfragen stehe ich Ihnen gern zur Verfügung.

    Mit freundlichen Grüßen / With kind regards...


    (mail soll nur einmal versendet werden, es muss demzufolge eine makierung vom code gesetzt werden, welche ihm sagt, den hatte ich schon nicht nochmal)
    Ich hoffe ihr könnt helfen.

    Gruß Quentin

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Quentin“ ()

    Quentin schrieb:

    ich bräuchte es für ein paar hundert mails
    Pack das Zeug in eine Sub (oder Function) und ruf diese so oft auf, wie du willst.

    Quentin schrieb:

    Wie definiere ich den wert, dass er die Mail´s nach 7 Tagen versendent, und die die er gesendet hat, nicht nochmal los schickt?
    Du trägst für jeden Record in eine Spalte Mailversand ein Versanddatum ein und wenn du die Mail verschickt hast, schreibst du dort "versendet" rein.

    Quentin schrieb:

    automatisch die Anschrift und eine Fortlaufende nummer eingebettet werden
    Pack den Standardtext in eine Zelle und bau Variablen ein
    "Sehr geehrter Herr <<Name>>", "Die Position <<Nummer>> fehlt".
    Beim Füllen des Mailbody ersetzt du den variablen Text
    MailText = Replace(Range("StandardText").Value, "<<Name>>", Cells(aktuelleZeile, NameSpalte).Value)
    MailText = Replace(MailText, "<<Nummer>>", Cells(aktuelleZeile, NummerSpalte).Value)
    usw.

    Wenn du formatierten Text verwenden willst, kannst du in Outlook anstatt .Body auch .HtmlBody verwenden und HTML-Format übergeben.


    Notiz am Rande:
    Mit freundlichen Grüßen / With kind regards
    Entweder du machst den ganzen Text zweisprachig oder du hältst auch die Grußformel einsprachig.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Danke für die Antwort :)

    wärst du so freundlich mir das als vba code zu posten? Dann würde ich den entsprechend anpassen und schauen ob, und wie es funtkioniert :)

    zu deiner Notiz ;)

    habe ich meinen vorgesetzten auch gesagt, aber da redet man vor nen baum ^^

    Gruß Quentin
    Tipp: Steig auf vb.net um

    Zum Ablauf.

    Du erstellst ein Programm, welches täglich (geplanter Task) die Excel-Datei(en) analysiert und schreibst die ausgewerteten Daten in eine Datenbank (DataSet/MySQL/SQLite/MSSQL/whatever).
    in die Datenbank kommen Dinge wie TimeStamp, Artikelnummer usw.
    bei jedem Aufruf, soll das Programm suchen, ob etwas älter als 7 Tage ist. Wenn ja, soll es eine Mail aufsetzen.

    Von wo kommt eigentlich die Excel-Datei? Aus einer Datenbank? Oder wird diese händisch bearbeitet?

    Wenn schon ein SQL-Server im hintergrund steht, dann verwende gleich diesen...
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D

    Quentin schrieb:

    wärst du so freundlich mir das als vba code zu posten? Dann würde ich den entsprechend anpassen und schauen ob, und wie es funtkioniert
    Gegenvorschlag:
    Wenn du deinen VBA-Code postest, kann sich hier jemand korrigierend einklinken, falls etwas nicht funktioniert.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Gegenvorschlag:

    Wenn du deinen VBA-Code postest, kann sich hier jemand korrigierend einklinken, falls etwas nicht funktioniert
    Ich werde mein bestes versuchen und Heut oder morgen einen hoffentlich brauchbaren code posten.

    Gruß Quentin
    ich weiß nicht recht wie ich beginnen soll..

    Sub mail()



    Set Outlook = CreateObject("Outlook.Application")
    Set Email = Outlook.CreateItem(2)
    Email.Subject = "Autonachricht"
    Email.Body = "Guten Tag"
    Email.To = "mail.de"
    Email.Send


    End Sub
    keine ahnung, ob der anfang soweit richtig oder falsch ist ?!

    Bitte um hilfe.

    MfG Quentin
    Na ja.
    Mehr als meinen Code (fast richtig) abgeschrieben hast du nicht.

    Wenn du diesen Code jetzt schrittweise im Debugger verfolgst, dann siehst du, was er macht.
    Du solltest schon versuchen, den Code zu verstehen.

    Die einzige Stelle, die du geändert hast, wird wohl auf die Schnauze fliegen, weil mail.de sicher keine gültige Mail-Adresse ist und vermutlich auch keine Adressliste auf deinem Exchange-Server.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Die einzige Stelle, die du geändert hast, wird wohl auf die Schnauze
    fliegen, weil mail.de sicher keine gültige Mail-Adresse ist und
    vermutlich auch keine Adressliste auf deinem Exchange-Server.
    Da soll er ja automatisch die adressen, nach wert einsetzen. Deswegen erstmal nur "mail.de"

    Ich verstehe nicht wie der Debuger Funktioniert, wenn ich den laufen lassen geht ein gelbes kästchen von oben nach unten durch und fertig?! Ich weiß nicht, wie ich dem code sage welche Mailadressen er ansprechen soll, und das er sie nur einmal ansprechen soll.