Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Das Exportieren von Outlook-Kontakten nach Excel

Das Exportieren von Outlook-Kontakten nach Excel
06.12.2017 16:23:38
Outlook-Kontakten
Guten Mittag,
folgenden Code habe ich einem älteren Beitrag entnommen:

Sub TEST_Read_Contact_from_Outlook()
'by Ramses
'Liest alle Kontakte aus Outlook in das aktuelle Tabellenblatt
Dim myOlk As Object
Dim myOlkContact As Object
Set myOlk = CreateObject("outlook.application")
Set myOlkContact = myOlk.CreateItem(2)
'ALTERCODE: Set myOlkContact = myOlk.CreateItem(olContactItem)
Range("A2").Select
For Each myOlkContact In myOlk.GetNamespace("MAPI").GetDefaultFolder(10).Items
'ALTERCODE: For Each myOlkContact In myOlk.GetNamespace("MAPI").GetDefaultFolder( _
olFolderContacts).Items
If TypeName(myOlkContact) = "ContactItem" Then
With myOlkContact
ActiveCell.Value = .Title ' Anrede
ActiveCell.Offset(0, 1).Value = .FirstName ' Vorname
ActiveCell.Offset(0, 2).Value = .MiddleName ' WeitereVornamen
ActiveCell.Offset(0, 3).Value = .LastName ' Nachname
ActiveCell.Offset(0, 4).Value = .Suffix ' Suffix
ActiveCell.Offset(0, 5).Value = .Companies ' Firma
ActiveCell.Offset(0, 6).Value = .Department ' Abteilung
ActiveCell.Offset(0, 7).Value = .JobTitle ' Position
ActiveCell.Offset(0, 8).Value = .BusinessAddressStreet ' Straßegeschäftlich
'ActiveCell.Offset(0, 9).Value = .Business2AddressStreet ' Straßegeschäftlich2
'ActiveCell.Offset(0, 10).Value = .Business3AddressStreet ' Straßegeschäftlich3
ActiveCell.Offset(0, 11).Value = .BusinessAddressCity ' Ortgeschäftlich
ActiveCell.Offset(0, 12).Value = .BusinessAddressState ' Regiongeschäftlich
ActiveCell.Offset(0, 13).Value = .BusinessAddressPostalCode ' Postleitzahlgeschäftlich
ActiveCell.Offset(0, 14).Value = .BusinessAddressCountry ' LandRegiongeschäftlich
ActiveCell.Offset(0, 15).Value = .HomeAddressStreet ' Straßeprivat
'ActiveCell.Offset(0, 16).Value = .Home2AddressStreet ' Straßeprivat2
'ActiveCell.Offset(0, 17).Value = .Home3AddressStreet ' Straßeprivat3
ActiveCell.Offset(0, 18).Value = .HomeAddressCity ' Ortprivat
ActiveCell.Offset(0, 19).Value = .HomeAddressState ' BundeslandKantonprivat
ActiveCell.Offset(0, 20).Value = .HomeAddressPostalCode ' Postleitzahlprivat
ActiveCell.Offset(0, 21).Value = .HomeAddressCountry ' LandRegionprivat
ActiveCell.Offset(0, 22).Value = .OtherAddressStreet ' WeitereStraße
'ActiveCell.Offset(0, 23).Value = .Other2AddressStreet ' WeitereStraße2
'ActiveCell.Offset(0, 24).Value = .Other3AddressStreet ' WeitereStraße3
ActiveCell.Offset(0, 25).Value = .OtherAddressCity ' WeitererOrt
ActiveCell.Offset(0, 26).Value = .OtherAddressState ' WeiteresrBundeslandKanton
ActiveCell.Offset(0, 27).Value = .OtherAddressPostalCode ' WeiterePostleitzahl
ActiveCell.Offset(0, 28).Value = .OtherAddressCountry ' WeitereseLandRegion
ActiveCell.Offset(0, 29).Value = .AssistantTelephoneNumber ' TelefonAssistent
ActiveCell.Offset(0, 30).Value = .BusinessFaxNumber ' Faxgeschäftlich
ActiveCell.Offset(0, 31).Value = .BusinessTelephoneNumber ' Telefongeschäftlich
ActiveCell.Offset(0, 32).Value = .Business2TelephoneNumber ' Telefongeschäftlich2
ActiveCell.Offset(0, 33).Value = .CallbackTelephoneNumber ' Rückmeldung
ActiveCell.Offset(0, 34).Value = .CarTelephoneNumber ' Autotelefon
ActiveCell.Offset(0, 35).Value = .CompanyMainTelephoneNumber ' TelefonFirma
ActiveCell.Offset(0, 36).Value = .HomeFaxNumber ' Faxprivat
ActiveCell.Offset(0, 37).Value = .HomeTelephoneNumber ' Telefonprivat
ActiveCell.Offset(0, 38).Value = .Home2TelephoneNumber ' Telefonprivat2
ActiveCell.Offset(0, 39).Value = .ISDNNumber ' ISDN
ActiveCell.Offset(0, 40).Value = .MobileTelephoneNumber ' Mobiltelefon
ActiveCell.Offset(0, 41).Value = .OtherFaxNumber ' WeiteresFax
ActiveCell.Offset(0, 42).Value = .OtherTelephoneNumber ' WeiteresTelefon
ActiveCell.Offset(0, 43).Value = .PagerNumber ' Pager
ActiveCell.Offset(0, 44).Value = .PrimaryTelephoneNumber ' Haupttelefon
'ActiveCell.Offset(0, 45).Value = .Mobile2TelephoneNumber ' Mobiltelefon2
'ActiveCell.Offset(0, 46).Value = 'KEINE Objektmodell bekannt ' TelefonfürHörbehinderte
ActiveCell.Offset(0, 47).Value = .TelexNumber ' Telex
ActiveCell.Offset(0, 48).Value = .BillingInformation ' Abrechnungsinformation
ActiveCell.Offset(0, 49).Value = .User1 ' Benutzer1
ActiveCell.Offset(0, 50).Value = .User2 ' Benutzer2
ActiveCell.Offset(0, 51).Value = .User3 ' Benutzer3
ActiveCell.Offset(0, 52).Value = .User4 ' Benutzer4
ActiveCell.Offset(0, 53).Value = .Profession ' Beruf
ActiveCell.Offset(0, 54).Value = .OfficeLocation ' Büro
ActiveCell.Offset(0, 55).Value = .Email1Address ' EMailAdresse
ActiveCell.Offset(0, 56).Value = .Email1AddressType ' EMailTyp
ActiveCell.Offset(0, 57).Value = .Email1DisplayName ' EMailAngezeigterName
ActiveCell.Offset(0, 58).Value = .Email2Address ' EMail2Adresse
ActiveCell.Offset(0, 59).Value = .Email2AddressType ' EMail2Typ
ActiveCell.Offset(0, 60).Value = .Email2DisplayName ' EMail2AngezeigterName
ActiveCell.Offset(0, 61).Value = .Email3Address ' EMail3Adresse
ActiveCell.Offset(0, 62).Value = .Email3AddressType ' EMail3Typ
ActiveCell.Offset(0, 63).Value = .Email3DisplayName ' EMail3AngezeigterName
ActiveCell.Offset(0, 64).Value = .ReferredBy ' Empfohlenvon
ActiveCell.Offset(0, 65).Value = .Birthday ' Geburtstag
ActiveCell.Offset(0, 66).Value = .Gender ' Geschlecht
ActiveCell.Offset(0, 67).Value = .Hobby ' Hobby
ActiveCell.Offset(0, 68).Value = .Initials ' Initialen
ActiveCell.Offset(0, 69).Value = .InternetFreeBusyAddress ' InternetFreiGebucht
ActiveCell.Offset(0, 70).Value = .Anniversary ' Jahrestag
ActiveCell.Offset(0, 71).Value = .Categories ' Kategorien
ActiveCell.Offset(0, 72).Value = .Children ' Kinder
ActiveCell.Offset(0, 73).Value = .Account ' Konto
ActiveCell.Offset(0, 74).Value = .AssistantName ' NameAssistent
ActiveCell.Offset(0, 75).Value = .ManagerName ' NamedesderVorgesetzten
ActiveCell.Offset(0, 76).Value = .body ' Notizen
ActiveCell.Offset(0, 77).Value = .OrganizationalIDNumber ' Organisationsnr
'ActiveCell.Offset(0, 78).Value = .Location ' Ort
ActiveCell.Offset(0, 79).Value = .Spouse ' Partner
ActiveCell.Offset(0, 80).Value = .BusinessAddressPostOfficeBox ' Postfachgeschäftlich
ActiveCell.Offset(0, 81).Value = .HomeAddressPostOfficeBox ' Postfachprivat
ActiveCell.Offset(0, 82).Value = .Importance ' Priorität
ActiveCell.Offset(0, 83).Value = .Sensitivity ' Privat
ActiveCell.Offset(0, 84).Value = .GovernmentIDNumber ' Regierungsnr
ActiveCell.Offset(0, 85).Value = .Mileage ' Reisekilometer
ActiveCell.Offset(0, 86).Value = .Language ' Sprache
'ActiveCell.Offset(0, 87).Value = 'KEINE Objektmodell bekannt ' Stichwörter
ActiveCell.Offset(0, 88).Value = .Sensitivity ' Vertraulichkeit
'ActiveCell.Offset(0, 89).Value = 'KEINE Objektmodell bekannt ' Verzeichnisserver
ActiveCell.Offset(0, 90).Value = .WebPage ' Webseite
ActiveCell.Offset(0, 91).Value = .OtherAddressPostOfficeBox ' WeiteresPostfach
End With
End If
ActiveCell.Offset(1, 0).Select
Next
Set myOlkContact = Nothing
Set myOlk = Nothing
End Sub

