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

Alle Verteiler erweitern

Mitglied: Uppe

Uppe (Level 1) - Jetzt verbinden

04.03.2010 um 10:31 Uhr, 2880 Aufrufe, 1 Kommentar

Hallo,

mit Hilfe diverser Foren habe ich folgenden Code zusammengebastelt:
01.
Private Sub CommandButton1_Click()
02.

03.
'Deklaration
04.
Dim OutApp As Object
05.
Dim nspMapi As Object
06.
Dim folMapi As Object
07.
Dim itmAll As Object
08.
Dim itmReal As Object
09.
Dim itmDistList As Object
10.
Dim strContactFilter As String
11.
Dim excApp As Object
12.
Dim excWkb As Object
13.
Dim excWks As Object
14.
Dim intRow As Integer
15.
Dim i As Integer
16.
Dim j As Integer
17.
Dim k As Integer
18.

19.
Set OutApp = CreateObject("Outlook.Application")
20.
'Outlook-Objekte öffnen
21.
Set nspMapi = OutApp.GetNamespace("MAPI")
22.
'Set folMapi = nspMapi.GetDefaultFolder(olFolderContacts)
23.
'Ordner auswählen
24.
Set folMapi = nspMapi.Folders.Item("Public Folders").Folders.Item("Contacts")
25.
Set itmAll = folMapi.Items
26.

27.
'nur Verteilerlisten verwenden
28.
strContactFilter = "[MessageClass] = 'IPM.Distlist'"
29.
Set itmReal = itmAll.Restrict(strContactFilter)
30.

31.
'Excel-Objekte öffnen
32.
Set excApp = CreateObject("Excel.Application") 'Neue Excel-Instanz
33.
Set excWkb = excApp.Workbooks.Add 'Neues Workbook anlegen
34.
Set excWks = excWkb.Sheets(1) 'Erstes Sheet
35.

36.
'Excel-Worksheet aufbereiten
37.
With excWks
38.
  'Sheet-Name
39.
  .Name = "Outlook-Verteilerlisten"
40.
  'Spaltenüberschriften
41.
  .Cells(1, 1).Value = "Verteiler"
42.
  .Cells(1, 2).Value = "Name"
43.
  'Spaltenüberschriften fett
44.
  .Rows("1:1").Font.Bold = True
45.
  'Outlook-Verteilerliste nach Excel übertragen
46.
  intRow = 1
47.
  
48.
  'Excel einblenden
49.
  excApp.Visible = True
50.

51.
  For Each itmDistList In itmReal
52.
      .Cells(intRow + 1, 1).Value = itmDistList.DLName
53.
      j = 1
54.
      k = 1
55.
      For i = 1 To itmDistList.MemberCount
56.
        If InStr(1, itmDistList.GetMember(i).Address, "@") Then
57.
          .Cells(intRow + k, 2).Value = itmDistList.GetMember(i).Address
58.
          k = k + 1
59.
        Else
60.
          .Cells(intRow + j, 3).Value = itmDistList.GetMember(i).Name
61.
          j = j + 1
62.
        End If
63.
      Next i
64.
      intRow = intRow + WorksheetFunction.Max(k, j)
65.
  Next itmDistList
66.
  
67.
  'Optimale Spaltenbreite
68.
  .Columns.AutoFit
69.
End With
70.

71.
'Speicher freigeben
72.
Set itmReal = Nothing
73.
Set itmAll = Nothing
74.
Set folMapi = Nothing
75.
Set nspMapi = Nothing
76.
Set excWks = Nothing
77.
Set excWkb = Nothing
78.
Set excApp = Nothing
79.

80.
End Sub
Bisher durchsucht das Programm alle Verteilerlisten in einem Ordner und schreibt die Mitglieder dieser Listen in Spalte B und C. In B kommen alle Mail-Adressen, in C alle Verteiler, die in dem oberen Verteiler enthalten sind.

Nun möchte ich eine kleine Änderung. Ich möchte, dass er die enthaltenen Verteiler nicht mehr in Spalte C schreibt, sondern auch erweitert. Am Ende sollen zu dem obersten Verteiler nur noch Namen in Spalte B stehen.

Wie muss ich den Code verändern?

Danke und Gruß Uppe
Mitglied: RedWraith
04.03.2010 um 13:22 Uhr
Also, bei dir steht im Moment sowas wie:

Verteiler     |      Addy
---------------------------
Konferenz     | Klaus@xy.de
Konferenz     | Monika@xy.de
Konferenz     | Mike@xy.de
Buchhaltung   | Jenny@xy.de
Buchhaltung   | Peter@xy.de
Und du möchtest jetzt folgendes:

Verteiler      | Addy
-----------------------------
Konferenz      | Klaus@xy.de
               | Monika@xy.de
               | Mike@xy.de
Buchhaltung    | Jenny@xy.de
               | Peter@xy.de
Sehe ich das richtig ?

Wenn nein, dann habe ich dich leider falsch verstanden.

Auf jeden Fall realisiert man Obiges am Einfachsten, in dem du dir merkst, welchen Verteilerlistennamen du zuletzt ausgegeben hast und wenn der zuletzt Ausgegebene derselbe ist, wie der, der als nächstes ausgegeben werden würde, dann verhinderst du das schreiben einfach.

01.
if itmDistList.DLName <> LetzterVerteiler then
02.
	.Cells(intRow + 1, 1).Value = itmDistList.DLName 
03.
else
04.
	.Cells(intRow + 1, 1).Value = ""
05.
end if
06.

07.
LetzterVerteiler=itmDistList.DLName 
08.
Bitte warten ..
Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 1 TagInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 2 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 4 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

HTML
Google maps
Frage von jensgebkenHTML20 Kommentare

Hallo Gemeinschaft, hab mal ne Frage zu Maps - habe es hinbekommen, dass ich einen iframe link erstellen kann ...

Switche und Hubs
PC Verursach Probleme im Netzwerk
gelöst Frage von spoboeSwitche und Hubs16 Kommentare

Hallo zusammen, folgene Situation macht mich inzwischen ratlos: In unserem Betrieb ist ein Rechner über die Hausverkabelung an einem ...