Hallo,
erstmal ein Riesen-Dankeschön an die ganzen Leute, die hier immer so fleißig antworten! Ich habe hunderte Threads gelesen und viele davon waren extrem hilfreich für mich!
Zu meiner Frage.
Ich habe für Outlook ein kleines VBA-Skript, das ich ausführen möchte. Es soll eine Mail in einen bestimmten Ordner kopieren, oder, wenn dieser nicht existiert, ihn erst anlegen und dann verschieben bzw. kopieren.
Durch das Ereignis
Items_ItemAdd wird folgende funktion aufgerufen mit
Call MailkopierenJob(Item, Jobnr):
Private Sub MailkopierenJob(Item As Outlook.MailItem, Jobnr)
'das hier ist alles etwas chaotisch .. habe mich schon Stunden damit aufgehalten..
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myCopiedItem As Outlook.MailItem
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("Info").Folders("Inbox").Folders("Jobs")
'Prüfen, ob bereits ein Ordner existiert:
Dim OrdnerExistiert As Boolean
Dim i As Integer
For i = 1 To myFolder.Folders.Count
If myFolder.Folders.Item(i).Name = Jobnr Then
Set myCopiedItem = Item.Copy
Set myDestFolder = myFolder.Folders(Jobnr)
myCopiedItem.Move myDestFolder
MsgBox "Exisitert - verschoben" ' das funktioniert!
Exit Sub
End If
Next
'in den folgenden zwei Zeilen ist irgendwie der Wurm drin. Wenn das Skript erkannt hat, dass der Ordner nicht exisitert wird er angelegt - funktioniert:
Set myNewFolder = myFolder.Folders.Add(Jobnr)
'das hatte ich ausprobiert:
'Set myNewFolder = Nothing
'so oder so meckert er dann hier, das der Ordner nicht existiere (außerhalb des zulässigen Bereichs)
Set myNewFolder = myFolder.Folders(Jobnr)
Set myCopiedItem = Item.Copy
myCopiedItem.Move myNewFolder
MsgBox "Exisitert nix - verschoben"
End Sub
Was mache ich falsch?
Dankeschön!!
F
|