Dieser Code funktioniert auch sehr gut, zumindest bis Zeile 141. Denn ab hier läuft das Makro nicht mehr weiter, mit der Fehlermeldung "Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler".
Kann mir hierbei Bitte jemand weiterhelfen.
Vielen Dank!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Das Exportieren von Outlook-Kontakten nach Excel
06.12.2017 20:55:53
Outlook-Kontakten
Moin moin,
ich glaube dass dann in Outlook keine entsprechenden Daten eingepflegt wurden. Überprüfe mal die Einträge in Outlook.
Ich hatte den Fehler beim Datenexport von Access zu Excel da war nur ein Wert nicht eingetragen und dann stoppte das Makro. Wert eingetragen und alles fuzzte wieder...
Hans
Anzeige
Ausprobiert, läuft duchr
07.12.2017 04:23:46
Hans
Hallo,
ich hab gerade mal dein Makro in der Firma laufen lassen.
Hier sind 3690 Kundendaten in Outlook eingetragen und das Makro läuft durch....
MfG
Hans
AW: Das Exportieren von Outlook-Kontakten nach Excel
07.12.2017 11:49:25
Outlook-Kontakten
Hallo Alex,
hatte Deinen Code über ca. 5000 Einträge laufen lassen, klappt alles.
ABER, ich habe bei mir alle Verteilerlisten entfernt, die machten früher Probleme.
Um sicher zu sein, dass nur wirkliche Kontakte verarbeitet werden, prüfe ich die Objektklasse.
If MyFolderContacts.Items(L).Class = olContact Then
Set Kontakt = MyFolderContacts.Items(L)
Die einzelnen Einträge der Klasse 'Kontakt' lassen sich dann problemlos verarbeiten.
Vllt. willst Du das mal probieren, und per Debug-Stop beim ersten Auftreten einer anderen Klasse
den Inhalt prüfen.
Viel Erfolg,
Firmus
Anzeige
AW: Das Exportieren von Outlook-Kontakten nach Excel
08.12.2017 15:26:30
Outlook-Kontakten
Hallo Alex,
habe deinen Code ausprobiert. Leider wurden die Daten für "Firma" nicht übertragen.
Mit der Änderung auf .CompanyName hat es funktioniert.
ActiveCell.Offset(0, 5).Value = .CompanyName ' Firma
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Outlook-Kontakte nach Excel exportieren


Schritt-für-Schritt-Anleitung

Um Kontakte aus Outlook in Excel zu exportieren, kannst du den folgenden VBA-Code verwenden. Dieser Code liest alle Kontakte aus Outlook und überträgt sie in das aktuelle Excel-Arbeitsblatt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü "Einfügen" die Option "Modul".

  3. Füge den folgenden Code in das Modul ein:

    Sub TEST_Read_Contact_from_Outlook()
       Dim myOlk As Object
       Dim myOlkContact As Object
       Set myOlk = CreateObject("outlook.application")
       Set myOlkContact = myOlk.CreateItem(2)
       Range("A2").Select
       For Each myOlkContact In myOlk.GetNamespace("MAPI").GetDefaultFolder(10).Items
           If TypeName(myOlkContact) = "ContactItem" Then
               With myOlkContact
                   ActiveCell.Value = .Title ' Anrede
                   ActiveCell.Offset(0, 1).Value = .FirstName ' Vorname
                   ActiveCell.Offset(0, 5).Value = .CompanyName ' Firma
                   ' ... (weitere Felder)
               End With
           End If
           ActiveCell.Offset(1, 0).Select
       Next
       Set myOlkContact = Nothing
       Set myOlk = Nothing
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle das Makro TEST_Read_Contact_from_Outlook aus und klicke auf "Ausführen".

