Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kontake aus Outlook nach Excel (variabel)

Kontake aus Outlook nach Excel (variabel)
19.10.2005 12:04:16
Matthias_FFM
Hallo Excel-Experten,
ich habe mir die folgende Programmierung von Ramses aus dem Forum "gesaugt", komme jetzt aber nicht weiter:
Sub Read_Contact_from_Outlook()
'by Ramses
'Liest alle Kontakte aus Outlook in das aktuelle Tabellenblatt
Dim myOlk As Object
Dim myOlkContact As Object
Dim iCounter As Integer, i As Integer
Dim workingFolder
Set myOlk = CreateObject("outlook.application")
Set myOlkContact = myOlk.CreateItem(olContactItem)
Sheets(1).Select
Cells.Select
Selection.ClearContents
Range("c2").Select
For Each myOlkContact In myOlk.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items
With myOlkContact
ActiveCell.Value = .Email1Address
ActiveCell.Offset(0, 1).Value = .LastName
ActiveCell.Offset(0, 2).Value = .FirstName
ActiveCell.Offset(0, 3).Value = .Title
ActiveCell.Offset(0, 4).Value = .MobileTelephoneNumber
ActiveCell.Offset(0, 5).Value = .Birthday
ActiveCell.Offset(0, 6).Value = .Categories
ActiveCell.Offset(0, 7).Value = .HomeAddressStreet
ActiveCell.Offset(0, 8).Value = .HomeAddressPostalCode
ActiveCell.Offset(0, 9).Value = .HomeAddressCity
ActiveCell.Offset(0, 10).Value = .HomeAddressCountry
ActiveCell.Offset(0, 11).Value = .HomeAddressState

etc etc.....
Die Infos aus Outlook werden so prima in Sheets(1)eingelesen.
Nun lese ich über eine Listbox alle (theoretisch) verfügbaren Datenfelder (.LastName, .FirstName etc) ein und nach 'multiselect'-Klicks wird die Auswahl des Users (z. B. .LastName, .birthday etc) nach Sheets(2) A1 bis A10 geschrieben.
Über diese variable Auswahl (also Inhalt von A1 bis A10) sollen dann die Kontakte aus Outlook importiert werden.
Ersetzte ich in der obigen Programmierung z. B. das Feld .LastName durch eine Variable, die den Wert von A1 zugewiesen bekommen hat, erscheint nach Import aus Outlook nicht der Wert aus dem Outlook-Kontakt, sondern der Inhalt von Zelle A1 (für Profis sicherlich logisch).
Wie könnte die Lösung aussehen? Vielen Dank für Eure Tipps....
Matthias_FFM

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontake aus Outlook nach Excel (variabel)
19.10.2005 13:06:50
MichaV
Hallo,
ja, das geht so nicht.
Du könntest es so machen:
if listbox1.selected(0) then ActiveCell.Value = .Email1Address
if listbox1.selected(1) then ActiveCell.Offset(0, 1).Value = .LastName
if listbox1.selected(2) then ActiveCell.Offset(0, 2).Value = .FirstName
if listbox1.selected(3) then ActiveCell.Offset(0, 3).Value = .Title
usw.
Gruss- Micha
PS: Rückmeldung wäre nett.
AW: Kontake aus Outlook nach Excel (variabel)
19.10.2005 13:49:02
Matthias_FFm
Hallo Micha,
danke für den Hinweis, werde ich gleich testen...
Gibt es denn keine Lösung die Auswahl der Listbox in ein Sheet zu schreiben und von dort aus als "Quelle" für Outlook.
LG
Matthias
Anzeige
AW: Kontake aus Outlook nach Excel (variabel)
19.10.2005 16:51:55
MichaV
Hallo,

Gibt es denn keine Lösung die Auswahl der Listbox in ein Sheet zu schreiben und von dort aus als "Quelle" für Outlook.

was meinst Du denn damit?
Gruß- Micha
PS: Rückmeldung wäre nett.
Danke MichaV....
19.10.2005 18:47:52
Matthias_FFM
Hallo Micha,
habe Deine Lösung umgesetzt....
Nur zur Erklärung: Bei Deinem Ansatz werden die Spalten fix vergeben und zeigen, falls keine Auswahl in der Listbox, in der Zieltabelle/-Spalte (nach Import aus Outlook) auch keine Werte und müssen dann gelöscht werden.
Bei meiner Idee (leider kann ich sie nicht umsetzen) würden z. B. im Bereich A1 bis A10 in Tabelle2 ersteinmal nur die durch den User angeklickten Datenfelder der Reihe nach "auftauchen" (z. B. in A1= .LastName und in A2= .FirstName). Danach wollte ich A1 und A2 etc einer Variablen zuordnen und,wie in der Eingangsfrage gestellt, über die Routine in Sheets(1) wie gehabt die Kontakte aus Outlook auslesen.
Aber kein Problem, ich lösche jetzt die leeren Spalten nach Import aus Outlook.
Falls Dir noch eine Idee einfällt, gerne......
Einen schönen Abend!
LG Matthias aus FFM
Anzeige
AW: Danke MichaV....
20.10.2005 09:43:08
MichaV
Hallo,
müsste so gehen:
x=0
For Each....
if listbox1.selected(0) then ActiveCell.Offset(0,x).Value = .Email1Address:x=x+1
if listbox1.selected(1) then ActiveCell.Offset(0,x).Value = .LastName:x=x+1
if listbox1.selected(2) then ActiveCell.Offset(0,x).Value = .FirstName:x=x+1
if listbox1.selected(3) then ActiveCell.Offset(0,x).Value = .Title:x=x+1
usw.
Also immer wenn ein Eintrag gemacht wurde wird der Spalten- Offset um 1 erhöht.
Gruss- Micha
PS: Rückmeldung wäre nett.
Perfekt..... vielen Dank (oT)
20.10.2005 14:08:06
Matthias_FFM

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige