Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler beim Ausführen eines Makros

Fehler beim Ausführen eines Makros
27.09.2013 10:34:03
STefan
Hallo, folgendes Makro hatte ich kürzlich von Bastian (Danke an der Stelle... war leider einige Tage krank) erhalten, bekomme aber bei Ausfürhen den Fehler: FEHLER BEIM KOMPILIEREN - BENUTZERDEFINIERTER TYP NICHT DEFINIERT.
Was muss ich denn jetzt tun?
LG
Code:
Sub Outlook_Import()
Dim appOutlook As Outlook.Application
Dim OutlookNameSpace As Outlook.Namespace
Dim OutlookMAPIFolder As Outlook.MAPIFolder
Dim OutlookItem As Outlook.MailItem
Dim arr As Variant
Dim strBody As String
Set appOutlook = CreateObject("Outlook.Application")
Set OutlookNameSpace = appOutlook.GetNamespace("MAPI")
Set OutlookMAPIFolder = OutlookNameSpace.GetDefaultFolder(olFolderInbox).Folders("00-emailfehler")
With OutlookMAPIFolder
For Each OutlookItem In .Items
strBody = strBody & OutlookItem.Body
Next OutlookItem
End With
arr = Email_Filter(strBody)
Range("A1").Resize(UBound(arr) + 1) = WorksheetFunction.Transpose(arr)
End Sub
Public Function Email_Filter(strMailtext As String) As Variant
Dim varTmp() As Variant
Dim Regex As Object
Dim M
Dim Treffer
Dim lngIndex As Long
Set Regex = CreateObject("Vbscript.regexp")
With Regex
.Pattern = "\b(\w[-.\w]*@\w[-.\w]*\.[a-zA-Z]{2,10})\b"
.IgnoreCase = True
.Global = True
If .test(strMailtext) = True Then
Set Treffer = .Execute(strMailtext)
ReDim varTmp(Treffer.Count - 1)
For Each M In Treffer
varTmp(lngIndex) = M.Value
lngIndex = lngIndex + 1
Next
End If
End With
Email_Filter = varTmp
End Function

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verweise gesetzt? oT
27.09.2013 10:58:55
JoWE

AW: Verweise gesetzt? oT
27.09.2013 11:04:43
STefan
wie mache ich denn das?

AW: Verweise gesetzt? oT
27.09.2013 12:27:41
Rudi
Hallo,
im VBE
Extras-Verweis und Microsoft Outlook xx.0 Object Library anhaken.
Gruß
Rudi

AW: Verweise gesetzt? oT
27.09.2013 12:32:04
STefan
Ok, Danke. Einen Schritt weiter. Jetzt bringt er: LAUFZEITFEHLER `13`
TYPEN UNVERTRÄGLICH
Gehe ich auf Debuggen
wird:
Next OutlookItem
gelb markiert.
Was muss ich denn da machen?
Daaaanke!

AW: Verweise gesetzt? oT
27.09.2013 15:34:49
Luschi
Hallo Stefan,
bei mir kommt auch dieser Fehler, deshalb mache ich das so:

Dim i As Integer
For i = 1 To .Items.Count
strBody = strBody & OutlookItem.Body
Next i
Diese Schleife läuft durch.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Verweise gesetzt? oT
27.09.2013 15:38:25
STefan
Danke. Wo kommt die denn rein? Bin echt ein Totaler Anfänger.
Daaaanke!

AW: Verweise gesetzt? oT
27.09.2013 16:08:06
Luschi
Hallo Stefan,
statt
For Each OutlookItem In .Items
     strBody = strBody & OutlookItem.Body
Next OutlookItem
das hier
For i = 1 To .Items.Count
     strBody = strBody & OutlookItem.Body
Next i
Gruß von Luschi
aus klein-Paris

AW: Verweise gesetzt? oT
27.09.2013 16:54:57
STefan
Danke, ohje ohje:
NEUER FEHLER:
Objektvariable oder With Blockvariable nicht festgelegt:
Gelb Markiert:
strBody = strBody & OutlookItem.Body
Daaanke noch einmal für Deine Hilfe... :)

Anzeige
AW: Verweise gesetzt? oT
30.09.2013 14:21:19
STefan
Hi Luschi aus klein-Paris, hast Du ne Idee, wie ich den Fehler weg bekomme?
Danke und Grüße
Stefan

AW: Verweise gesetzt? oT
30.09.2013 15:46:43
Luschi
Hallo Stefan,
zeig doch mal etwas mehr Code von der jetzigen Prozedur, dann schau ich mir das mal an.
Mein letzte Code funktioniert bei mir prächtig.
Gruß von Luschi
aus klein-Paris

AW: Verweise gesetzt? oT
30.09.2013 16:00:21
STefan
Hi, also ich habe den COde:
Sub Outlook_Import()
Dim appOutlook As Outlook.Application
Dim OutlookNameSpace As Outlook.Namespace
Dim OutlookMAPIFolder As Outlook.MAPIFolder
Dim OutlookItem As Outlook.MailItem
Dim arr As Variant
Dim strBody As String
Set appOutlook = CreateObject("Outlook.Application")
Set OutlookNameSpace = appOutlook.GetNamespace("MAPI")
Set OutlookMAPIFolder = OutlookNameSpace.GetDefaultFolder(olFolderInbox).Folders("00-emailfehler")
With OutlookMAPIFolder
For i = 1 To .Items.Count
strBody = strBody & OutlookItem.Body
Next i
End With
arr = Email_Filter(strBody)
Range("A1").Resize(UBound(arr) + 1) = WorksheetFunction.Transpose(arr)
End Sub
Public Function Email_Filter(strMailtext As String) As Variant
Dim varTmp() As Variant
Dim Regex As Object
Dim M
Dim Treffer
Dim lngIndex As Long
Set Regex = CreateObject("Vbscript.regexp")
With Regex
.Pattern = "\b(\w[-.\w]*@\w[-.\w]*\.[a-zA-Z]{2,10})\b"
.IgnoreCase = True
.Global = True
If .test(strMailtext) = True Then
Set Treffer = .Execute(strMailtext)
ReDim varTmp(Treffer.Count - 1)
For Each M In Treffer
varTmp(lngIndex) = M.Value
lngIndex = lngIndex + 1
Next
End If
End With
Email_Filter = varTmp
End Function

und an der Stelle aus Deiner Ändeurng:
strBody = strBody & OutlookItem.Body
wird es gelb markiert mit Fehlerausgabe: LAUFZEITFEHLER 91: OBJEKTVARIABLE oder WITH-BLOCKVARIABLE NICHT FESTGELEGT.
Idee?
Danke und liebe Grüße
Stefan

Anzeige
AW: Verweise gesetzt? oT
30.09.2013 17:15:33
Luschi
Hallo Stefan,
sorry, da ist was beim Kopieren des letzten Codes von mir durcheinander gekommen.
So klappt's:

Dim i As Integer
For i = 1 To .items.Count
strBody = strBody & .items(i).Body
Next i
Gruß von Luschi
aus klein-Paris

AW: Verweise gesetzt? oT
01.10.2013 09:38:16
STefan
HAMMER!!! Ich danke Dir!
Grüße

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige