Thema Datum  Von Nutzer Rating
Antwort
13.12.2024 22:20:16 Kleo_2024
NotSolved
Blau Deine Beschreibung auf www.chatgpt.com eingegeben ...
14.12.2024 04:46:40 Gast42721
NotSolved

Ansicht des Beitrags:
Von:
Gast42721
Datum:
14.12.2024 04:46:40
Views:
26
Rating: Antwort:
  Ja
Thema:
Deine Beschreibung auf www.chatgpt.com eingegeben ...

liefert das:

Sub SpeichereBestellungen()
    Dim olApp As Object
    Dim olNamespace As Object
    Dim olInbox As Object
    Dim olMail As Object
    Dim olAttachment As Object
    Dim fs As Object
    Dim folderPath As String
    Dim subject As String
    Dim attachmentName As String
    Dim orderNumber As String
    Dim orderDescription As String
    Dim savePath As String
    
    ' Outlook-Objekte initialisieren
    Set olApp = CreateObject("Outlook.Application")
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olInbox = olNamespace.GetDefaultFolder(6) ' Posteingang
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    ' Durch alle E-Mails im Posteingang iterieren
    For Each olMail In olInbox.Items
        ' Nur E-Mails mit dem Betreff "Bestellung" vom Absender "X" verarbeiten
        If olMail.Subject = "Bestellung" And olMail.SenderEmailAddress = "X@example.com" Then
            
            ' Extrahiere Auftragsnummer und Beschreibung (nehmen wir an, dass es im Betreff oder im Text ist)
            subject = olMail.Subject
            orderNumber = GetOrderNumber(subject) ' Funktion zum Extrahieren der Auftragsnummer
            orderDescription = GetOrderDescription(subject) ' Funktion zum Extrahieren der Beschreibung
            
            ' Erstelle einen Ordner, falls dieser noch nicht existiert
            folderPath = "C:\Aufträge\" & orderNumber & " - " & orderDescription
            If Not fs.FolderExists(folderPath) Then
                fs.CreateFolder folderPath
            End If
            
            ' Speichere alle Anhänge im Ordner
            For Each olAttachment In olMail.Attachments
                attachmentName = olAttachment.FileName
                savePath = folderPath & "\" & attachmentName
                olAttachment.SaveAsFile savePath
            Next olAttachment
        End If
    Next olMail
End Sub

Function GetOrderNumber(subject As String) As String
    ' Beispiel: Extrahiere die Auftragsnummer aus dem Betreff (nehmen wir an, dass sie am Anfang steht)
    Dim parts() As String
    parts = Split(subject, " ") ' Aufteilen anhand des Leerzeichens
    GetOrderNumber = parts(0) ' Die erste Zahl wird als Auftragsnummer genommen
End Function

Function GetOrderDescription(subject As String) As String
    ' Beispiel: Extrahiere die Beschreibung aus dem Betreff (nach der Auftragsnummer)
    Dim parts() As String
    parts = Split(subject, " ") ' Aufteilen anhand des Leerzeichens
    GetOrderDescription = Join(Application.Index(parts, 0, 2), " ") ' Den Rest als Beschreibung
End Function

und

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim olMail As Object
    Dim olNamespace As Object
    Set olNamespace = Application.GetNamespace("MAPI")
    Set olMail = olNamespace.GetItemFromID(EntryIDCollection)
    
    ' Überprüfe, ob es eine Bestellung ist, und speichere den Anhang
    If olMail.Subject = "Bestellung" And olMail.SenderEmailAddress = "X@example.com" Then
        SpeichereBestellungen
    End If
End Sub

 

Dazu auch noch eine Beschreibung.

Versuch es doch erst mal damit, anstatt hier Leute mit einer Aufgabe zu beschäftigen, welche jedes Jahr mindestens ein Mal gestellt wird.

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.12.2024 22:20:16 Kleo_2024
NotSolved
Blau Deine Beschreibung auf www.chatgpt.com eingegeben ...
14.12.2024 04:46:40 Gast42721
NotSolved