für eine Word 2007 Vorlage sollen Daten aus dem Active Directory ausgelesen werden.
ABER: Es soll nur einmal ausgelesen werden und dann in eine Zwischendatei gespeichert werden und aus dieser Zwischendatei sollen dann in Zukunft die Daten ausgelesen werden damit auch Notebooknutzer die Vorlagen nutzen können wenn diese unterweg sind.
Es gibt ja eine Möglichkeit mit Hilfe von Textmarken dies zu machen, nur fragt er dann jedesmal vom AD ab und das darf nicht.
Vielleicht funktioniert es ja so: Wenn der User sich anmeldet wird ein Skript ausgeführt das Daten aus dem Active Directory ausliest und in eine Datei schreibt und Word liest dann die Daten aus dieser Datei aus. So oder so ähnlich. ^_^
ja, natürlich, das geht. Ihr müsstet also die Formeln in eurer Vorlage so ändern, dass sie die lokal gespeicherte Datei auswerten, statt eine Verbindung ins AD aufzubauen.
Die Daten selbst kann man, wie du vorschlägst, z.B. mit einem VBS-Skript beim Logon aus dem AD lesen und in eine Datei schreiben. Falls kein Connect zum AD besteht, bleibt die Datei unangetastet.
derzeit gibt es noch keinen Code in der Vorlage, den soll ich ja gerade herausfinden womit ich leider nicht weiter komme
Ich muss wissen, wie bei der Anmeldung Daten aus dem AD lokal in einer Datei gespeichert werden und welcher Befehl/Code bei Word stehen muss damit diese Datei ausgelesen wird.
Im Internet findet man dazu aber nichts also bleiben mir nur Foren und die waren bis jetzt leider auch nicht sehr Hilfreich.
derzeit gibt es noch keinen Code in der Vorlage, den soll ich ja gerade herausfinden womit ich leider nicht weiter komme
Hast Du denn mit VB Scripten schon einmal gearbeitet?
Zitat von Praktik
Ich muss wissen, wie bei der Anmeldung Daten aus dem AD lokal in einer Datei gespeichert werden und welcher Befehl/Code bei Word stehen muss damit diese Datei ausgelesen wird.
Zum auslesen von Daten aus dem AD hat dir Nils schon den richtigen Hinweis gegeben. Testen und anpassen mußt Du selbst, auch wenn dir das nicht passt.
Hast Du denn mit VB Scripten schon einmal gearbeitet?
Nein
Wie Du dann in Word auf diese TXT zugreifen kannst, weiß ich auch nicht. Aber in einem Word Forum sollte sich das finden lassen.
Sieht bisher aber nicht danach aus
Die Foren sind im Internet und wenn ich danach suche, werde ich erschlagen mit Ergebnissen. Mir dünkt, Du hast bisher noch gar nicht richtig gesucht.
Mir ist schon klar das die Foren im Internet sind, ich meinte über Google habe ich nichts dergleichen gefunden also bleibt mir nur das eigene Nachfragen über Foren.
Und dir dünkt falsch, denn ich bin schon den ganzen Tag auf der Suche nach einer Lösung...
Um AD Daten in eine txt Datei zu bringen habe ich bisher diesen Befehl gefunden:
@echo off & setlocal
set "G=%temp%\GetL.vbs"
>"%G%" echo WScript.Echo GetObject("LDAP://" ^& CreateObject("ADSystemInfo").UserName).l
for /f "delims=" %%i in ('cscript //nologo "%G%"') do set "Ort=%%i"
echo %Ort%
Allerdings gibt der nur ein Attribut wieder und nicht mehrere. Aber selbst wenn ich das komplett hätte, wüsste ich dennoch nicht wie ich das in eine Word Datei importieren kann. Ein weiterer Arbeitstag an dem ich nicht weiter gekommen bin...
Ich habe auch noch dieses Makro gefunden, dass aber auch nicht funktioniert:
Sub Insert_EinzelZahlungen()
Dim oDoc As Document
Set oDoc = ActiveDocument
Dim nDoc As Document
Set nDoc = Documents.Open(FileName:="c:\test.txt", Visible:=False)
oDoc.Bookmarks("test").Range.Text = nDoc.Range.Text
nDoc.Close
End Sub
Und wenn ihr noch nicht genug habt, dann könntet ihr mir ja vll. bei diesem Skript helfen:
Sub TextImport()
Dim dlgtext As FileDialog
Dim strText As String
Dim rng As Word.Range
Dim bmkBeginn As Word.Bookmark
Dim bmkEnde As Word.Bookmark
Dim fsize As Long
Dim fentry As Single
fsize = 9
fentry = 2
Set dlgtext = Application.FileDialog(msoFileDialogFilePicker)
dlgtext.Title = "Auswahl der Textdatei"
dlgtext.Filters.Add "Textdateien", "*.txt", 1
dlgtext.ButtonName = "Import"
With dlgtext
If .Show = -1 Then
strText = dlgtext.SelectedItems.Item(1)
' frmText.Show
Set rng = Selection.Paragraphs(1).Range.Duplicate
rng.Collapse wdCollapseStart
rng.InsertParagraph
rng.Collapse wdCollapseEnd
Set bmkEnde = rng.Bookmarks.Add(Name:="BMEnde", Range:=rng)
rng.Collapse wdCollapseStart
rng.MoveEnd wdParagraph, -1
rng.Collapse wdCollapseStart
rng.InsertFile (strText)
rng.Collapse wdCollapseStart
Set bmkBeginn = rng.Bookmarks.Add(Name:="BMBeginn", Range:=rng)
Set rng = ActiveDocument.Range(Start:=bmkBeginn.Range.Start, End:=bmkEnde.Range.End)
With rng
.Font.Size = fsize
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.ParagraphFormat.LeftIndent = CentimetersToPoints(fentry)
.Bookmarks.Add Name:="Einfuegetext", Range:=rng
.Collapse wdCollapseEnd
End With
Call TexteFormatieren(ActiveDocument.Bookmarks("Einfuegetext").Range)
End If
End With
dlgtext.Filters.Clear
Set dlgtext = Nothing
Set rng = Nothing
Set bmkBeginn = Nothing
Set bmkEnde = Nothing
End Sub
Sub TexteFormatieren(ByVal rngTM As Word.Range)
Dim para As Word.Paragraph
For Each para In rngTM.Paragraphs
If InStr(1, para.Range.Text, "Pressures:", vbTextCompare) > 0 Then
para.Range.Font.Bold = True
para.Range.Font.Underline = wdUnderlineSingle
End If
Next para
End Sub
Was bei diesem Skript verändert werden müsste wäre:
Das er die .txt Datei automatisch einliest, das Makro würde zu einer Vorlage gehören und beim öffnen soll die .txt Datei eingelesen werden.
Und das die Schriftart und größe automatisch umgewandelt wird.