Jetzt sollten deine Outlook-Kontakte in Excel exportiert werden.


Häufige Fehler und Lösungen

  1. Laufzeitfehler '1004': Dieser Fehler tritt auf, wenn eine Zelle oder ein Wert nicht korrekt ist. Überprüfe die Einträge in deinem Outlook, um sicherzustellen, dass alle erforderlichen Felder ausgefüllt sind.

  2. Daten für "Firma" werden nicht übertragen: Stelle sicher, dass du den Code für die Firmenangabe änderst auf .CompanyName. Der ursprüngliche Code .Companies könnte in einigen Fällen zu Problemen führen.

  3. Makro stoppt bei bestimmten Einträgen: Wenn du Verteilerlisten oder andere Klassen importierst, kann es zu Problemen kommen. Füge eine Überprüfung der Objektklasse hinzu, um nur echte Kontakte zu verarbeiten.


Alternative Methoden

  • Exportfunktion von Outlook: Du kannst auch die integrierte Exportfunktion in Outlook verwenden, um Kontakte als CSV-Datei zu exportieren. Diese Datei kann anschließend in Excel importiert werden.
  • Excel-Vorlagen: Verwende Excel-Vorlagen, die speziell für den Import von Kontakten aus Outlook gestaltet sind. Diese können die Formatierung erleichtern.

Praktische Beispiele

Wenn du Outlook-Kontakte in Excel exportierst, kannst du auch spezielle Daten wie Geburtstage oder Kategorien übertragen. Hier ist ein Beispiel für das Hinzufügen von Geburtstagsdaten:

ActiveCell.Offset(0, 65).Value = .Birthday ' Geburtstag

Durch das Anpassen des Codes kannst du auch andere relevante Informationen wie E-Mail-Adressen importieren:

ActiveCell.Offset(0, 55).Value = .Email1Address ' E-Mail-Adresse

Tipps für Profis

  • Debugging: Nutze die Debugging-Funktionen im VBA-Editor, um den Code Schritt für Schritt auszuführen und Probleme zu identifizieren.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um das Skript robuster zu machen. Beispielsweise kannst du versuchen, Fehler abzufangen und den Benutzer über das Problem zu informieren.
  • Makros automatisieren: Du kannst den Export regelmäßig automatisieren, indem du das Makro zu einem bestimmten Zeitpunkt ausführst.

FAQ: Häufige Fragen

1. Wie kann ich meine Excel-Geburtstagsliste in Outlook importieren?
Du kannst die Excel-Datei in Outlook importieren, indem du die Importfunktion von Outlook nutzt und sicherstellst, dass die Spaltenüberschriften korrekt sind.

2. Funktioniert dieser Code auch in älteren Excel-Versionen?
Ja, der Code sollte in den meisten Versionen von Excel ab 2010 funktionieren. Achte darauf, dass du Outlook korrekt konfiguriert hast.

3. Was mache ich, wenn nicht alle Kontakte exportiert werden?
Überprüfe die Einstellungen in Outlook und stelle sicher, dass alle Kontakte im richtigen Ordner gespeichert sind. Manchmal können Filter oder Ansichten die Sichtbarkeit beeinflussen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige