PDA

Vollständige Version anzeigen : Mails auslesen -fehler 13


DeBabba
05.05.2009, 08:00
Hallo zusammen,
komme (mal wieder) irgendwie nicht so richtig weiter
Habe folgenden Code
Sub test()
'----------------------------------------------------------
'--Individuelle Suche im Mailordner OHNE Unterzeichnisse---
'----------------------------------------------------------
Dim olApp As Outlook.Application
Dim OLSuch As Outlook.Search
Dim OLSess As Outlook.Namespace
Dim Ordner, OLF As Outlook.MAPIFolder
Dim Nachricht As Outlook.MailItem
Dim Objekt As Outlook.Items
Dim I&, K&, AnzEintraege As Long

'Kalendereinblendung für die Angabe des Auswertungszeitraumes
Frmkalender1.Show
FrmKalender2.Show
I = 2 'Startzeile der Auswertung
Set olApp = Outlook.Application
Set OLSess = olApp.GetNamespace("MAPI")
Ordnerwahl:
'--Manuelle Ordnerwahl
Set Ordner = OLSess.PickFolder
Set Objekt = Ordner.Items

AnzEintraege = Ordner.Items.Count
x = Format(Time, "hh-mm-ss")
'----------------------------------------------
'--neues Arbeitsblatt erzeugen und formatieren
'----------------------------------------------
Sheets.Add.Name = Left(Ordner & "-" & x, 31)
Cells(1, 1).Value = "Outlook-Folder"
Cells(1, 2).Value = "Mail Time"
Cells(1, 3).Value = "Betreff"
Cells(1, 4).Value = "Sender"

Cells(1, 20).Value = "Datum von"
Cells(1, 21).Value = "Datum bis"
Cells(2, 20).Value = DatVon
Cells(2, 21).Value = DatBis
Range("A1:M1").Select
With Selection
.HorizontalAlignment = xlCenter
.Font.Bold = True
.ColumnWidth = 22
End With
Cells(2, 4).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.HorizontalAlignment = xlRight
Cells(1, 1).Select
'----------------------------------------------------------------
'---Felder in Datensätzen suchen und filtern
'----------------------------------------------------------------
For Each Nachricht In Objekt
With Nachricht
SentOnVon = Format(.SentOn, "dd.mm.yyyy")
If Format(.SentOn, "dd.mm.yyyy") < DatVon Then GoTo nextnews
If Format(.SentOn, "dd.mm.yyyy") > DatBis Then GoTo nextnews
Cells(I, 1).Select 'gewollt
'-----------------------------------------------
testreihe:
Cells(I, 1) = Ordner
Cells(I, 2) = .SentOn
Cells(I, 3) = .Subject
Cells(I, 4) = .SenderName
'-------------------------------------------------
I = I + 1
nextnews:
K = K + 1
Application.StatusBar = K & " Sätze von " & AnzEintraege & " bearbeitet! " & I - 2 & " datensätze gefunden !"
End With
Call VariNull 'Variablen auf 0 oder leer setzen
'--------------------------------
Next

Läuft soweit prima, jedoch bekomme ich nach einiger zeit die Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" und finde nicht heraus was, wo, warum, und welhalb :( :(
Nach dem klick auf "debuggen" steht das script auf dem Befehl NEXT

Hat jemand von euch ne Idee ???

Vielen Dank

Gruß
DeBabba

DeBabba
06.05.2009, 06:54
Push !!
hat denn keiner ne Idee ??:( :(

EarlFred
08.05.2009, 17:18
Hallo DeBabba,

macht evtl. die Prozedur VariNull Probleme?

Ist des nächste Item, das in Nachricht geschrieben werden soll vielleicht kein Mailitem? Hast Du das Makro mal mit Variablendefinition für Nachricht als Object oder Variant durchlaufen lassen?

Was sagen die Variableninhalte im Lokalfenster? Alles OK und der Definition entsprechend?

Grüße
EarlFred

DeBabba
11.05.2009, 10:28
Hallo EarlFred,
Danke für Dein Feedback,
habe aber im Moment nicht so recht Zeit mich da nochmal reinzuwühlen.
Stress stress stress
Gruß
klaus

DeBabba
12.05.2009, 10:48
Hallo earl Fred
habe das Ganze mal total abgespeckt
irgensdwas mach ich hier falsch :stupid:
kannst Du mal nachsehen ??
Sub Gaggaman()
Dim x As Long
Dim OLAppli As Outlook.Application
Dim OLSession As Outlook.Namespace
Dim OLOrdner As Outlook.MAPIFolder
Dim Objekte As Outlook.Items
Dim OLMessage As Outlook.MailItem
'-------------------------------------------------
Set OLAppli = Outlook.Application
Set OLSession = OLAppli.GetNamespace("Mapi")
Set OLOrdner = OLSession.PickFolder
Set Objekte = OLOrdner.Items
'-------------------------------------------------
x = 2
Sheets.Add
Cells(1, 1).Value = "Outlook-Folder"
Cells(1, 2).Value = "Mail Time"
Cells(1, 3).Value = "Betreff"
For Each OLMessage In Objekte
Cells(x, 1).Select
Cells(x, 1) = OLOrdner
Cells(x, 2) = OLMessage.SentOn
Cells(x, 3) = OLMessage.Subject
x = x + 1
Next
End Sub

Vielen Dank für Deine Mühe

DeBabba