<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Office%3AExcel_LDIF_Export</id>
	<title>Office:Excel LDIF Export - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Office%3AExcel_LDIF_Export"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Office:Excel_LDIF_Export&amp;action=history"/>
	<updated>2026-04-20T16:22:22Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Office:Excel_LDIF_Export&amp;diff=1814&amp;oldid=prev</id>
		<title>BLinz am 21. Januar 2012 um 21:22 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Office:Excel_LDIF_Export&amp;diff=1814&amp;oldid=prev"/>
		<updated>2012-01-21T21:22:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Kategorie:Office]][[Kategorie:VBA]][[Kategorie:Excel]][[Kategorie:Active_Directory]]&lt;br /&gt;
Exportiert Daten aus Excel so das Sie mit ldif.exe wieder ins AD eingelesen werden können.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Public Sub SaveLDIF()&lt;br /&gt;
&amp;#039;Speichert Inhalte eines Arbeitsblattes als Textdatei die danach mit LDIFDE.exe eingelesen werden kann.&lt;br /&gt;
&amp;#039;14.06.2008 von Bernhard Linz, DATAGROUP Bremen GmbH, &lt;br /&gt;
&amp;#039;Bernhard.Linz@datagroup.de&lt;br /&gt;
&amp;#039;Anders als CSVDE.EXE erwartet LDIFDE.EXE die Werte nicht hintereinander sondern untereinander.&lt;br /&gt;
&amp;#039;im Format &amp;quot;Feldename: Wert&amp;quot;&lt;br /&gt;
&amp;#039;Die ersten beiden Felder müssen(!!) dabei immer dn (=LDAP-Pfad) und changetype (add, modify, delete) sein.&lt;br /&gt;
&amp;#039;Die restliche Reihenfolge ist egal.&lt;br /&gt;
&amp;#039;Jedoch zu beachten: Zuerst OU&amp;#039;s anlegen damit darin die Gruppen und Benutzer angelegt werden können&lt;br /&gt;
&amp;#039;Dann die Benutzer, da die Gruppenmitgliedschaft in den Gruppen selbst angegeben wird&lt;br /&gt;
&amp;#039;Und die Benutzer deshalb schon vorhanden sein müssen wenn Gruppen mit Mitgliedern erstellt werden&lt;br /&gt;
&lt;br /&gt;
Dim Bereich As Object, Zeile As Object, Zelle As Object, Tabellenblatt As Object&lt;br /&gt;
Dim SchreibString As String&lt;br /&gt;
Dim LDIFDatei As String&lt;br /&gt;
Dim Zeilenzaehler As Double&lt;br /&gt;
Dim Zellenzaehler As Double&lt;br /&gt;
Dim I As Double&lt;br /&gt;
&lt;br /&gt;
&amp;#039;Abfrage des Dateinames für die Exportdatei&lt;br /&gt;
&amp;#039;Mit Vorschlag des Dateinames und Pfades&lt;br /&gt;
&amp;#039;Es wird der Pfad der momentanen Excel-Datei vorgschlagen&lt;br /&gt;
&amp;#039;Als Dateiname wird der Name der Exceldatei, jedoch mit der Endung .LDIF vorgeschlagen&lt;br /&gt;
&lt;br /&gt;
LDIFDatei = ActiveWorkbook.FullName&lt;br /&gt;
LDIFDatei = Replace(LDIFDatei, &amp;quot;.xls&amp;quot;, &amp;quot;.ldif&amp;quot;)&lt;br /&gt;
LDIFDatei = InputBox(&amp;quot;Wie soll die Exportierte LDIF-Datei heißen (inkl. Pfad)?&amp;quot;, &amp;quot;LDIF-Export&amp;quot;, LDIFDatei)&lt;br /&gt;
If LDIFDatei = &amp;quot;&amp;quot; Then Exit Sub &amp;#039; Falls Abbrechen oder kein Dateiname angegeben wurde Programm beenden&lt;br /&gt;
&lt;br /&gt;
&amp;#039;Die Feldnamen holen - da wir sie bei jedem neuen Eintrag neu brauchen&lt;br /&gt;
&amp;#039;Dazu zählt das Programm die Anzahl der Belegten Zellen&lt;br /&gt;
Zeilenzaehler = 0&lt;br /&gt;
For I = 1 To 255&lt;br /&gt;
    If ActiveSheet.Cells(1, I).Text &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
        SchreibString = ActiveSheet.Cells(1, I).Text&lt;br /&gt;
        Zeilenzaehler = Zeilenzaehler + 1&lt;br /&gt;
    End If&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
ReDim Feldnamen(Zeilenzaehler) As String&lt;br /&gt;
For I = 1 To Zeilenzaehler&lt;br /&gt;
    Feldnamen(I) = ActiveSheet.Cells(1, I).Text&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
&amp;#039;So, nun haben wir in der Variablen Feldnamen() die Namen der Felder&lt;br /&gt;
&amp;#039;Nun Zeilenweise Schreiben&lt;br /&gt;
&amp;#039;Die Schleife habe ich mich im Script CSV-Export abgeschaut - Sie arbeitet nur den benutzten Bereich&lt;br /&gt;
&amp;#039;Zeile für Zeile, Feld für Feld ab. Nur die erste Zeile wollen wir überspringen - dort stehen ja die&lt;br /&gt;
&amp;#039;Feldnamen drin - und die haben wir uns ja schon geholt&lt;br /&gt;
&lt;br /&gt;
Set Bereich = ActiveSheet.UsedRange&lt;br /&gt;
Zeilenzaehler = 1&lt;br /&gt;
Zellenzaehler = 1&lt;br /&gt;
SchreibString = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open LDIFDatei For Output As #1&lt;br /&gt;
    For Each Zeile In Bereich.Rows&lt;br /&gt;
        If Zeilenzaehler &amp;gt; 1 Then &amp;#039;Wir wollten doch die erste Zeile auslassen&lt;br /&gt;
            For Each Zelle In Zeile.Cells&lt;br /&gt;
                SchreibString = Feldnamen(Zellenzaehler) &amp;amp; &amp;quot;: &amp;quot; &amp;amp; Zelle.Value&lt;br /&gt;
                Print #1, SchreibString&lt;br /&gt;
                Zellenzaehler = Zellenzaehler + 1&lt;br /&gt;
            Next&lt;br /&gt;
            SchreibString = &amp;quot;&amp;quot;&lt;br /&gt;
            Print #1, &amp;quot;&amp;quot; &amp;#039;Nach jeden Abschnitt = Benutzer 2 Leerzeilen für die bessere Lesbarkeit&lt;br /&gt;
            Print #1, &amp;quot;&amp;quot;&lt;br /&gt;
        End If&lt;br /&gt;
        Zeilenzaehler = Zeilenzaehler + 1&lt;br /&gt;
        Zellenzaehler = 1&lt;br /&gt;
    Next&lt;br /&gt;
 &lt;br /&gt;
  Close #1&lt;br /&gt;
  Set Bereich = Nothing&lt;br /&gt;
  MsgBox &amp;quot;Datei wurde exportiert nach&amp;quot; &amp;amp; vbCrLf &amp;amp; LDIFDatei&lt;br /&gt;
End Sub&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>