Outlook 2002 VBA Skript soll nur bei bestimmten emails abgearbeitet werden
hallo, nun habe ich es geschafft mein skript im grundgerüst fertig zu stellen.
im moment greift das skript nur die letzte email. wie kriege ich das hin, dass dieses skript bei allen emails angewendet wird, die eine bestimmte emailadresse im Sender haben?(zb: abt@firma.de)
Ich hab mir das wie folgt gedacht: ich definiere eine variable mit meiner email addresse (emailsender) und diese prüft er mit einer for each schleife in jeder email.
Ist das überhaupt möglich?
und wie bekomme ich diese email in eine variable bei mir geht das nicht....
@ Biber ich hoffe das sieht jetzt besser aus
im moment greift das skript nur die letzte email. wie kriege ich das hin, dass dieses skript bei allen emails angewendet wird, die eine bestimmte emailadresse im Sender haben?(zb: abt@firma.de)
Ich hab mir das wie folgt gedacht: ich definiere eine variable mit meiner email addresse (emailsender) und diese prüft er mit einer for each schleife in jeder email.
Ist das überhaupt möglich?
und wie bekomme ich diese email in eine variable bei mir geht das nicht....
Option Explicit
Dim MyOLApp As Application
Dim myNameSpace As NameSpace
Public WithEvents olItem As MailItem
Private Sub Application_Startup()
Dim olItem As Outlook.MailItem
Dim olApp As Outlook.Application
Dim olTask As Outlook.TaskItem
Dim cntSelection As Integer
Dim I As Integer
Dim CurrentFolder As Outlook.MAPIFolder
Dim emailsender As Variant
Dim olExp As Outlook.Explorer
Set emailsender = "abt@firma.de"
Set olApp = Outlook.CreateObject("Outlook.Application")
Set ActiveExplorer.CurrentFolder = GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
Set olExp = olApp.ActiveExplorer
Set CurrentFolder = olExp.CurrentFolder
Set olTask = olApp.CreateItem(olTaskItem)
cntSelection = olExp.Selection.Count
If cntSelection > 0 Then
For Each emailsender In olItem.SenderName
For I = 1 To cntSelection
Set olItem = olExp.Selection.Item(I)
olTask.Attachments.Add olItem
olTask.Subject = "Gesendet zu Vorgang Betreff: " & olItem.Subject
olTask.Body = olItem.Body
olItem.Move Application.GetNamespace("MAPI").Folders.Item("Öffentliche Ordner").Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Firma Ordner").Folders.Item("Abt").Folders.Item("Abt MailBackup")
Next
olTask.DueDate = DateAdd("h", 162, Now)
olTask.StartDate = DateAdd("h", 0, Now)
olTask.ReminderSet = True
olTask.ReminderTime = DateAdd("h", 24, Now)
olTask.Save
olTask.Move Application.GetNamespace("MAPI").Folders.Item("Öffentliche Ordner").Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Firma Ordner").Folders.Item("Abt").Folders.Item("Abt Tasks")
olTask.Display
Next
Else
MsgBox "Keine Nachrichten gestern gesendet"
End If
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125307
Url: https://administrator.de/forum/outlook-2002-vba-skript-soll-nur-bei-bestimmten-emails-abgearbeitet-werden-125307.html
Ausgedruckt am: 20.02.2025 um 19:02 Uhr
4 Kommentare
Neuester Kommentar
Moin Bernd,
Ja nee, schon klar....
Aber da er sich im Ordner "....GetDefaultFolder(olFolderSentMail)" = "Gesendete Objekte" bewegt, wird er da nicht viel Überraschendes vorfinden.
@Rabitionismus I:
Bedeutet das, deine beiden unvollendeten Parallelbeiträge könnten geschlossen oder in die Tonne gekloppt werden?
<OT>
@Rabitionismus II:
Hast du dir mal überlegt, das -falls du mal auf dem weg zur Schicht auf der A4 verbleibst oder ähnliches- dass dann irgendein Unschuldiger (oder gar eine Unschuldige) diesen Code übernehmen und weiterpflegen muss?
Ein solchesKotCodefragment an jemand zu übergeben wird bei uns in Bremen als Mobbing bezeichnet.
</OT>
Grüße
Biber
Ja nee, schon klar....
Aber da er sich im Ordner "....GetDefaultFolder(olFolderSentMail)" = "Gesendete Objekte" bewegt, wird er da nicht viel Überraschendes vorfinden.
@Rabitionismus I:
Bedeutet das, deine beiden unvollendeten Parallelbeiträge könnten geschlossen oder in die Tonne gekloppt werden?
<OT>
@Rabitionismus II:
Hast du dir mal überlegt, das -falls du mal auf dem weg zur Schicht auf der A4 verbleibst oder ähnliches- dass dann irgendein Unschuldiger (oder gar eine Unschuldige) diesen Code übernehmen und weiterpflegen muss?
Ein solches
</OT>
Grüße
Biber
Moin Rabitionismus,
hast ja Recht, ein bisschen konstruktiver wäre es für Dich bestimmt hilfreicher.
Da ich jetzt aber gleich wegen Ich-mach-erstmal-Feierabend kurz unterbrechen muss, nur als (konstruktiv gemeinte) Tipps.
Was in dieser Anleitung schlecht ist--> dort werden kaum Unterfunktionen/Subs aufgerufen.
Sondern fast alles so runtergetippselt, wie es dem Verzapfer so grad in den Sinn kam.
Das geht aber nur bei ganz, ganz kurzen Schnipseln. Oder bei Behörden-Software.
->Versuche bei Dir, eine hierarchische Rahmenstruktur aufzubauen.
-> Rahmenprogramm: kurz, nur mit Variablen, die dort gebraucht werden; funktional wird von da aufgerufen
das dringlichste ist jetzt erstmal der Programmrahmen/die Struktur.
Nicht irgendwelche Spezialfunktionen.
Grüße
Biber
hast ja Recht, ein bisschen konstruktiver wäre es für Dich bestimmt hilfreicher.
Da ich jetzt aber gleich wegen Ich-mach-erstmal-Feierabend kurz unterbrechen muss, nur als (konstruktiv gemeinte) Tipps.
- Code-Einrückungen und Kommentare helfen auch Dir bei dem Irgendwann-mal-fertig-kriegen von Codeschnipseln. Andernfalls verlierst Du Dich -nach knapp 25 Zeilen hoffnungslos im eigenen Code.
- Wie bei allem anderen im Leben herangehen mit "Wo stehe ich jetzt, wo möchte ich gern hin, was benötige ich dafür, was davon habe ich schon und whereTF bekomm ich den Rest her?" Und dabei die Reihenfolge einhalten. Einfach loslaufen klappt nicht.
- Objekte wie Dein "oeff" (das oOeff heißen müsste bzw. sogar oAbtTasks) instanziert man/frau moglicherweise wirklich als Referenz auf ein Unter-Unter-Unter(und noch drei)-Objekt---> JA. Aber um sie zu benutzen!!!
- Du findest unten in den Links unter diesem Beitrag eine Anleitung "Outlook - Automatisierte Mailverarbeitung mit VBA-Makros" --> schau mal drüber bitte.
Was in dieser Anleitung schlecht ist--> dort werden kaum Unterfunktionen/Subs aufgerufen.
Sondern fast alles so runtergetippselt, wie es dem Verzapfer so grad in den Sinn kam.
Das geht aber nur bei ganz, ganz kurzen Schnipseln. Oder bei Behörden-Software.
->Versuche bei Dir, eine hierarchische Rahmenstruktur aufzubauen.
-> Rahmenprogramm: kurz, nur mit Variablen, die dort gebraucht werden; funktional wird von da aufgerufen
- CheckMyInbox ( oder CheckmySentbox)--> Ist denn was zu verarbeiten
- CopyKramsAsTask( myInputkrams) -> was gefunden wurde verarbeiten
- Fehler/Successmeldungen
- Aufräumen (und ggf.Logging)
das dringlichste ist jetzt erstmal der Programmrahmen/die Struktur.
Nicht irgendwelche Spezialfunktionen.
Grüße
Biber