Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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
Inhaltsverzeichnis

Online-Excel "Outlook und Excel (5)"

Online-Excel "Outlook und Excel (5)"
23.01.2016 19:38:39
silex1
Hallo,
dies ist kein CP. Hab leider im UP-Forum keine Antwort erhalten, da dort ggf. nur Formelfreaks unterwegs sind...
Hab auf Online-Excel folgenden Code gefunden
http://www.online-excel.de/excel/singsel_vba.php?f=89
Private Sub CommandButton1_Click()
'(C) by Ramses
'Verweis auf die Outlook Library muss gesetzt sein
'Variablen Deklaration
Dim MyOutId As Integer
Dim MyOutFolder As Object
Dim MyOutApp As Object
Dim MyConItem As Object
Dim Qe As Integer
Dim ErrMsg As String
'Bildschirmaktualisierung ausschalten
'Application.DisplayAlerts = False
'... und Statusbar-Info ausgeben
Application.StatusBar = " die Adressen werden aus Outlook geholt " _
& " - das kann einen Moment dauern."
'Object Deklaration
Set MyOutApp = CreateObject("Outlook.Application")
'Zugriff auf die MAPI Schnittstelle
Set MyOutFolder = MyOutApp.GetNamespace("MAPI").GetDefaultFolder(10)
'Zuweisen der Anzahl Spalten in der Listbox
Me.ListBox1.ColumnCount = 7
'Zuweisen der Spaltenbreite in Pt
'1 cm ~ 28,3 Pt
Me.ListBox1.ColumnWidths = "70; 70; 28; 70; 28; 70; 70"
'Einlesen der Daten
For MyOutId = 1 To MyOutFolder.Items.Count
'Zuweisen des Object für jeden Contact
Set MyConItem = MyOutFolder.Items(MyOutId)
'Einlesen des Contacts beginnen
With MyConItem
'Neuen Eintrag in Listbox einfügen
Me.ListBox1.AddItem " "
'ListIndex - 1 um auf das vorher erzeugte Item zuzugreifen
On Error GoTo conError
Me.ListBox1.List(MyOutId - 1, 0) = .FirstName & " " & .LastName
'Statusbar Information anzeigen
'um den Benutzer den Fortschritt anzuzeigen
Application.StatusBar = "Datensatz " & MyOutId & " von " & MyOutFolder.Items.Count & _
" wird gelesen: " & .FirstName
If .BusinessAddressPostOfficeBox = "" Then
Me.ListBox1.List(MyOutId - 1, 1) = .BusinessAddressStreet
Else
Me.ListBox1.List(MyOutId - 1, 1) = .BusinessAddressPostOfficeBox
End If
Me.ListBox1.List(MyOutId - 1, 2) = .BusinessAddressPostalCode
Me.ListBox1.List(MyOutId - 1, 3) = .BusinessAddressCity
Me.ListBox1.List(MyOutId - 1, 4) = .CustomerID
Me.ListBox1.List(MyOutId - 1, 5) = .AssistantName
Me.ListBox1.List(MyOutId - 1, 6) = .MiddleName
ErrorStepin:
End With
Next MyOutId
ErrorExit:
'Object Variablen leeren
Set MyConItem = Nothing
Set MyOutFolder = Nothing
Set MyOutApp = Nothing
'Bildschirm einschalten
Application.DisplayAlerts = True
'Statusbar zurücksetzen
Application.StatusBar = False
Exit Sub
conError:
Select Case Err
Case 438
'Es kann sein, dass ein Datensatz korrupt ist, aber in Outlook korrekt angezeigt  _
wird
'Allerdings können diese Datensätze nicht mit externen Geräte synchronisiert werden
Set MyConItem = MyOutFolder.Items(MyOutId)
ErrMsg = "Datensatz " & MyOutId & " ist korrupt, oder unterstützt die Abfrage nicht. _
ErrMsg = ErrMsg & vbCrLf & "Datensatzkennung:"
ErrMsg = ErrMsg & vbCrLf & "Erstelldatum: " & MyConItem.CreationTime
ErrMsg = ErrMsg & vbCrLf & "ObjectID" & MyConItem.EntryID
ErrMsg = ErrMsg & vbCrLf
ErrMsg = ErrMsg & vbCrLf & "Löschen ? "
Qe = MsgBox(ErrMsg, vbYesNo + vbCritical + vbDefaultButton2, "Datenfehler")
If Qe = vbYes Then
MyConItem.Delete
MsgBox ("Datensatz " & MyOutId & " wurde gelöscht")
'Listenzählung korrigieren
MyOutId = MyOutId + 1
Me.ListBox1.ListIndex(MyOutId).Delete
Resume ErrorStepin
Else
MsgBox "Datenimport wegen Datenfehler bei Datensatz " & MyOutId & " abgebrochen" _
Resume ErrorExit
End If
Case Else
MsgBox Err & ": " & Err.Description
Resume ErrorExit
End Select
End Sub
Als VBA-DAU hab ich ne Userform geformt, nen Commandbutton Kommandos gegeben und ne ListBox geboxt.
https://www.herber.de/bbs/user/102989.xlsm
Läuft auch super (nur die ContactItems müssten noch genauer angesprochen werden, denn es scheint Unterschiede in den OL Versionen zu geben?...ist aber lösbar...i hope...).
In XL13 bekomme ich jedoch ne Fehlermeldung in
On Error GoTo conError
Me.ListBox1.List(MyOutId - 1, 0) = .FirstName & " " & .LastName
Scheint aber wohl mit dem o.g. ContactItems zusammen zu hängen, denn nach Löschung der Passage war alles gut.
Nun aber zum eigentlichen Problem. Es ist kein Problem, es ist meine Wand, durch die ich möchte. *lol*
Im Eingang des o.g. Beitrags steht folgendes:
"Die Kontaktdaten können in der Listbox ausgewählt und weiter verwendet werden."
Ich bin ein VBA DAU und wie kann ich die weiter verwenden?
Ausschnippeln?
Den Bildschirm abheften? *lol*
Kann mir da jemand bitte weiter helfen?
Ich hätte gerne, wenn ich die betreffende Zeile in der Listbox anklicke, dass diese den Text verteilt. Also in das aktuelle Blatt (UF kann nur in einem Blatt aufgerufen werden!) einträgt, den Name in A1, die Adresse in A2, die PLZ und der Ort in A3 und die I-Mehl in A5 z.B.
Und toll wäre auch, wenn ich nur "SCH" z.B. eingeben müsste (in einem Suchfeld innerhalb der Userform) und alle Namen mit Beginn "SCH" in der Listbox erscheinen könnten.
lg Rene und seine 3 Gehirnzellen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ausgewählten Listboxeintrag in Tabelle schreiben
24.01.2016 11:31:17
Christian
Hallo Rene,
Wenn du Email, PLZ, etc. aus der Listbox in die Tabelle schreiben willst, musst du diese zuvor auch von Outlook in die Listbox übertragen.
Bsp: Me.ListBox1.List(MyOutId - 1, 6) = .Email1Address
bzw: .BusinessAddressPostalCode für die PLZ.
Den ausgewählten Eintrag aus der Listbox kannst z.B wie folgt in die Tabelle übertragen:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Long
With Me.ListBox1
For i = 1 To .ColumnCount
Sheets("Tabelle1").Cells(i, 1) = .List(.ListIndex, i - 1)
Next
End With
End Sub
Grüße
Christoph

Anzeige
AW: ausgewählten Listboxeintrag in Tabelle schreiben
24.01.2016 14:50:53
silex1
Hallo Christoph,
die Daten werden schon von dem geposteten Code in die Listbox eingelesen. Ich muss halt nur noch genau herausfinden, welche Items nun ich brauche, aber dies ist nicht das Problem.
Vielen Dank für Deinen Code und nun wird die Liste auch brav übertragen und ich kann sie weiter verwenden. Die Vorherigen Auswahl oder Suche, muss nicht unbedingt sein, denn die Kontakte sind überschaubar.
Also vielen Dank noch mal für Deine Hilfe
VG René

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige