Jump to content

Praktik

Members
  • Gesamte Inhalte

    16
  • Registriert seit

  • Letzter Besuch

Profile Fields

  • Member Title
    Newbie

Fortschritt von Praktik

Explorer

Explorer (4/14)

  • Erste Antwort
  • Engagiert
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

10

Reputation in der Community

  1. Erledigt, danke @ Necron Dann wird an der Stelle, an der der Benutzername sein sollte "Heute ist Freitag" eingefügt. Ich würde glaub ich lieber das andere Script nehmen, dass scheint nicht so kompliziert zu sein.^^ -edit- So, jetzt habe ich es.^^ Sub autoopen() Dim KeyValue1 As String Dim Key1 As String Dim Section1 As String Dim KeyValue2 As String Dim Key2 As String Dim Section2 As String Dim KeyValue3 As String Dim Key3 As String Dim Section3 As String Dim KeyValue4 As String Dim Key4 As String Dim Section4 As String Dim KeyValue5 As String Dim Key5 As String Dim Section5 As String Key1 = "Abteilung" Section1 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue1 = System.PrivateProfileString("", Section1, Key1) Key2 = "Department" Section2 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue2 = System.PrivateProfileString("", Section2, Key2) Key3 = "Benutzername" Section3 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue3 = System.PrivateProfileString("", Section3, Key3) Key4 = "TelNo" Section4 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue4 = System.PrivateProfileString("", Section4, Key4) Key5 = "Mail" Section5 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue5 = System.PrivateProfileString("", Section5, Key5) ActiveDocument.Bookmarks("Abteilung").Select Selection.TypeText KeyValue1 ActiveDocument.Bookmarks("Department").Select Selection.TypeText KeyValue2 ActiveDocument.Bookmarks("Benutzername").Select Selection.TypeText KeyValue3 ActiveDocument.Bookmarks("TelNo").Select Selection.TypeText KeyValue4 ActiveDocument.Bookmarks("Mail").Select Selection.TypeText KeyValue5 End Sub Jetzt werde ich mir das mit dem Autotext nochmal genauer ansehen. Ich melde mich wieder.^^ Schonmal vielen vielen Dank bis hierher :) Achso und Sub AutoOpen oder AutoNew? Was müsste es sein bei dieser Vorlage die, wie du ja gesagt hast, global mit geöffnet wird wenn sie im entsprechendem Verzeichnis liegt? Wegen dem Autotext: Die Werte aus der Registry sollen nun als Autotext definiert werden. Gibt es eine Möglichkeit das ohne Bookmarks zu machen? Sodass er im grunde gleich die ausgelesen Daten als Autotext setzt, müsste dann ja irgendwie Dynamisch sein, oder? Schließlich kann ja auch nur ein Bookmark zur Zeit existieren? Ich kann es auch nicht als Makro aufnehmen, da es in einem Textfeld ist. Wenn ich das hier benutze: Set oAutoText = Templates(ActiveDocument.AttachedTemplate).AutoTextEntries _ .Add(Name:=Key1, Range:=Selection.Range) Dann sagt er immer "das Element ist nicht in der Sammlung vorhanden" Und wenn ich das hier nutze: NormalTemplate.AutoTextEntries.Add Name:=KeyValue1, _ Range:=Selection.Range Dann erstellt er zwar ein Autotext mit dem Namen Abteilung aber der Inhalt ist leer. Gruß Praktik
  2. So, ich glaube ich habe es jetzt. Ich habe das Script mal angehängt, es wäre echt super wenn du mal drüber gucken könntest ob das alles so korrekt ist. Der Import in die Registry funktioniert, ich weiß nur nicht ob da noch etwas fehlerhaft ist das eventuell später zu Problemen führen könnte. Nochmals vielen Dank :) -edit- Ich bin jetzt bei der Wordvorlage am überlegen, wie man am besten die Werte aus der Registry an eine bestimmte Stelle im Dokument bekommt. Über Textmarken oder gibt es eine andere Möglichkeit? Ich habe hier zwar ein Script gefunden aber das geht nur wenn man eine Tabelle hat: Sub autoopen() Dim KeyValue1 As String Dim Key1 As String Dim Section1 As String Dim KeyValue2 As String Dim Key2 As String Dim Section2 As String Key1 = "Benutzername" Section1 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue1 = System.PrivateProfileString("", Section1, Key1) Key2 = "TelNo" Section2 = "HKEY_CURRENT_USER\Software\DokumenteinstellungenWord" KeyValue2 = System.PrivateProfileString("", Section2, Key2) ActiveDocument.Fields(1).Update Set MyRange1 = ActiveDocument.Fields(1).Result MyRange1.Text = KeyValue1 ActiveDocument.Fields(2).Update Set MyRange2 = ActiveDocument.Fields(2).Result MyRange2.Text = KeyValue2 End Sub Wie kann man das denn mit dem "ActiveDocument.Bookmarks" Befehl verbinden und sollte es auf AutoOpen oder AutoNew stehen? Hier gibt es auch noch ein Script, bei dem aber auch etwas fehlt. Was dabei fehlt steht auch in dem Comment darunter, ich weiß nur nicht wo ich das einfügen soll^^: http://stackoverflow.com/questions/807266/word-insert-data-from-registry-into-predefined-bookmarks Gruß Praktik BenutzerdatenV4.zip
  3. So ich habe jetzt ein Script gemacht und bearbeite es gerade, da habe ich noch ein paar Fragen :) Mein Script fängt mit dem von Nils an, nun steht ja in der ersten Zeile strLDAP = SAM2ADInfo("NilsK", "mail") Irgendwo habe ich gelesen das man das NilsK natürlich ändern müsse aber in was? Und inwiefern spielt das eine Rolle? Anschließend kommen deine Scripts. Muss ich im ersten Teil die Daten die aus dem AD ausgelesen werden noch von mir angepasst werden oder ist das egal weil ich das im 2. Script anpasse? Sehe ich das richtig, damit die entsprechenden Daten in die Registry geschrieben werden, muss es dann ungefähr so aus sehen: inRegSchreiben regSchluessel, "Benutzername", strName inRegSchreiben regSchluessel, "Ort", strOrt inRegSchreiben regSchluessel, "mail", strMail etc Und in dem VBA Script steht: ("HKEY_CURRENT_USER\Software\DeinSchlüssel\NocheinSchlüssel\" & strSchluessel) Da muss dann "DeinSchlüssel\NocheinSchlüssel" durch den Pfad im Registry Script ersetzt werden also "VB and VBA Program Settings\Dokumentvorlagen\Benutzereinstellungen" Vielen Dank im Voraus :) Gruß Praktik
  4. Aber "fehlt" nicht das letzte vba-script in der vorlage, das diese werte liest und als autotext definiert?
  5. Hey Sunny, so richtig verstanden habe ich das ganze glaub ich noch nicht :D Wie/wo läuft die verknüpfung der wordvorlage mit den infos in der registry? Sind deine Skripte jetzt VBS oder VBA? Um die Zeichenbegrenzung zu umgehen, magst du mir eine PM schicken mit dem Skript, vielleicht verstehe ich es dann besser :) Danke im Voraus. Gruß Praktik
  6. Hallo Sunny, vielen Dank für die Rückmeldungen. Wahrscheinlich habe ich den Wald vor lauter Bäumen schon nicht mehr gesehen :D Ich werde deine Idee mal weitergeben, vielleicht ist es auch für uns die bessere Lösung, danke :) Gruß Praktik PS @ICEMAN: Genau so ein Skript habe ich schon, welches auch funktioniert aber trotzdem danke :)
  7. Es soll aber so sein wie es jetzt ist damit die Datei in den anderen Vorlagen als AutoText verwendet werden kann. Und für Autotext muss die Datei halt .dotx sein. Kann doch nicht so schwer sein das in eine .dotx Datei umzuwandeln/zu speichern. VBA kann es doch auch irgendwie: FileFormat:=wdFormatXMLTemplate, CompatibilityMode:=14 Und diese Befehle sind nicht auf mein Skript anwendbar? Das Bezweifle ich. Und jetzt soll ich das ganze Skript umändern damit es in die Registry schreibt? Vergiss es, das ist viel zu umständlich. Zumal ich es bei meinem Kollegen nicht durchkriegen würde. Gruß Praktik -edit- So ich habe es jetzt, ein einfaches (,14) ohne Klammern hinter dem Speicherpfad hat genügt um es als .dotx abspeichern zu können. Das war auch total umständlich - LOL Jetzt soll der Text, der in dem Word Dokument steht noch als Autotext gespeichert werden damit er als Schnellbaustein zur Verfügung steht. Aber da kann mir hier wahrscheinlich auch wieder keine helfen ;)
  8. Das Skript soll schon so sein wie es jetzt ist, nur soll es halt möglich sein es als Vorlage zu speichern, damit andere Vorlagen wieder auf diese Vorlage zugreifen können. Leider ist das meiste was ich finde auf VBA bezogen und nicht auf VBS...
  9. Hier ist der Code: Set WshShell = WScript.CreateObject("Wscript.Shell") AppData = WshShell.ExpandEnvironmentStrings("%AppData%") Set objSysInfo = CreateObject("ADSystemInfo") strUser = objSysInfo.UserName Set objUser = GetObject("LDAP://" & strUser) Set objWord = CreateObject("Word.Application") objWord.UserName = objUser.givenName & " " & objUser.SN objWord.UserInitials = Left(objUser.givenName, 1) & Left(objUser.SN, 1) objWord.UserAddress = "Abteilung" & Chr(13) & objUser.department & Chr(13) & objUser.givenName & " " & objUser.SN & Chr(13) & _ objUser.telephoneNumber & Chr(13) & _ objUser.mail Set objWord = CreateObject("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Add() Set objSelection = objWord.Selection objSelection.Font.Name = "News Gothic" objSelection.Font.Size = "7" objSelection.TypeText "Abteilung" & Chr(13) & objUser.department & Chr(13) & objUser.givenName & " " & objUser.SN & Chr(13) & _ objUser.telephoneNumber & Chr(13) & _ objUser.mail objSelection.TypeParagraph() objDoc.SaveAs(AppData & "\Microsoft" & "\Document Building Blocks" & "\1031" & "\Benutzerdaten.dotx") objWord.Quit So wie er jetzt ist funktioniert er zwar, aber man kann die .dotx Datei nicht öffnen. Habe eben gerade etwas mit CompatibilityMode gefunden was man dahinter setzen kann, da bin ich gerade am ausprobieren. Zum bearbeiten nutze ich derzeit Notepad++, das geht auch^^ -edit- Ich sehe gerade CompatibilityMode wurde in Zusammenhang mit VBA nicht mit VBS erwähnt...
  10. Hallo, erstmal vielen Dank für die Antworten. Ich bin mittlerweile ein ganzes Stück weiter. Ich habe jetzt ein VBSkript, mit dem Daten aus dem AD in das Postanschrift Feld von Word geschrieben werden. Außerdem wird im Benutzerordner in einem Verzeichnis eine Datei mit den Daten aus dem AD erstellt. Im Grunde ist mein Anfangsproblem gelöst nur habe ich jetzt ein Problem mit dem VBSkript. Wenn er am Ende des Skriptes die Datei abspeichert, so speichert er sie nicht in einer Vorlagen Datei. .doc und auch .docx funktionieren aber sobald ich es auf .dotx ändere sagt er immer die Datei wäre Fehlerhaft. Frage ist also, wie kann ich das VBSkript dazu bringen eine Word Datei als Vorlage abzuspeichern? Gruß Praktik
  11. Und wenn ihr noch nicht genug habt, dann könntet ihr mir ja vll. bei diesem Skript helfen: 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. Gruß Praktik
  12. Nein Sieht bisher aber nicht danach aus 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: 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:
  13. Hi, 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. Gruß Praktik
  14. das freut mich, dass das geht. Wenn du mir jetzt noch sagen kannst wie das geht, wäre das echt super :)
  15. Hi, also die Daten stehen in einem Textfeld und sieht wie folgt aus: Abteilung [Abteilungsname] [Vor- und Nachname] Durchwahl: -000 Und das sind auch die Daten, die dann offline zur Verfügung stehen sollen. In den Word Optionen gibt es unter Erweitert ja das Feld Postanschrift in dem man das eintragen kann. Aber dann muss man es ja per Hand machen. Das hier hatte ich bisher gefunden, nur dafür muss man halt immer mit der Domäne verbunden sein: http://www.sysadminlab.net/other/inserting-active-directory-information-into-word-templates 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. ^_^ Gruß Praktik
×
×
  • Neu erstellen...