Outlook Ordner automaitsch erstellen

Hallo,

ich habe eine Excel Datei mit Firmennamen und soll daraus eine verzeichnisstruktur in Outlook erstellen sodass die emails unter den jeweiligen Firmenordner abgelegt werden können.

Ich hab das gleiche mit Dateiorder aus einer DOS batchdatei erstellt und hab daher die ExcelDatei.

Ich brauche nun ein VB script in dass ich die Kommandos zum erstellen von Ordnern aus Excel reinkopieren kann und dass mir dann die vielen Ordner automatisch erstellt.

Schwierig zu erklären - die Excel Datei hab ich so angepasst das damit die DOS Batch erstellt werden konnte also:
md c:\firmen\A
md C:\firmen\A\AFirma1
md C:\firmen\A\AFirma2
usw

Geht das ähnlich mit VB für die Ordner in Outlook ??? die Excel Datei anzupassen wäre ja kein problem - nur ich kenne die vb syntax nicht und hab auch noch nie ein script geschrieben…

kann jemand helfen ???

Danke

Thomas

Moin,

hier erstmal die VBA-Hilfe:


Add-Methode (Folders-Auflistung)

Erstellt in der Folders-Auflistung einen neuen Ordner und gibt den neuen Ordner als MAPIFolder-Objekt zurück.

Syntax

objFolders.Add(Name, [Type])

objFolders Erforderlich. Ein Ausdruck, der ein Folders -Objekt zurückgibt.

Name Erforderlicher Wert vom Typ String. Der Anzeigename für den neuen Ordner.

Type Optionaler Wert vom Typ Long. Der Outlook-Ordnertyp des neuen Ordners. Wenn kein Ordnertyp angegeben wird, verwendet der neue Ordner standardmäßig denselben Typ wie der Ordner, in dem er erstellt wurde. Folgende OlDefaultFolders-Konstanten sind möglich:
olFolderCalendar(9),
olFolderContacts(10),
olFolderDrafts(16),
olFolderInbox(6),
olFolderJournal(11),
olFolderNotes(12) oder
olFolderTasks(13).

(Die Konstanten olFolderDeletedItems(3), olFolderOutbox(6) und olFolderSentMail(5) können für dieses Argument nicht angegeben werden.)


So, und hier noch ein Beispiel, wie man es machen kann:

Sub ErstelleOrdnerAusListe()
Dim Namensliste As Variant
Dim Einzelname As Variant
 If MsgBox("Wirklich neue Ordner innerhalb von '" & \_
 ActiveExplorer.CurrentFolder.Name & "' erstellen?", \_
 vbQuestion + vbYesNo) vbYes Then
 MsgBox "Abgebrochen", vbInformation
 Exit Sub
 Else 'Wirklich
 Namensliste = Array( \_
 "A", \_
 "B", \_
 "C", \_
 "")
 For Each Einzelname In Namensliste
 If ErstelleOrdner(CStr(Einzelname), "ZZ\_Leer") = False Then Exit For
 Next 'Einzelname
 End If 'Wirklich
End Sub 'ErstelleOrdnerAusListe
 
 
Private Function ErstelleOrdner(OrdnerName As String, Optional KopieVon As String) As Boolean
Dim F As MAPIFolder
Dim CF As MAPIFolder
 ErstelleOrdner = True

 If OrdnerName = "" Then Exit Function

 Set CF = ActiveExplorer.CurrentFolder

 On Error Resume Next
 If KopieVon = "" Then
 CF.Folders.Add OrdnerName, olFolderInbox
 Else
 Set F = CF.Folders(KopieVon).CopyTo(CF) 'Wenn der Ordner "KopieVon"
 'nicht existiert, tritt ein
 'Fehler auf, und es kommt zur
 'Fehlermeldung unten.
 F.Name = OrdnerName
 Set F = Nothing
 OrdnerName = OrdnerName & "' aus '" & KopieVon 'Für Fehlermeldung
 End If 'KopieVon

 If Err.Number 0 Then
 If MsgBox("Beim Versuch, den Ordner '" & \_
 OrdnerName & "' zu erstellen, ist ein Fehler aufgetreten." & \_
 vbCrLf & vbCrLf & \_
 "Mit dem nächsten Ordner fortfahren oder ganz abbrechen?", \_
 vbCritical + vbOKCancel) = vbCancel Then
 ErstelleOrdner = False
 End If
 End If 'Err.Number 0
 On Error GoTo 0

 Set CF = Nothing
End Function 'ErstelleOrdner

Du musst das Ganze in ein VBA-Modul in Outlook kopieren, in den Ordner gehen, in dem die neuen Unterordner erstellt werden sollen und dann das Makro ausführen.

Es gibt hier zwei Möglichkeiten, neue Ordner zu erstellen:

  • ganz neu oder
  • als Kopie von einem bestehenden Ordner.
    Die zweite Variante hat den Vorteil, dass alle Ordner-Einstellungen wie Feldauswahl und Sortierung übernommen werden. Ich würde also einen leeren Ordner „ZZ_Leer“ anlegen, diesen wie gewünscht formatieren und ihn dann immer als Master verwenden. Das ist in dem Beispiel so gemacht. Der Name beginnt übrigens mit „ZZ“, damit der Ordner immer unter die neuen Ordner sortiert wird bei der Ansicht in Outlook.

Probier´s mal aus. Bei Fragen steht das Forum sicher zur Verfügung.

Achso, die Zeilen

 "A", \_
 "B", \_
 "C", \_

kannst Du dann leicht in Excel zusammemschrauben und an dier Stelle dort einfügen.

Kristian

PS: Man könnte das auch als VBS-Skript realisieren, das dann einfach von Windows aus gestartet wird (also nicht als VBA-Makro innerhalb von Outlook selbst). Das erfordert aber noch ein paar Zeilen mehr Code, um den gewünschten Ordner festzulegen undso. Bei der obigen VBA-Variante ist es einfach der aktuelle Outlook-Ordner.

PS: …

Du musst das Ganze in ein VBA-Modul in Outlook kopieren, in den
Ordner gehen, in dem die neuen Unterordner erstellt werden sollen
und dann das Makro ausführen.

Vorher muss natürlich der Ordner „ZZ_Leer“ erstellt worden sein und sich in dem Ordner befinden, wie im Artikel weiter unten beschrieben ist.

Kristian