Clever-Excel-Forum

Normale Version: E-Mail Betreff suchen und Anhang öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag zusammen,

wir bekommen jeden morgen eine automatisierte Excel Tabelle via Outlook über ein zentrales Postfach weitergeleitet. 

Die E-Mail hat den statischen Betreff: [SCM] Fahrplan extern, die angehängte  Excel Datei hat den Namen: SCM_Fahrplan_Extern_20190323_080157.xlsx. Die erste Nummer im Dateinamen ist das Tagesdatum rückwärts, die zweite Zahl entzieht sich miner Kenntnis, fogt für mich keinem erkennbaren Schema. Das Workbook besteht aus 3 Arbeitsblättern.

Ich suche nach einer Möglichkeit die Letzte erhaltene E-Mail mit obigem Betreff zu öffnen, die angehägte Datei mit dem sich ändernden Dateinamen zu öffnen. Zum Öffnen der E-Mail hab ich bei Google mehrere Ansätze gefunden, zum öffnen der Datei nur mit statischem Dateinamen. Habt ihr da vielleicht einen Schubs in die richtige Richtung oder ist das schlicht nicht möglich was ich vor habe?

MfG Micha
Hi Micha,

die zweite Zahl wird wahrscheinlich die Uhrzeit sein in Stunden, Minuten, Sekunden! :)

Zeig mal was du bisher alles hast?

LG
Alexandra
Hallo,

ich weiß ja nicht, ob dir die Methode zu unkonventionell ist, aber ich mach das so ... wenn ich Outlook verwenden würde ... was ich nicht tue.

Outlook in den Vordergrund holen --> Postfach auswählen --> gewünschte Mail doppelt anklicken --> den Datei-Anhang doppelt klicken

Excel wird gestartet und die Datei aus dem Anhang angezeigt.

Stimmt exakt mit deiner Fragestellung überein - Anhang geöffnet. Noch Fragen ?

Merkst du was ? Wenn man schon eine Frage stellt, dann sollte man sie auch eineindeutig stellen, sodass kein Raum für Interpretationen ist.
Und wenn du schon Code gefunden hast, der bereits "fast passt", dann solltest du diesen hier mit reinstellen (Code Tags verwenden), oder zumindest die Links angeben.
Wenn du Outlook verwendest, kannst du so etwas über Outlook-VBA bewerkstelligen, also auch Excel mit dem Anhang öffnen lassen. Dazu müsstest du etwas genauer beschreiben, was du mit "letzter" Mail meinst ... immer die, die zuletzt reinkommt oder die, die noch nicht abgearbeitet wurde. Wie ist denn dein bisheriger Ansatz?
Hallo zusammen,
erstmal vielen dank für die Hinweise und sanften Hiebe, mea culpa, die Beschreibung war wirklich ein bischen mager. Ich glaube das kommt daher, das mir immer so fix und umfassend geholfen wurde, nochmal vielen Dank dafür an dieser Stelle, das man wie ich als Laie den Eindruck bekommt ihr Profis habt den passenden Code schon vor Problemstellug parat.

Der Hinweis von Alexandra mit der Zeit stimmt sogar, hab das mal verglichen, wär ich nie draufgekommen.

Die Idee von flotter Feger ist was wir zur Zeit praktizieren, daher kommt ja der Wunsch auf Änderung. Die in der angehängten Datei enthaltenen Daten werden pro Frühschicht von 3 Kollegen bearbeitet, jeder einzelne passt sich das optisch individuell an zur Bearbeitung. Nach Bearbeitung fällt es mir zu aus den 3 Dateien dann wieder eine zu machen. Jegliches Zureden stößt bei den teils älteren Kollegen auf taube Ohren, "das mach ich schon immer so". Deswegen würde ich gern die 3 Tabellenblätter in eine vorgefertigte Arbeitsmappe mit 2weiteren Blättern importieren. Die Daten aus der Mail Arbeitsmappe direkt aufdröseln für den jeweiligen Bereich und die hinzugefügten und bearbeiteten Daten im 4. Arbeitsblatt zusammenfassen. Das ich nachher nur noch aus 3 Mappen das jeweils 4. Arbeitsblatt kopieren und zusammenpappen muss. Aber das kriege ich allein hin denke ich, wenn nicht weiß ich ja wo ich fragen darf. :30: 

 Hoffe der Hintergrund ist nun etwas verständlciher, wenn nicht nur fragen.

Der Code den ich gefunden habe:


Code:
Sub Bestimmte_mail_Anhang_finden()
' Es wird der Qutlook verweis benötigt <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dim Betreffsuch As String, Pfad As String
Betreffsuch = "Hallo.xlsx"  ' Anpassen (der betreff und das datei name muss gleich sein)
Pfad = "C:\Bastian\"        ' Anpassen
Dim Wb As Workbook, oMail As Object, objNS As Object, Anlagen As Object, Anlage As Object,  _
oFldInbox As Object
Set objNS = CreateObject("Outlook.application").GetNamespace("MAPI").GetDefaultFolder(6).Items
Set oFldInbox = objNS
        For x = 1 To oFldInbox.Count
        If TypeOf oFldInbox(x) Is MailItem Then
        Set oMail = oFldInbox(x)
     If oMail.Subject = Betreffsuch Then
        If oMail.Attachments.Count <> 0 Then
            Set Anlagen = oMail.Attachments
         For Each Anlage In Anlagen
         If Anlage = Betreffsuch Then
       Anlage.SaveAsFile Pfad & Anlage
      Workbooks.Open (Pfad & Anlage)
      Set Wb = ActiveWorkbook
      '......... Hier kannst du das Workbook bearbeiten
      Wb.Close
      GoTo ende
         End If
         Next
         End If
         End If
         End If
        Next
ende:
Set objNS = Nothing
Set oFldInbox = Nothing
End Sub

funktionert soweit wie beschrieben solange Betreff und Datei den selben Namen haben, was bei mir leider nicht der Fall ist. Ich bin aber leider noch zu sehr Laie um den Code für meine Bedürfnisse anzupassen.

Bin für jeden Lösungsansatz dankbar und auch nicht zu faul mir was anzulesen wenn jemand eine gute Quelle zu dem Problem für mich hat, meine beiden Excelbücher helfen leider nicht weiter und auch Google und Forumssuche hab ich nichts gefunden aber vielleicht hab ich auch nicht die richtige suchwörter benutzt.

schönen Sonntag

MfG Micha
Hallo Micha,

also zunächst fehlt deine "angehängte" (Beispiel)-Datei. Nützlich wäre auch, wie eine Beispiel-Mail aussieht, also Betreff und Dateiname. Wenn Betreff und Dateiname unterschiedlich sind, was soll dann zum Speichern genommen werden? Wie identifizierst du dann eine "richtige" Mail.

Wenn du so sehr "Laie" bist (keine Kritik, kein Vorwurf - jeder fängt mal an), dann ist dein Vorhaben aber sehr gewagt, wenn du es alleine machen möchtest. Das sieht eher nach Komplettlösung aus, was grundsätzlich kein Problem ist, aber dazu bräuchte man mehr Infos.

Bei deiner Variable "Anlage" könnte man z.B. ansetzen und diese auf einen "gültigen" Namen prüfen: muss ja
- mit "SCM_Fahrplan_Extern_" beginnen
- gefolgt von einem 8-stelligen Datum in der Form "JJJJMMTT",
- gefolgt von einem Unterstrich "_"
- gefolgt von einer 6-stelligen Uhrzeit in der Form "HHMMSS"
- gefolgt von ".xlsx"

Wenn das ausreicht, um eine Datei zu identifizieren. Die Variablen "Pfad" und "Anlage" lassen sich ja innerhalb des Codes steuern, so dass dein Vorhaben durchaus machbar ist.
Für den Rest (Zusammenführen der Daten) brauchen wir mehr Input Wink
Hallo Lucky Joe,

naja völliger Laie bin ich nicht aber im vergleich zu den meisten hier im Forum ist mein Wissen doch sehr klein, wenn ich hier manche VBA Codes sehe. Bei mir beschränkt sich das Wissen eher auf Copy + Paste und Trial + Error.

Mit den Beispielen wird schwierig da unsere Firma mit dem Datenschutz mittlerweile sehr streng ist, mir ist klar das ich euch damit das helfen nicht erleichtere.

der Betreff der E-Mails ist immer  [SCM] Fahrplan extern
Die angehängte Datei immer SCM_Fahrplan_Extern_Datum_Uhrzeit

Wobei Datum und Uhrzeit wohl der Erstellung der Datei entsprechen. Der Zeitanhang ist leider nicht gleich mit der E-Mail Eingangszeit.

Mein Problem zu dem ich momentan keine Idee finde, auch im Netz nicht. Ist in einer Arbeitsmappe beim Öffen der selbigen oder per Button das Postfach des aktuell unter Windows angemeldeten Users nach der letzten eingegangenen E-Mail mit obigem Betreff zu durchsuchen und die angehängte Datei mit dem sich täglich ändernden Namen zu öffnen die 3 enthaltenen Arbeitsblätter zu kopieren und in die zuvor gestartete Arbeitsmappe einzufügen. Wenn die 3 Blätter erstmal in der Mappe sind kriege ich die Datenzusammenführung hin denke ich.

Ich könnte heute abend oder morgen vormittag von zu Hause mal eine Beispieldatei frickeln und hochladen. Vielleicht wird dann klarer wo es bei mir hakt.

Gruß Micha
Hi Micha,

also so ganz verständlich ist es noch nicht: 
Zitat:... das Postfach des aktuell unter Windows angemeldeten Users ...
Ist das immer dein Postfach oder soll das Script auch bei deinen Kollegen arbeiten?

Zitat:... nach der letzten eingegangenen E-Mail mit obigem Betreff ...
Der Betreff ist ja variabel. Wonach kann man denn da eindeutig suchen? Ist das heutige Datum das ausschlaggebende Kriterium? Oder kannst du vorher ein Datum abfragen, nach dem die Mailanhänge durchsucht werden sollen? Wenn du die Mail eindeutig identifiziert hast, reicht das dann für die Weiterverarbeitung? Ist es für dich auch ein gangbarer Weg, das Ganze nicht bei Excel zu beginnen, sondern bei Outlook-VBA (und den dort gefundenen Mail-Anhang dann an Excel zur Weiterverarbeitung weiterzugeben)?
Hallo Lucky Joe,

vielen Dank für deine Mühen, sorry das ich mich so kompliziert ausdrücke und im Vorfeld schon so viel Arbeit mache.

Die angehängte Datei SCM_Fahrplan_Extern_Datum_Uhrzeit enthält 3 Arbeitsblätter mit den Fahrweseisen für unsere Fernwärme-, Wasser- und Windkraftanlagen, mit Prognosen zu Wetter, Temperatur, Netzauslastung Vergleichstagwerte etc. und daraus resultierend die Fahrweise der Anlagen. Die Fahrplandaten werden morgens ins Leitsystem übertragen und die real 15 min. Werte werden in die Tabelle die jeder Kollege sich aus der Sammelmail rauskopiert und in eine eigene Tabelle einfügt eingetragen.
2 weitere Kollegen und ich müssen dann morgens auf Frühschicht aus den 3 Tabellen der 3 Medien vom Vortag wieder eine gesammelte Tabelle machen mit Soll/Ist Erzeugung, Vermaktung etc..
Da aus gewachsenen Strukturen aber jeder Kollege die Fahrplan/Eingabe Tabelle so gestaltet wie er es für seinen Bereich richtig findet, ist das leider mit Copy+Paste alles etwas umständlcih.
Deswegen würde ich gern eine Arbeitsmappe unter Excel erstellen nennen wir sie einfach mal "Tageswerte" und an alle Kollegen verteilen, mit einem Arbeitsblatt das ich nach den Wünschen jedes Kollege so gestalten würde wie er möchte und einem wo dann die relevanten Daten aus den EingabeTabelle automatisch übertragen werden so das ich nachher nur 3 Tabellenblätter aus den 3 Arbeitsmappen zu einem zusammenführen muss.
Idealerweise hätte ich halt gern, um es den Kollegen besser verkaufen zu können weil es für sie ja auch einfacher ist, das die 3 Tabellenbläter aus der Datei SCM_Fahrplan_Extern_Datum_Uhrzeit einfach Stumpf in die Mappe"Tageswerte" kopiert werden und ich die für das Medium relevanten Daten direkt in die Vorlage des Kollegen verweisen kann.

Der E-Mail Betreff ist immer der selbe [SCM] Fahrplan extern, nur der Name der angehängten Datei ändert sich halt durch Datum und Zeit.

Ob sich das so oder ähnlich über Outlook realisieren lässt weiß icht nicht. Wobei da eventuell erschwerend hinzukommt das wir die Office Programme nicht auf den lokalen Rechnern haben sondern eine Server Variante die nur auf die lokalen Rechner nur virtuell gespiegelt wird. Aber da bin ich wirklich kompletter Laie um das abschätzen zu können.

Ich hoffe ich hab nicht noch mehr Verwirrung gestiftet.

Wenn ich nachher nicht zu kaputt bin bastel ich mal eine Beispiel Datei vielleicht wird es dann klarer, so zwischen durch auf der Arbeit ist das schwierig.

MfG Micha
Hallo Micha,

also für mich ist deine letzte Antwort noch etwas verwirrender geworden. Wenn ich dich bisher richtig verstanden habe, ist doch der erste Schritt zur Automatisierung die eindeutige Identifizierung der E-Mail in Outlook mit der benötigten Excel-Datei als Anhang – und das jeweils für 3 Kollegen. Erst wenn du diese Excel-Datei(en) (gespeichert) hast, kann es weiter gehen ... oder habe ich das falsch verstanden?

Im nächsten Schritt sollen dann diese Excel-Dateien zusammengeführt werden.

Wen das so richtig ist, dann solltest du das etwas genauer beschreiben, damit man einen Anfang für die gewünschte Automatisierung hat:
z.B. Kollege K1 (K2, K3) bekommt E-Mail E1 (E2, E3) mit Datei "SCM_Fahrplan_Extern_JJJJMMTT_hhmmss.xlsx".

Heißen diese angehängten Excel-Dateien bei jedem Kollegen anders und unterscheiden sich im Datum bzw. in der Uhrzeit? Wie lässt sich eine solche E-Mail identifizieren? Ist das immer die letzte E-Mail im Postfach? Ist das immer nur exakt eine E-Mail in diesem Namens-Format (weil die bereits verarbeiteten Mails irgendwoanders hin verschoben/archiviert wurden)?

Wir würden dir hier sicherlich gerne helfen, aber dazu musst du dein Vorhaben genauer beschreiben (z.B. schreibst du von "3 Medien vom Vortag" ohne zu erklären, was das sein soll). Ich empfehle dir für ein solches Vorhaben zunächst eine genauere Planung/Vorbereitung, vielleicht auch mit einem Flußdiagramm, so dass du die Schritte so weit abstrahieren kannst, dass auch Betriebsfremde (hiesiges Forum) nachvollziehen können, was genau du möchtest.

Viel Erfolg.
Seiten: 1 2