folderexist

  • Sonstige

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von gugenot.

    Hi,

    alle Deine Threads die Du eröffnet hast bezogen sich auf das Ansprechen von Objekten in Outlook. Schau dir bitte erst mal diesen Thread an und versuche zu verstehen was da passiert, bevor du noch mehr Threads eröffnest !!!!


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    hi LaMa5
    ich bewundere immer wieder deine wissen
    ich will auch so ein kenner sein;)
    und noch dazu du hast recht (eine frau davon abgesehen hat immer recht;) ) und ich habe das gemacht befohr ich meine frage gestellt habe...

    warscheinlich meine frage nicht ganz richtig gestellt
    , hier ist noch ein versuch;)


    ich habe mit vba für otlook 2002 eine "erweiterung" gemacht um die ankommende mail automatisch nach absender überprüfen , dann ein ordner im posteingang mit absender name erstellen und mail da rein speichern...

    beim ersten mall läuft es prima

    nur wenn ordner schon da ist kriege ich fehler meldung

    meine frage wie kann ich überprüfen ob ordner schon da ist ?
    und wenn ordner der mit absendername in neuem mail übereinstimmt schon existiert muss mail da gespeichert werden, wenn nicht erst ein neue ordner mit absendername erstellen und dann mail da rein speichern...


    hier ist quellcode:



    Sub Ordner()
    Dim i As Integer
    Dim j As Integer
    Dim oMail As Object

    Set myOlApp = CreateObject("Outlook.Application")
    Set MyNameSpace = myOlApp.GetNamespace("MAPI")
    Set myinbox = MyNameSpace.GetDefaultFolder(olFolderInbox)
    Set MyItems = myinbox.Items
    If olFolderInbox > 0 Then
    i = 1
    j = myinbox.Items.Count
    Do While j > 0
    Set oMail = myinbox.Items(j)
    If Not myNameFolder.Exist Then
    Set myNameFolder = myinbox.Folders.Add(oMail.SenderName)

    Set myitem = MyItems.Find("[SenderName] ='" & myNameFolder & "'")

    While TypeName(myitem) <> "Nothing"
    myitem.Move myNameFolder
    Set myitem = MyItems.FindNext
    j = j - 1
    Wend
    Loop

    Else
    MsgBox "Posteingang ist leer"
    End If
    End Sub







    bitte bitte helft mir jemand
    für jeder tipp und hilfestellung bedanke ich mich im voraus
    mfg



    ist es jetzt besser...? :)
    Hi,

    hast Du Dich mal mit dem Outlook Objekt beschäftigt??
    Dann wüsstest Du: das jeder Ordner, jede Mail, jeder Termin, jede Aufgabe usw. ein Objekt darstellt.

    1.)
    Die einzige Möglichkeit um zu ermitteln ob ein Objekt existiert, ist dieses Objekt zu suchen. Dafür könntest
    Du zum Beispiel alle Objekte im Objekt Posteingang durchgehen und überprüfen ob es ein Ordner ist und
    welchen Namen er trägt. Schon hast Du ermittelt ob ein Ordner existiert.

    2.)
    Laufzeitfehler 13 bedeutet Du hast den Wert einer (z.B.) Long Variablen eine Byte Variablen zugewiesen.
    Du hast also irgendwo 2 unterschiedliche Variablentypen die denselben Wert tragen sollen.


    bye ...

    LaMa5.

    P.S. Bemühe Dich bitte um eine etwas bessere Rechtschreibung, es macht keinen Spass Texte zu
    lesen die vor Schreibfehlern nur so strotzen. ;)
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    danke fürs tipp
    hier ist die funktionsfächige variant
    (für den fahl dass noch jemand es braucht)

    Visual Basic-Quellcode

    1. Sub PSortieren()
    2. Dim i As Integer
    3. Dim j As Integer
    4. Dim oMail As MailItem
    5. Dim schonda As Boolean
    6. schonda = False
    7. Set myOlApp = CreateObject("Outlook.Application")
    8. Set MyNameSpace = myOlApp.GetNamespace("MAPI")
    9. Set myinbox = MyNameSpace.GetDefaultFolder(olFolderInbox)
    10. Set MyFolder = myinbox.Folders
    11. Set MyItems = myinbox.Items
    12. Call SomeProc
    13. If olFolderInbox > 0 Then
    14. i = 1
    15. j = myinbox.Items.Count
    16. Do While j > 0
    17. Set oMail = myinbox.Items(j)
    18. '************************
    19. For Each fld In myinbox.Folders
    20. If fld.name = oMail.SenderName Then
    21. schonda = True
    22. Set myNameFolder = myinbox.Folders
    23. myNameFolder = fld.name
    24. Set myNameFolder = myinbox.Folders(oMail.SenderName)
    25. Exit For
    26. End If
    27. Next
    28. If Not schonda Then
    29. '***********************
    30. Set myNameFolder = myinbox.Folders.Add(oMail.SenderName)
    31. End If
    32. Set myitem = MyItems.Find("[SenderName] ='" & myNameFolder & "'")
    33. While TypeName(myitem) <> "Nothing"
    34. myitem.Move myNameFolder
    35. Set myitem = MyItems.FindNext
    36. j = j - 1
    37. Wend
    38. Loop
    39. Else
    40. MsgBox "Posteingang ist leer"
    41. End If
    42. End Sub


    Edit by Agent: VB-Tag eingefügt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

  • 2 Benutzer haben hier geschrieben