Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Outlook - VBA Parameter

Frage Entwicklung VB for Applications

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

12.06.2008, aktualisiert 13.06.2008, 11855 Aufrufe, 7 Kommentare

Hi Jungs,
ich bastel gerade mal wieder ein VBA Script zusammen. Dieses mal für meine Mutti...

Es wird folgendes realisiert: Über ein VBA Makro in Outlook 2003 werden alle Kontakte ausgelesen, die das Feld "Firma" nicht leer haben. Diese Kontakte werden dann in in eine neue Exceltabelle expotiert. Dabei werden natürlich nur bestimmte Felder importiert. Zu 95% habe ich alles zusammen, jedoch habe ich 2-3 Probleme wo ich nicht weiter komme.

1. Problem:
Es wurde in einigen Kontakten das Feld "Notizen" verwendet.

36fb40bb93163a33402b7254882f88d2-details - Klicke auf das Bild, um es zu vergrößern

Wie genau heißt das Feld im VBA? itmContacts. ???

2. Problem:
Es wurden 2 benutzerdefinierte Felder (Linie, FirmenNr) im Bereich Kontakte anlegt. Wie kann ich über VBA diese Felder auslesen. Denn wenn ich itmContacts. schreibe und dann STRG+Leertaste drücke erscheint das Drop-Down Menü. Dort werden leider nur die Standardfelder aufgeführt!

3. Problem:
Ich möchte zum Schluss aus diesem Makro heraus alle Zellen einen Rahmen verpassen. Die Möglichkeit, wie ich es bei einer einzelnen Zelle mache, habe ich gefunden aber es gibt bestimmt noch eine bessere Lösung als für jede Zelle eine VBA-Zeile zu schreiben.

Das Script wie es bis jetzt steht:
01.
ub ContactsToExcel() 
02.
 
03.
'Deklaration 
04.
Dim nspMapi As Outlook.NameSpace 
05.
Dim folMapi As Outlook.MAPIFolder 
06.
Dim itmAll As Outlook.Items 
07.
Dim itmReal As Outlook.Items 
08.
Dim itmContacts As Outlook.ContactItem 
09.
Dim strContactFilter As String 
10.
Dim excApp As Object 
11.
Dim excWkb As Object 
12.
Dim excWks As Object 
13.
Dim intRow As Integer 
14.
 
15.
'Outlook-Objekte öffnen 
16.
Set nspMapi = Application.GetNamespace("MAPI") 
17.
Set folMapi = nspMapi.GetDefaultFolder(olFolderContacts) 
18.
Set itmAll = folMapi.Items 
19.
 
20.
'Verteilerlisten herausfiltern, nur 'Richtige Kontakte' verwenden 
21.
strContactFilter = "[MessageClass] = 'IPM.Contact'" 
22.
Set itmReal = itmAll.Restrict(strContactFilter) 
23.
 
24.
'Excel-Objekte öffnen 
25.
Set excApp = CreateObject("Excel.Application") 
26.
Set excWkb = excApp.Workbooks.Add 
27.
Set excWks = excWkb.Sheets(1) 
28.
 
29.
'Erstes Sheet Excel-Worksheet aufbereiten 
30.
With excWks 
31.
 
32.
'Sheet-Name 
33.
.Name = "Outlook-Kontakte" 
34.
 
35.
'Spaltenüberschriften 
36.
.cells(1, 1).Value = "Firma" 
37.
'.cells(1, 2).Value = "Nachname" 
38.
'.cells(1, 3).Value = "Vorname" 
39.
.cells(1, 2).Value = "PLZ" 
40.
.cells(1, 3).Value = "Ort" 
41.
.cells(1, 4).Value = "Strasse" 
42.
.cells(1, 5).Value = "Land" 
43.
.cells(1, 6).Value = "Telefon" 
44.
.cells(1, 7).Value = "Fax" 
45.
.cells(1, 8).Value = "Homepage" 
46.
.cells(1, 9).Value = "E-Mail" 
47.
.cells(1, 10).Value = "KundenNr." 
48.
.cells(1, 11).Value = "Linie" 
49.
.cells(1, 12).Value = "Notizen" 
50.
 
51.
 
52.
'Spaltenüberschriften fett 
53.
.Rows("1:1").Font.Bold = True 
54.
 
55.
'Outlook-Kontakte nach Excel übertragen 
56.
intRow = 2 
57.
 
58.
For Each itmContacts In itmReal 
59.
    If (itmContacts.CompanyName <> "") Then 
60.
        .cells(intRow, 1).Value = itmContacts.CompanyName 
61.
        '.cells(intRow, 2).Value = itmContacts.LastName 
62.
        '.cells(intRow, 3).Value = itmContacts.FirstName 
63.
        .cells(intRow, 2).Value = itmContacts.BusinessAddressPostalCode 
64.
        .cells(intRow, 3).Value = itmContacts.BusinessAddressCity 
65.
        .cells(intRow, 4).Value = itmContacts.BusinessAddressStreet 
66.
        .cells(intRow, 5).Value = itmContacts.BusinessAddressCountry 
67.
        .cells(intRow, 6).Value = itmContacts.BusinessTelephoneNumber 
68.
        .cells(intRow, 7).Value = itmContacts.BusinessFaxNumber 
