Daten aus Mails nach Excel exportieren
#11
Hallo Rabe,

es ging um die Info von schauan.
"im VBA-Editor hast Du oben bei den Menüs Extras, und das klappst Du auf und dort gibt es die Verweise. Da ist eine lange Liste drin, und Du suchst den betreffenden raus." Ich bin davon ausgegangen, dass es direkt auf den Ordner und die Datei verweisen muss.
Bin halt bei dieser Sache erstmalig unterwegs.
Gruß Kreck2
Top
#12
In den Verweisen musst Du nur einen Verweis auf die "Microsoft Excel X.0 Object Library" setzen (das X steht für die Officeversion).

In der Zeile ".Workbooks.Open..." gibst Du Pfad und Dateinamen an.
In der Zeile "Set xlBook" den Namen der Datei angeben/anpassen
In der Zeile "Set xlSheet" den Namen der Tabelle angeben/anpassen, in die die Daten geschrieben werden sollen. Es wird immer in der ersten freien Zeile begonnen.
Top
#13
Coll und schon der nächste Fehler

Laufzeitfehler `438`
Objekt unterstützt diese Eigenschaft oder Methode nicht
With Application.ActiveExplorer.Selection
Top
#14
Code:
Option Explicit

Public Sub AnmeldedatenEintragen()
Dim xlApp        As Object
Dim xlRange      As Long
Dim xlBook       As Excel.Workbook
Dim xlSheet      As Excel.Worksheet
Dim vntTempArray As Variant
Dim obj As Object

Select Case True
        Case TypeOf Application.ActiveWindow Is Outlook.Inspector
             Set obj = Application.ActiveInspector.CurrentItem
        Case Else
             With Application.ActiveExplorer.Selection:@
                  If .Count Then Set obj = .Item(1)
             End With
                 If obj Is Nothing Then Exit Sub
End Select

vntTempArray = Split(obj.Body, vbCrLf)

Set xlApp = New Excel.Application

        With xlApp
             .Visible = True
             .Workbooks.Open Environ("USERPROFILE") & "\Documents\Ziel\Tester.xlsm"
                 Set xlBook = xlApp.Workbooks("Tester.xlsm")
                 Set xlSheet = xlBook.Sheets("Tabelle1")
                     With xlBook
                          With xlSheet
                               xlRange = _
                                    .Range("A" & .Rows.Count).End(xlUp).Row + 1
                                    .Range("A" & xlRange) = Replace(vntTempArray(3), "Anrede: ", "")
                                    .Range("B" & xlRange) = Replace(vntTempArray(4), "Titel: ", "")
                                    .Range("C" & xlRange) = Replace(vntTempArray(5), "Vorname: ", "")
                                    .Range("D" & xlRange) = Replace(vntTempArray(6), "Nachname: ", "")
                                    .Range("E" & xlRange) = Replace(vntTempArray(7), "Praxis: ", "")
                                    .Range("F" & xlRange) = Replace(vntTempArray(8), "Strasse: ", "")
                                    .Range("G" & xlRange) = Replace(vntTempArray(9), "PLZ/Ort: ", "")
                                    .Range("H" & xlRange) = Replace(vntTempArray(10), "Telefon: ", "")
                                    .Range("I" & xlRange) = Replace(vntTempArray(11), "E-Mail: ", "")
                                    .Range("I" & xlRange) = Replace(vntTempArray(12), "Teilnehmer: ", "")
                          End With
                        .Save
                        .Close
                     End With
                .Quit
        End With

ende:
xlRange = 0
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Top
#15
Hallo Kreck,

nur mal ein Hinweis:

Es ist sehr wichtig, die Angaben so genau wie möglich zu machen und die Antworten auch genau zu befolgen. Das ist wie in der Fahrschule. Wenn der Fahrlehrer erklärt, wozu die Pedalen da sind, die linke zum bremsen und die rechte zum Gas geben, sollte man beim Bremsen auch die linke nehmen und nicht die rechte Smile

Wenn Du z.B. von exportieren nach Excel schreibst, dann gehen wir davon aus, dass Du das von Outlook aus tun willst. Bist Du auf der Excel-Seite, würdest Du importieren.

Deine Frage war z.B. "Einen Verweis auf dei Excel Object Library setzen"
Dann musst Du den Verweis natürlich auch auf den mit der "Excel Object Library" setzen (meine Antwort: Du suchst den betreffenden raus.) und nicht auf die Exceldatei ...

*************************************************************************

Den Fehler konnte ich nicht nachvollziehen, ich habe allerdings Outlook 2013. Eine Vermutung hätte ich noch.
Könnte es sein, dass Du bei Ausführung des Makros im Kalender oder anders wo warst? Ich habe bei Ausführung den Posteingang aktiv gehabt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#16
Hi,

(06.02.2015, 22:23)Kreck2 schrieb: Ich bin davon ausgegangen, dass es direkt auf den Ordner und die Datei verweisen muss.
Bin halt bei dieser Sache erstmalig unterwegs.

kein Problem, so was dachte ich mir, darum habe ich es geschrieben.
Jeder fängt mal klein an, war nicht böse gemeint, nur als Hinweis.

mumpel hat Dir ja auch noch ein paar Hinweise für das Makro gegeben. Mal sehen, ob es jetzt mit Andrés Tipps klappt.
Top
#17
(06.02.2015, 22:37)Kreck2 schrieb: Laufzeitfehler `438`
Objekt unterstützt diese Eigenschaft oder Methode nicht
With Application.ActiveExplorer.Selection
Was haben Doppelpunkt und @-Zeichen in der Zeile zu suchen?
Top
#18
Hallo Mumpel @ Zeichen und Doppelpunkt stehen nicht drin. Ich hatte ein Smilie an der betreffenden Fehlerzeile eingefügt
(:@)

Ansonsten habe ich den Posteingang geöffnet.
Top
#19
Der Fehler kann auftreten wenn keine Email ausgewählt ist, der Ordner leer ist oder das Outlook-Fenster in den Systray minimiert wurde (das Outlook-Hauptfenster ist unabhängig vom VBA-Fenster und kann minimiert sein).
Top
#20
Hallo Mumpel,

zeigt mir dennoch den beschriebenen Laufzeitfehler 438 an und im Debugger gelb
With Application.ActiveExplorer.Selection

E Mail ist ausgewählt, Ordner nicht leer, nichts minimiert
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste