r3m4 Geschrieben 24. März 2010 Teilen Geschrieben 24. März 2010 (bearbeitet) Guten Tag, wir haben ein kleines Problem in letzter Zeit. Folgende Aufgabenstellung bereitet uns Kopfschmerzen und wir sind gespannt ob hier ein paar Cracks dabei sind, die uns helfen möchten und die Antwort wissen. Wir haben für Geschäftsbriefe national, international, Faxe national und international jeweils eigene .doc Vorlagen, mit deren Hilfe die jeweilige Aufgabe schnell erledigt werden kann. Diese liegen schreibgeschützt auf dem Server und können vom User nicht geändert werden. Diese wird über unser CRM angesprochen und füllt automatisch die Vorlage mit dem Namen des Absenders. Wir möchten nun jedoch im Word einige Schaltflächen, durch welche man direkten Zugriff auf die jeweilige Vorlage hat. Das haben wir durch Hyperlinks realisiert. Die jeweiligen Daten des Users haben wir in den Eigenen Dateien eines jeden abgelegt. In Form einer Textdatei und nach immer dem selben Aufbau. Nun die Frage, wie würdet ihr das Problem am einfachsten bewerkstelligen? Wir sind zuerst den Weg gegangen, dass wir alle Felder innehalb der Dokumente mit einem VBA-Skript abfragen lassen, was uns jedoch vor die Problematik stellt, dass wir keine Signatur für unser Makro haben und uns dadurch einige Fehlermeldungen erscheinen, die sich nicht so ohne weiteres beheben lassen. Sollte jemand von euch eine komplett andere Idee haben, als die Felder mit Bezug auf die Textdatei und den jeweiligen Datensatz darin auslesen zu lassen und mithilfe eines Makros zu aktualisieren. Ich bedanke mich schonmal an alle die überhaupt diesen langen Text versuchen zu lesen und zu verstehen. Ist mir klar, dass wenn man die Sache nicht vor sich hat, das alles recht schwer ist zu vestehen. :uli Bearbeitet 24. März 2010 von r3m4 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 24. März 2010 Teilen Geschrieben 24. März 2010 Wenn eure Lösung (VBK-Skript) bereits funktioniert und es nur noch an der fehlenden Sicherheitssignatur des Makros liegt, dann würde ich eher da ansetzen. Welche Meldung erscheint denn bei dem Lauf des Skripts? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 24. März 2010 Autor Teilen Geschrieben 24. März 2010 Das Problem besteht einfach darin, dass wir kein Sicherheitszertifikat haben um das Makro damit auszustatten. Da wir aber gerne weiterhin auf den Arbeitsstationen die Standardsicherheit für Makros auf Hoch beibehalten würden, wird die Frage nach der Aktivierung des Makros gar nicht gestellt. Es wäre für uns kein Problem, die komplette Lösung wieder über Bord zu werfen, falls jemand was tolles weiß ^^ Falls jemand nen Trick kennt wie man Felder im kompletten Dokument (inkl. in Textfeldern) aktualiasiert ohne, dass man ein Makro benötigt, wäre das natürlich der letzte Durchbruch. Ich schreibe hier mal unser VBA Skript das wir für die Aktualisierung benutzen. Vielleicht entdeckt der ein oder andere dort Verbesserungsmöglichkeiten: Sub AutoOpen() Application.ScreenUpdating = False ActiveDocument.Repaginate For Each teil In ActiveDocument.StoryRanges teil.Fields.Update While Not (teil.NextStoryRange Is Nothing) Set teil = teil.NextStoryRange teil.Fields.Update Wend Next teil Application.ScreenUpdating = True End Sub Danke für eure Mühe. Grüße, Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 24. März 2010 Teilen Geschrieben 24. März 2010 Du könntest ein Zertifikat für das Signieren von Makros erstellen, dann das Makro damit signieren und das Zertifikat auf alle Clients verteilen. Das wäre auch im Hinblick auf zukünftige Makros der richtige Weg. http://www.microsoft.com/germany/technet/datenbank/articles/900942.mspx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 24. März 2010 Autor Teilen Geschrieben 24. März 2010 Ja, das ist auch der Weg den wir gehen wollten. Wir haben bis jetzt noch keine Lösung gefunden das Makro so zu verteilen, dass die User letzten Endes keine Schritte mehr machen müssen um das ganze zum laufen zu bekommen. Die Sache mit den vertrauenswürdigen Signaturen und so muss ja dann doch jeder User für sich nochmal einrichten oder? Das soll jetzt nicht abwertend klingen aber manche sind damit nicht so vertraut, dass ich ihnen diese Schritte zutraue und andere haben schlichtweg keinen Elan dafür ^^ Aber falls du einen Weg kennst, das Zertifikat so zu verteilen, dass die Arbeitsstationen die jeweiligen Makros dann ausführen, ohne das der User sich das Zertifikat als Trusted hinterlegen muss wäre das natürlich genial! Grüße Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 24. März 2010 Teilen Geschrieben 24. März 2010 Über "Digitales Zertifikat für VBA-Projekt" (MS Office Tools) kannst du ein Zertifikat für deine Makros erstellen. In dem VBA-Projekt über Extras | Digitale Signatur das Makro signieren. Das Zertifikat kannst du dann über den Zertifikatsmanager im Internet Explorer exportieren. Was ich dir nicht sagen kann, ist wie du das Zertifikat automatisiert verteilen kannst. Mein Ansatz wäre entweder über ein CLI-Skript oder über den entsprechenden Windows-Dienst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 24. März 2010 Teilen Geschrieben 24. März 2010 Den betreffen VBA-Code als Word Add-In (*.DOT) von einem Netzlaufwerk als Workgroup-Template laden, kann via Login-Skript in der Registy umgebogen werden. Es kommen keine Macro-Sicherheitswarnungen und kann recht einfach verteilt werden. Wenn ich dich richtig verstanden habe geht es um einen eigenen Menüpunkt in Word, nicht um das Updaten von Formular-Feldern? Gruss, tester2k5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 25. März 2010 Autor Teilen Geschrieben 25. März 2010 Den betreffen VBA-Code als Word Add-In (*.DOT) von einem Netzlaufwerk als Workgroup-Template laden, kann via Login-Skript in der Registy umgebogen werden. Es kommen keine Macro-Sicherheitswarnungen und kann recht einfach verteilt werden. Wenn ich dich richtig verstanden habe geht es um einen eigenen Menüpunkt in Word, nicht um das Updaten von Formular-Feldern? Gruss, tester2k5 Öhm sorry, vielleicht hab ich das ein wenig zu umständlich geschrieben ^^ Also die .dot haben wir bereits erstellt und können diese auch ohne Probleme verteilen, darum geht es also nicht. Unser einziges Probleme ist wirklich nur die Aktualisierung. Es soll so ablaufen: -.dot lokal wird geladen mit den Menüpunkten -User will einen Brief schreiben und klickt auf den Link -Auf Server abgelegtes .doc öffnet sich. In dieser Datei sind Felder enthalten, die auf die benutzer.txt zeigen, die wir bei jedem User in seinem Netzlaufwerk erstellt haben. Umständlich aber sollte funktionieren. -Alle Felder im geöffneten .doc aktualisieren sich. Auch diejenigen, die sich in Textboxen befinden und somit nicht beim normalen F8 drücken eingeschlossen sind. Dadurch wird automatisch Zeichnungsberechtigung, Name, Mail und dergleichen in den Brief eingetragen. Sinn davon ist einfach, dass jeder User egal wo er sich anmeldet in der Firma durch einen klick auf den Link in der normal.dot einen Brief schreiben kann, ohne extra seinen Namen und dergleichen eintragen zu müssen. Hoffe, dass ich jetzt alles richtig und verständnissvoll erklärt habe. Falls ihr noch fragen habt, stellt sie ruhig. Ich bin froh, dass sich jemand dafür interessiert und bereit ist mir zu helfen. Danke euch, Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 26. März 2010 Teilen Geschrieben 26. März 2010 Er meinte aber eine weitere Word-Datei (.doc), die nur(!) das eigentliche Makro enthält und nicht deine Vorlage zum Erstellen des Dokuments. Diese .dot-Datei soll dann über das Arbeitsgruppen-Vorlagenverzeichnis automatisch beim Öffnen von Word auf den Clients eingebunden werden. Bitte keine Vollzitierungen, es ist ja sichtbar, worauf sich deine Antwort bezieht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 26. März 2010 Teilen Geschrieben 26. März 2010 Dein aktuelles Problem ist die Macro-Security: Die du über ein Sicherheitszertifikat ausschalten kannst, das du dir auch selbst erstellen kannst (SelfCert). Es muss nur auf allen Clients importiert werden... Oder eben (und das ist einfacher) den VBA-Code zur Aktualisierung in einer Seperaten Word-Datei und diese als Word Add-In zu laden. Auch hier kann es beim Laden von einem beliebigen Pfad zu einer Sicherheitswarnung kommen, nicht aber wenn es im Word Startup-Ordner lokal oder dem Workgroup-Template-Ordner liegt. Den du ja auf auf einen Netzwerkpfad umbiegen kannst. Gruss, Karsten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 30. März 2010 Autor Teilen Geschrieben 30. März 2010 Okay, das wär ja super wenn das so funktioniert. Hab allerdings keinerlei Plan von irgendwelchen Add Ins und werd mich da erstmal zurechtfinden versuchen. Bis dato bedanke ich mich für eure schnelle Hilfe und komme auf euch zurück, wenn ich an einem weiteren aussichtslosen Punkt angelangt bin Grüße und einen schönen Restarbeitstag! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 Wow danke, also ich hab das jetzt so gemacht wie ihr mir das beschrieben habt und es scheint wirklich einwandfrei zu funktionieren! Ist ja echt klasse, so können wir auch an unserer Sicherheitsstufe hoch festhalten. Ich danke euch allen für die schnelle Mithilfe und die Geduld mit mir.:uli Grüße, Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 1. April 2010 Autor Teilen Geschrieben 1. April 2010 Sorry kann meinen Beitrag nicht editieren daher hier noch eine abschließende Frage: Wir wollen die "Datenbank" Benutzer.txt im jeweiligen Vorlagenverzeichniss des Users verteilen. Hierzu haben wir dann natürlich keine Lust bei jedem den Pfad anzupassen, sonst wäre der ganze Sinn der Aktion hinfällig. Wie gebe ich nun die Variable an, dass er die jeweiligen Daten automatisch aus dem Anwendungsdatenverzeichniss zieht? So sieht das Teil normal aus: DATABASE \d "C:\\Dokumente und Einstellungen\\***\\Anwendungsdaten\\Microsoft\\Vorlagen\\benutzer.txt" \c "" \s "SELECT Zeichnungsberechtigung FROM C:\\Dokumente und Einstellungen\\***\\Anwendungsdaten\\Microsoft\\Vorlagen\\benutzer.txt" Wie muss ich diese nun umschreiben, dass er den Anwendungsdatenpfad als Variable erkennt? So war meine Idee, es funktioniert jedoch nicht ^^: DATABASE \d "%userappdata%\\Microsoft\\Vorlagen\\benutzer.txt" \c "" \s "SELECT Zeichnungsberechtigung FROM %userappdata%\\Microsoft\\Vorlagen\\benutzer.txt" Ich denke, dass da nur ein doofer Dreher oder dergleichen drin ist und ihr mir das bestimmt ohne Probleme aus dem Stehgreif korrigiert ^^ :bimei Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 1. April 2010 Teilen Geschrieben 1. April 2010 Die Variable heißt %APPDATA% und nicht %USERAPPDATA%. Das kannst du auch ganz einfach mittels echo %APPDATA% in der Eingabeaufforderung testen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 1. April 2010 Autor Teilen Geschrieben 1. April 2010 Ja die Variable war mich auch bekannt, bezieht sich doch aber meines Wissens nur auf den Anwendungsdaten Ordner aller Benutzer oder? Wir brauchen aber die Vorlagen welche sich im jeweiligen Anwendungsdatenpfad des angemeldeten Users befinden. Sonst könnte ich das ganze ja auch ohne Variable lösen, wenn der Pfad statisch bleibt. Danke dir, denke und hoffe du wirst mir das letzte Quentchen noch erklären ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 1. April 2010 Teilen Geschrieben 1. April 2010 Ja die Variable war mich auch bekannt, bezieht sich doch aber meines Wissens nur auf den Anwendungsdaten Ordner aller Benutzer oder? Nein, der Anwendungsdatenordner aller Anwender ist immer der selbe (C:\Dokumente und Einstellungen\All Users\Anwendungsdaten). Dafür braucht man keine Variable. Schau dir den Wert der Variable an, dann siehst du es. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 Hmm das scheint er wohl bei Word einfach nicht nehmen zu wollen. Muss ich mir etwas anderes einfallen lassen. Wenn ich die Abfrage wie folgt gestalte, findet er ums verrecken die Datenquelle nicht. Weder mit einfachen Backslash noch mit doppelten, mit und ohne Anführungszeichen. Ich bekomm hier echt noch nen Heulkrampf ^^ DATABASE \d "%APPDATA%\\Microsoft\\Vorlagen\\benutzer.txt" \c "" \s "SELECT Zeichnungsberechtigung FROM %APPDATA%\\Microsoft\\Vorlagen\\benutzer.txt" \t "1" Hat jemand noch ne Idee für mich? Ich glaube ich bin der einzige, der sowas versucht, denn im Netz ist sehr sehr wenig zu finden mit den Datenbanken in Word. Grüße Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 Du bist wahrscheinlich auch der einzige der eine .txt-Datei als Datenbank bezeichnet. Wie sieht denn das komplette VB-Skript aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
r3m4 Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 Hey jetzt werd mal nicht gemein ;-) Ich hab es ja auch nur als Datenquelle bezeichnet und nicht als Datenbank :-) Ich hab das ganze aber auch schon mithilfe einer .xls versucht, jedoch keinen wirklichen Vorteil daraus ziehen können. Mit ner SQL Datenbank würde das ganze ja dann nicht mehr offline laufen oder? Das ganze steht ja nicht in nem VBA Code drin, der ist nach wie vor unverändert wie auf der vorherigen Seite zu finden. Den Code den ich gepostet habe bezieht sich nur auf das Feld, worin sich die "Abfrage" befindet. Lasse ich dort die Funktion nicht anzeigen, steht der Code wie oben geschrieben im Feld. Falls du eine komplett andere Lösung im Kopf hast die du mir zutraust umzusetzen, wär ich natürlich daran interessiert :-) Danke für die ausdauernde Unterstützung von dir :-) Grüße Jochen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 Mit ner SQL Datenbank würde das ganze ja dann nicht mehr offline laufen oder? Ja, solange der SQL-Server nicht auf localhost läuft. Den Code den ich gepostet habe bezieht sich nur auf das Feld, worin sich die "Abfrage" befindet. Lasse ich dort die Funktion nicht anzeigen, steht der Code wie oben geschrieben im Feld. Funktioniert bei mir auch nicht. Sieht so aus, als wenn die Feldfunktionen keine Windows-Variablen möchte. Warum muss die Datendatei in das %APPDATA%-Verzeichnis? Ich könnte mir auch vorstellen eine Accessdatei für alle Mitarbeiter zu erstellen die irgendwo auf der Platte liegt und die über die Feldfunktionen mittels ODBC angesprochen werden. Du könntest dann die Accessdatei mit einem Passwort schützen und das in der ODBC-Verbindung hinterlegen. Das ist aber alles eher eine Frickellösung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.