69.
        .cells(intRow, 8).Value = itmContacts.BusinessHomePage 
70.
        .cells(intRow, 9).Value = itmContacts.Email1Address 
71.
        .cells(intRow, 10).Value = itmContacts.CustomerID 
72.
        '.cells(intRow, 11).Value = itmContacts.im 
73.
         
74.
        intRow = intRow + 1 
75.
    End If 
76.
 
77.
 
78.
Next itmContacts 
79.
 
80.
'Optimale Spaltenbreite 
81.
.Columns.AutoFit 
82.
End With 
83.
 
84.
'Excel einblenden 
85.
excApp.Visible = True 
86.
 
87.
'Speicher freigeben 
88.
Set itmReal = Nothing 
89.
Set itmAll = Nothing 
90.
Set folMapi = Nothing 
91.
Set nspMapi = Nothing 
92.
Set excWks = Nothing 
93.
Set excWkb = Nothing 
94.
Set excApp = Nothing 
95.
 
96.
End Sub

Gruss,
Dani
Mitglied: bastla
12.06.2008 um 22:39 Uhr
Hallo Dani!

Leider habe ich nur für (das vermutlich kleinste) Problem 3 einen Tipp:
01.
For i = 7 To 12 
02.
    With .Cells(1, 1).CurrentRegion.Borders(i) 
03.
        .LineStyle = xlContinuous 
04.
        .Weight = xlThin 
05.
    End With 
06.
Next
Damit wird über den gesamten Datenbereich ein einfaches Gitternetz gelegt.

Grüße
bastla
Bitte warten ..
Mitglied: Dani
12.06.2008 um 22:54 Uhr
Hi bastla,
besser wir gar nicht...

Ich habe die paar Zeilen gerade in meinem Outlook in den VBA-Editor kopiert. Jedoch erhalte ich die Meldung, dass "xlContinuous" nicht definiert ist. <grübel>


Gruss,
Dani
Bitte warten ..
Mitglied: bastla
12.06.2008 um 22:59 Uhr
Hallo Dani!

Sorry - habe ich zu ersetzen vergessen (Outlook kennt natürlich keine Excel-VBA-Konstanten).

Nimm für "xlContinuous" den Wert 1 und für "xlThin" den Wert 2 (oder lege Konstante mit diesen Werten fest, um den Code lesbarer zu halten).

Grüße
bastla
Bitte warten ..
Mitglied: Dani
12.06.2008 um 23:17 Uhr
Hi bastla,
also da passt noch was nicht....er zeigt mir auch "With..." als Error an ("Sub oder Function nicht definiert").

An welcher Position genau, soll ich die 5 Zeilen einfügen. Vllt liegts daran..


Gruss,
Dani
Bitte warten ..
Mitglied: bastla
12.06.2008 um 23:24 Uhr
Hallo Dani!

Füge den Code zwischen den Zeilen 81 und 82 ein (und setze vor "Cells ..." noch einen Punkt - den trage ich oben auch noch nach).

Grüße
bastla
Bitte warten ..
Mitglied: Dani
12.06.2008 um 23:30 Uhr
Ok, die Stelle hat gepasst. Aber auf den Punkt bin ich nicht gekommen. Funktioniert.... Danke!

Hier noch der Nachtrag für die beiden anderen Probleme:
01.
        .Cells(intRow, 11).Value = itmContacts.User1 
02.
        .Cells(intRow, 12).Value = itmContacts.Body
Es gibt noch 4 standardmäßig vorhandene Benutzerdefinierte Felder und die Notizen findet man unter "Body". Naja, M$ eben...


Danke für deine Zeit.


Gruss,
Dani
Bitte warten ..
Mitglied: Aenex77
13.06.2008 um 09:41 Uhr
Vielleicht noch ein kleiner Hinweis, wenn man Openoffice hat kann man über Base direkt das Outlook Adressbuch als Datenbankquelle einbinden. Dort sieht man dann auch die Feldbezeichner sämmtlicher Einträge....

Gruss Andreas
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Outlook VBA - Anhang autom. speichern
gelöst Frage von sokraTonisVB for Applications8 Kommentare

Hallo, ich bekomme an eine bestimmte E-Mail-Adresse immer wieder Nachrichten mit einem Anhang. Der Name vom Anhang ist immer ...

VB for Applications
VBA: Automatische Vor- und Nachbereitungszeit bei Outlook-Terminen
Frage von SinnidwVB for Applications4 Kommentare

Hallo zusammen, ich habe gelesen, dass es möglich ist, über ein Outlook-Makro bei jedem eingetragenen Termin automatisch eine Vor- ...

VB for Applications
Excel VBA Emailzugriff Berechtigunganfrage von Outlook
Frage von chef1568VB for Applications8 Kommentare

Hallo, ich habe ein kleines VBA-Script geschrieben, dass mir den HTML-Inhalt einer Email ausliest und in ein Array schreibt. ...

Microsoft Office
Importieren von excel daten in outlook vba
gelöst Frage von BgervaisMicrosoft Office10 Kommentare

Hallo, mein Deutsch ist nicht so gut, aber ich versuche es trotzdem. (Excel und Outlook - Deutsch Sprache) ich ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...