Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Syncronisieren mit Outlook

Syncronisieren mit Outlook
05.10.2005 19:45:43
Thomas
Moin!
Ich möchte Daten aus einer Tabelle in das Outlook-Adressbuch übertragen. Bisher habe ich folgendes Macro:
&ltpre&gt
Private Sub CommandButton1_Click()
Dim trOlApp As New Outlook.Application
Dim trNamespace As Outlook.Namespace
Dim trFolder As Outlook.MAPIFolder
Dim trItem As Outlook.ContactItem
Dim trArre As Worksheet
Dim wsReser As Worksheet
Set trArre = ThisWorkbook.Sheets("Archiv-Reser")
Set trNamespace = trOlApp.GetNamespace("MAPI")
Set trFolder = trNamespace.GetDefaultFolder(olFolderContacts).Folders("Pension")
Set trItem = trFolder.Items.Add
Set trattachments = trItem.Attachments
Rem Stop
With trItem
.FileAs = trArre.Range("N2") & " " & trArre.Range("M2")
.FullName = trArre.Range("M2") & " " & trArre.Range("N2")
.Body = trArre.Range("V2")
.BusinessAddress = trArre.Range("N2")
.BusinessAddressCity = trArre.Range("S2")
.BusinessAddressPostalCode = trArre.Range("R2")
.BusinessAddressStreet = trArre.Range("Q2")
.BusinessFaxNumber = trArre.Range("X2")
.BusinessTelephoneNumber = trArre.Range("W2")
.CompanyName = trArre.Range("P2")
.Email1Address = trArre.Range("T2")
.Email1DisplayName = trArre.Range("M2") & " " & trArre.Range("N2")
.Save
End With
End Sub&lt/pre&gt
Jetzt einige Fragen dazu:
Wie ich das herausgelesen habe ist die Funktion .Attachment für das hinzufügen von Anlagen zuständig. Ich bekomme es aber nicht hin, eine auf Festplatte abgespeicherte Datei dem Kontakt mit hinzuzufügen. Wie wird dieser Befehl in diesem Fall angewandt?
Weiterhin möchte ich das Macro dazu bringen, dass es vor dem Eintrag ins Adressbuch überprüft, ob es diesen Eintrag schon gibt. Wenn ja, soll er nur die fehlenden Daten ergänzen und die Anlage hinzufügen. Wie stellt man das am dümmsten an? Dafür habe ich gar keine Funktion gefunden.
Danke,
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Syncronisieren mit Outlook
05.10.2005 21:47:07
Ramses
Hallo
Es wäre mir sehr neu, wenn zu Kontakten Attachments hinzugefügt werden könnten.
Um zu überprüfen ob es den Eintrag schon gibt, musst du dir eine Schleife programmieren, welche alle Kontakte vorher durchfräst, auf eine Eindeutigkeit überprüft (Name und Vorname genügen eben nicht )
Danach könntest du die einzelenen Felder vergleichen und anschliessend updaten.
Gruss Rainer
AW: Syncronisieren mit Outlook
06.10.2005 11:08:05
bst
Auch Hallo,
@Rainer,
das geht schon. Interaktiv via Menue Einfügen-Datei im '.Body'.
@Thomas,
mit "Dim trattachments As Outlook.Attachments" nimm sowas:
trattachments.Add "d:\daten\x.txt"
HTH, Bernd
Anzeige
AW: Syncronisieren mit Outlook
06.10.2005 11:43:06
Thomas
Moin bst!
Das ist der Hammer!
Das funktioniert allerbest! Danke! Mein Macro sieht zur Zeit so aus und mal davon abgesehen, dass es ihm egal ist ob ein Eintrag schon vorhanden ist und einfach noch einen Kontakt hinzufügt ist das genial!
&ltpre&gt
Private Sub CommandButton1_Click()
Dim trOlApp As New Outlook.Application
Dim trNamespace As Outlook.Namespace
Dim trFolder As Outlook.MAPIFolder
Dim trItem As Outlook.ContactItem
Dim trArre As Worksheet
Dim trReser As Worksheet
Dim trAttachments As Outlook.Attachments
Dim wsReser As Worksheet
Set trNamespace = trOlApp.GetNamespace("MAPI")
Set trFolder = trNamespace.GetDefaultFolder(olFolderContacts).Folders("Pension")
Set trItem = trFolder.Items.Add
Set trAttachments = trItem.Attachments
Set trArre = ThisWorkbook.Sheets("Archiv-Reser")
Set trReser = ThisWorkbook.Sheets("Erfassung-Reser")
Set wsReser = ThisWorkbook.Sheets("Reservierungsbestätigung")
trAttachments.Add ("D:\Pension\Reservierungsbestätigungen\" & "Reservierung-Sachsenzimmer" & "-" & wsReser.Range("D22") & ".pdf")
Rem Stop
With trItem
.FileAs = trArre.Range("N2") & " " & trArre.Range("M2")
.FullName = trArre.Range("M2") & " " & trArre.Range("N2")
.Body = trArre.Range("V2")
.BusinessAddress = trArre.Range("N2")
.BusinessAddressCity = trArre.Range("S2")
.BusinessAddressPostalCode = trArre.Range("R2")
.BusinessAddressStreet = trArre.Range("Q2")
.BusinessFaxNumber = trArre.Range("X2")
.BusinessTelephoneNumber = trArre.Range("W2")
.CompanyName = trArre.Range("P2")
.Email1Address = trArre.Range("T2")
.Email1DisplayName = trArre.Range("M2") & " " & trArre.Range("N2")
.Save
End With
End Sub&lt/pre&gt
Dankt!
Thomas
Anzeige
AW: Syncronisieren mit Outlook
06.10.2005 11:08:56
Thomas
Moin Ramses!
Ich weis dass meine Fragen hier im Forum nicht gerade die besten sind, aber ich muß trotz dem noch mal nachfragen.
Ich habe die halbe Nacht an der Schleife gebastelt und komme nicht weiter!
Hier mal meine Überlegungen:
Damit das ganze erst einmal auf "Richtigkeit" überprüft wird soll er schauen ob das Anreisedatum eingetragen ist, denn ohne Anreisedatum ist keine Reservierung möglich - also habe ich folgendes eingefügt:
' Fehler wenn kein Anreisedateum eingetragen
If IsEmpty(trReser.Range("B3")) Then
MsgBox "Ohne ein Anreisedatum kann die Bearbeitung nicht erfolgen!", vbCritical
Exit Sub
End If
~f~
________________________________________________________________________________________
Jetzt zu Deiner Schleife in der ich ja erst einmal angeben muß was er machen soll:
~f~
lngZeile = trReser.Range("A65536").End(xlUp).Row + 1
sp = 1
~f~
aber das stimmt ja schon nicht weil er sich ja auf die Outlookfelder beziehen soll!? Oder sehe ich da was falsch!?
________________________________________________________________________________________
Jetzt zur Schleife selbst:
~f~
' B9:B10 nach Spalten H-I
For zz = 9 To 10
trReser.Cells(lngZeile, sp) = ?.Cells(zz, 2)
sp = sp + 1
Next zz
Diese Schleife setze ich für einen Übertrag von einer Tabelle in die nächste ein. Aber das geht ja in diesem Fall nicht!? Woher nehme ich die Adressierung der Outlookfelder!?
________________________________________________________________________________________
Zu den Attachments:
Ich hatte diese Funktion nur beim Stöbern im Objektkatalog gefunden und da hat sich mein Anfängerhirn so gedacht dass alle Dokumente (Rechnungen und Reservierungsbestätigungen) gleich mit als Anlage in den Kontakt eingefügt werden. Dass dies nicht geht war mir dabei nicht bewußt.
________________________________________________________________________________________
Jetzt noch was lustiges:
Sitze ich doch gestern abend (bzw. Nacht) so am Rechner und bastel "etwas" rum weil ich die Kontakte ja in Outlook haben möchte. Beim Suchen nach einer Lösung bin ich auf ein Macro gestoßen was genau das Gegenteil macht. Kontakte aus Outlook in Excel importieren. Jo, was soll ich sagen... Der Aufbau des Macros erschien mir logisch und auch teilweise nachvollziehbar. Überlesen hatte ich im Macro, dass die Kontakte nach dem auslesen alle gelöscht werden. Nun nach dem ausführen des Macros konnte ich zusehen wie über 260 Kontakte mit einer genialen Geschwindigkeit einfach verschwanden :-)
Jetzt denkt sich mein "Superschlaues" Hirn ... egal, hast ja alle Kontakte noch im PDA. Also PDA in die Dockingstation und ruck-zuck waren auch alle Kontakte im PDA ebenfalls gelöscht weil die Regel des Syncronisierens so ausgelegt ist, dass alle geänderten Kontakte abgeglichen werden. Geändert wurden die Einträge in Outlook und so wurden sie dann auch automatisch im PDA "geändert" :-)
Zum Glück achte ich peinlich genau auf Datensicherung und so war alles rellativ "schnell" wieder hergestellt.
Aber: so kann´s gehen!
Gruß,
Thomas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige