rabitionismus
Goto Top

OL 2002 VBA Problem bei einem Pfad

ok hier mein momentanes Script. @ Biber es ging mir nur um die Art und Weise (sarkastisch und suffisant) deiner Antwort. Von Programmierung wirst du wahrscheinlich mehr verstehen als ich...

Hallo,
Ich wollte, dass alle gesendeten Objekte beim Start von Outlook in Tasks verwandelt werden. Da ich nicht so der VBA Spezialist bin hab ich mir mein Skript zusammenkopiert und dann abgeändert.
leider funktioniert ein Pfad nicht (natürlich ist das einer der Zeilen die ich aus meinem Kopf herausgezaubert habe)...
Das ist mein aktueller Code. Dem "olItem" wird kein Wert zugeordnet und ich habe auch keine Ahnung wie...und das Skript soll nicht auf den Posteingang laufen, sondern auf Gesendete Objekte, leider habe ich noch keine funktionelle Lösung raus. Wäre toll wenn mir jemand hilft! Am Ende soll dieses Script nur für einen bestimmten Absender laufen, da hab ich auch noch keine Ahnung, das wäre aber der nächste schritt. Ich nehme an das ich das über eine For each Schleife machen muss.
Option Explicit
Dim MyOLApp As Application
Dim myNameSpace As NameSpace

Public WithEvents olItem As MailItem
Private Sub Application_Startup()
    
    Dim olItem As MailItem
    Dim oeff As Outlook.MAPIFolder
    Dim olApp As Outlook.Application
    Dim olTask As Outlook.TaskItem
    Dim cntSelection As Integer
    Dim I
    Dim sent As Outlook.Explorer
    Dim cf As Outlook.MAPIFolder
    
        Set olApp = New Outlook.Application
        Set oeff = olApp.GetNamespace("MAPI").Folders.Item("Öffentliche Ordner").Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Firma Ordner").Folders.Item("Abteilung").Folders.Item("Abteilung Tasks")  
            
            If oeff Is Nothing Then
                MsgBox "Invalid Folder"  
                
            Else
            
Set olApp = Outlook.CreateObject("Outlook.Application")  
Set olTask = olApp.CreateItem(olTaskItem)
Set sent = olApp.ActiveExplorer
Set cf = sent.CurrentFolder

cntSelection = sent.Selection.Count
For I = 1 To cntSelection
Set olItem = sent.Items(I)
olTask.Attachments.Add olItem
olTask.Subject = "Empfangen 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("Abteilung").Folders.Item("Abteilung Tasks")  

Next
olTask.DueDate = DateAdd("h", 48, 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("Abteilung").Folders.Item("Abteilung Tasks")  
olTask.Display
        End If
End Sub



[Edit Biber] Codetags nachgetragen. (Das Skript endet wirklich mittendrin, ich nix gemacht).[/Edit]

Content-Key: 125101

Url: https://administrator.de/contentid/125101

Printed on: April 19, 2024 at 23:04 o'clock

Member: Biber
Biber Sep 16, 2009 at 18:56:11 (UTC)
Goto Top
Moin Rabitionismus,

ich kenn mich zwar mit Programmieren nicht so gut aus, aber ich fürchte, die letzte Frage ...
BTW wäre ich sehr dankbar wenn ihr mir sagen könntet ob der Rest soweit funktional ausschaut...
würde ich vorsichtig so beantworten:
Als ich deinen Code zu Ende gelesen hatte, wünschte ich mir schlagartig zu erblinden und das Gedächtnis zu verlieren..

Nachdem ich jetzt zur Beruhigung zwei Stunden auf meiner fussgeklöppelten osttibetanischen Yogamatte ein paar Atemübungen gemacht habe fühle ich mich aber entspannt genug zum Antworten.

Programmierung für Cheffes/Kunden wie auch Fragen zu Code-Fehlern hier im Forum funktionieren im Prinzip genauso wie der Kauf einer Tüte gemischter Brötchen fürs WG-Frühstück.
Du solltest vor dem Abendessen wieder zurück sein und es gibt Theater, wenn Du nur mit einem Pfund Mehl und einem Hefewürfel wieder zurückkommst und sagst "den Rest machen wir schnell zusammen fertig."

Wie dem auch sei, die zwei in deinem Schnipsel lose zusammengetackerten Copy&Paste-Schnipsel sind bestenfalls in dieser Form dazu in der Lage, Speicherplatz auf einer Festplatte zu belegen. Und nicht mal das in einem Ausmaß, das irgendwelche "Ahh"s und "Ohhh"s hier im Forum hervorrufen würde.

Deshalb jetzt noch mal im Ernst:
  • Wenn es bislang nur den Plan/die Vorgabe gibt "es sollen alle gesendeten Objekte beim Start von Outlook in Tasks verwandelt werden" ---> dann beschreibe das etwas genauer (Termin? Prio? Wiedervorlage?)
  • Wenn es schon einen Codeschipsel gibt, den irgendein Code-Parser als irgendwie zur Familie gehörig einstufen würde ---> dann poste den.


Aber den oben geposteten Codefetzen mit der neckischen Anmerkung
'<----------------------------hier ist mein momentaner Fehler! "
zu posten.... ja hey, da hab ich ein Problem mit.

Grüße
Biber

P.S. In dieser hier-ist-mein-Fehler-Zeile ist uInbox noch gar nicht mehr als deklariert.
Es könnte dort z.B. schon "objApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)" oder ähnliches sein, aber isses halt nicht.
Member: Rabitionismus
Rabitionismus Sep 16, 2009 at 22:05:27 (UTC)
Goto Top
Vielen Dank für den letzten Absatz, aber den Rest..... Wenn Irgendetwas nicht passt, falsch ist oder sonst was, kann man das auch freundlich schreiben. Aber nicht in so einer arroganten und respektlosen Art!
Member: Biber
Biber Sep 16, 2009 at 22:37:46 (UTC)
Goto Top
Moin Rabitionismus,

Zitat von @Rabitionismus:
Wenn Irgendetwas nicht passt, falsch ist oder sonst was, kann man das auch
Aber nicht in so einer arroganten und respektlosen Art!
Sorry, ich hab doch extra vorausgeschickt
ich kenn mich zwar mit Programmieren nicht so gut aus
Wahrscheinlich ist das der Grund dafür, dass ich in deine geposteten Codezeilen keinen Sinn hineininterpretieren kann.

Ich setz mich mal auf die Zuschauerbank und warte mit dir zusammen auf die Experten.
Dieser eine Fehler kann ja nicht schwer zu finden sein -du hast es ja schon auf die relevante Zeile eingegrenzt.

Viel Glück
Biber