Probleme mit Makro zum Verschieben von Mails in anderen Ordn

Moderator: ModerationP

Probleme mit Makro zum Verschieben von Mails in anderen Ordn

Beitragvon Mattes_01 » 23. Mär 2020, 11:18

Hallo zusammen,
ich bin etwas am verzweifeln.
Ich versuche einen Code zu schreiben, der mir dann mit einem click die markierten Mails im Posteingang in einen (und immer den gleichen) Ordner verschiebt.
So wollte ich wichtiges von unwichtigem vorsortieren.

Mein Code sieht so aus.
Ich komme aber nicht weiter bzw. bekomme immer die Fehlermeldung, dass der Ordner nicht existiert.

Ich checke die Funktionalität von den Objekten an dieser Stelle nicht.
Und irgendwie blicke ich es nicht, mir bzw. den Pfad, der unter 'objFolder' liegt, anzeigen zu lassen.
Der Ordner 'Nicht_wichtig' existiert auf der selben Ebene wie der Posteingang.

Vielleicht hat ja jemand von euch eine Idee, wo mein Fehler liegt.

Viele Grüße und danke schonmal
Mattes

Code: Alles auswählen
Public Sub Verschieben()

On Error Resume Next

Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder
Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem

Set objNS = Application.GetNamespace(“MAPI“)
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)

Set objFolder = objInbox.Parent.Folders(“Nicht_wichtig“)

If objFolder Is Nothing Then
 MsgBox ("Dieser Ordner existiert nicht!" & vbOKOnly + vbExclamation & "Fehler")
End If

If Application.ActiveExplorer.Selection.Count = 0 Then
 Exit Sub
 End If

For Each objItem In Application.ActiveExplorer.Selection
 If objFolder.DefaultItemType = olMailItem Then
 If objItem.Class = olMail Then
 objItem.Move objFolder
 End If
 End If
 Next

Set objItem = Nothing
 Set objFolder = Nothing
 Set objInbox = Nothing
 Set objNS = Nothing

End Sub
Mattes_01
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 61
Registriert: 08. Dez 2010, 16:17

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon DerHoepp » 27. Mär 2020, 16:01

Moin,

Die Fehlermeldung, "dass der Ordner nicht existiert" kommt mir etwas merkwürdig vor. Bist du sicher, dass das die Fehlermeldung trifft? Und lass die Fehlerunterdrückung weg, wie willst du denn so Debuggen?

Ich würde einfach mal durch die Folders-Collection schleifen und gucken, was da falsch ist.
Code: Alles auswählen
Sub Testen()
   Dim Fldr as Object
   For Each Fldr in Application.GetNamespace(“MAPI“).Folders()
      Debug.Print Fldr.Name & " - " & Fldr.EntryID
   Next
End Sub

Schau dir dann vielleicht auch noch an, ob du mit der getFolderFromID()-Methode des Namespace-Objekts weiterkommst.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8781
Registriert: 14. Mai 2013, 11:08

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon Gast » 03. Apr 2020, 05:53

Hallo DerHoepp,
vielen Dank für deine Antwort.
Ich habe an meinem Makro nochmal was rumgebaut und versucht zu vereinfachen.

Code: Alles auswählen
Sub Verschieben()

    Dim fldrTarget As Folder, itm As Object
    Set fldrTarget = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Nicht_wichtig")

    If ActiveExplorer.Selection.Count > 0 Then
   
   
      For Each itm In ActiveExplorer.Selection

          itm.Move fldrTarget
      Next
   Else

       MsgBox "Bitte markieren sie mindestens eine Mail die verschoben werden soll.", vbExclamation

   End If
End Sub


Leider habe ich auch hier das Problem, dass er den Ordner nicht findet.
Groß-/Kleinschreibung passt.
Und der Ordner 'Nicht_wichtig' befindet sich als Unterordner im Posteingang (von da kommen ja auch die Mails).

Dein Code funktioniert bei mir nicht und läuft auf einen 'Laufzeitfehler -2147024809 (80070057)' im Schritt Debug.

Komisch, komisch.
Das kann doch nicht so schwer sein :oops:

Viele Grüße
Mattes
Gast
 

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon Mattes_01 » 03. Apr 2020, 05:54

Mist, war nicht angemeldet.
Sorry, der Schritt, an dem er bei deinem Code hängen bleibt, ist die 'For each'... Zeile.

LG
Mattes
Mattes_01
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 61
Registriert: 08. Dez 2010, 16:17

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon Mattes_01 » 03. Apr 2020, 06:00

So, jetzt verstehe ich die Welt nicht mehr.
Ich habe gerade nur debug.pring in den o.G. Text eingefügt und die Funktion umbenannt und plötzlich geht er.
Das kann doch nicht sein.

Verstehe ich echt nicht....

Vielleicht hat jemand eine Erklärung, was hier passiert.
Wenn nicht auch OK, geht ja jetzt.
Aber dennoch seltsam.

Anbei der funktionierende Code.

LG
Mattes

Code: Alles auswählen
Sub MailVerschieben()

    Dim fldrTarget As Folder, itm As Object
    Set fldrTarget = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Nicht_wichtig")
    Debug.Print fldrTarget.Name & fldrTarget.EntryID

    If ActiveExplorer.Selection.Count > 0 Then
   
   
      For Each itm In ActiveExplorer.Selection

          itm.Move fldrTarget
      Next
   Else

       MsgBox "Bitte markieren sie mindestens eine Mail die verschoben werden soll.", vbExclamation

   End If
End Sub
Mattes_01
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 61
Registriert: 08. Dez 2010, 16:17

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon Gast » 03. Apr 2020, 06:12

Hallo,
die Schleife funktioniert nicht, wenn Du mehrere Emails auswählst. Wenn aus der Liste verschoben wird, muss die Schleife rückwärts laufen.
Code: Alles auswählen
for i=count to 1 step-1
...
next
Gast
 

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon DerHoepp » 03. Apr 2020, 07:09

Moin,

die Erläuterung vom Gast klingt zwar nachvollziehbar, aber sie hat meines Erachtens nichts mit der geschilderten Fehlermeldung zu tun. Die Meldung "Dieser Ordner existiert nicht" steht im Code weit vor der Schleife.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8781
Registriert: 14. Mai 2013, 11:08

Re: Probleme mit Makro zum Verschieben von Mails in anderen

Beitragvon Michael Bauer » 03. Apr 2020, 07:47

Moin,

tz, war ich schon wieder nicht eingeloggt. Ich wollte auch gar nichts zum Ordner-nicht-gefunden Fehler beitragen, weil ich davon ausgehe, dass der gezeigte Code funktioniert, wenn es den Ordner gibt. Alles andere muss ein Testfehler sein.
Michael Bauer
Add-Ins für Microsoft Outlook
Benutzeravatar
Michael Bauer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6393
Registriert: 03. Feb 2005, 15:07
Wohnort: Vollersode


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste