Office: (Office 2016) Inhaltssteuerelemente vor dem Schließen prüfen

Helfe beim Thema Inhaltssteuerelemente vor dem Schließen prüfen in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bin auf der Suche nach einer Möglichkeit, das Word mein Dokument vor dem speichern bzw. schließen überprüft, ob wirklich alle... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von SkarTulgah, 14. Dezember 2021.

  1. SkarTulgah
    SkarTulgah User

    Inhaltssteuerelemente vor dem Schließen prüfen


    Hallo zusammen,

    ich bin auf der Suche nach einer Möglichkeit, das Word mein Dokument vor dem speichern bzw. schließen überprüft, ob wirklich alle Inhaltssteuerelemente ausgefüllt sind.

    Das Dokument enthält verschiedene Elemente: Dropdown, Kontrollkästchen und Nur-Text.
    Eigentlich würde es mir reichen, wenn geprüft wird, dass überhaupt etwas mit den Elementen gemacht wurde, also ob ein Inhalt eingefügt wurde.

    Bei den Kontrollkästchen wird das wahrscheinlich schon komplizierter. Denn wenn hier ein "Nein" angekreutz wird, kann das nachfolgende Text-Element ingnoriert werden, bei einem "Ja" muss das nachfolgende Element mit einem Inhalt versehen werden.

    Und jetzt das Beste: Ich habe keine Ahnung von VBA ;) also wenn es nur so zu lösen ist, brauche ich da tatsächlich jemanden der mir das Ding auch noch schreibt...

    Ja, viel verlangt für einen ersten Post, aber vielleicht hat jemand Zeit und Lust mir zu helfen, vielen Dank!
     
    SkarTulgah, 14. Dezember 2021
    #1
  2. Gerhard H Erfahrener User
    Hallo Skar,

    ohne VBA geht das sicher nicht. Das Problem bei einer Kombination "Komplettlösung" und "keine Ahnung" besteht darin, dass du bei jeder Kleinigkeit, die geändert oder korrigiert werden muss, sofort aufgeschmissen bist.

    Aber weil ja bald Weihnachten ist, können wir es mal probieren. Im Anhang ein Dokument, das vorerst nur zum Testen dient, ob du es in dein Originaldokument implantieren kannst und es dort funktioniert. Es prüft noch nicht anlässlich des Speicherns, sondern muss händisch aufgerufen werden. Das Dokument ist gezippt, weil hier Dokumente mit Makros nicht erlaubt sind.

    In deinem Originaldokument musst du die Tags der Inhaltssteuerelemente so beschriften, wie im Musterdokument erläutert.

    Das Makro implantierst du so:
    • Du öffnest das Musterdokument und drückst Alt-F11 drücken, um den VBA-Editor aufzurufen
    • Links siehst du den Namen des Dokuments. Dort klickst du dich durch bis "ThisDocument". Diesen Eintrag klickst du doppelt und kopierst den Code aus dem sich öffnenden Codefenster.
    • Dann öffnest du dein Originaldokument und fügst das kopierte Makro ebenfalls ins Modul "ThisDocument" ein.
    • Gestartet wird das Makro über Entwicklertools > Makros

    Wenn das klappt, kann man weitermachen. Wenn nicht, lad deinerseits ein bei Bedarf gekürztes und anonymisiertes Musterdokument hoch.
     
    Gerhard H, 15. Dezember 2021
    #2
    1 Person gefällt das.
  3. SkarTulgah
    SkarTulgah User
    Hallo Gerhard,

    Ich bin leider gerade zeitlich stark eingespannt, werde mir das Dokument aber ansehen und mich wieder melden.
    Schon jetzt einmal vielen, vielen Dank für deine Mühen!
     
    SkarTulgah, 16. Dezember 2021
    #3
  4. SkarTulgah
    SkarTulgah User

    Inhaltssteuerelemente vor dem Schließen prüfen

    Hallo Gerhard,

    ich habe mir gerade deine Datei angesehen und muss nocheinmal viel Dank sagen. Ich denke, dass ich damit generell arbeiten könnte. Bevor ich aber tiefer einsteige um zuverstehen, was da genau vorsich geht habe ich noch eine Frage:

    Du schreibest, das Dokument muss eine DOTM sein. Ist das eine Voraussetzung, damit die Macros funktionieren?

    Ich frage deshalb, weil die Software mit der wir arbeiten einen sog. "Druckdienst" hat. In diesen Druckdienst hinterlegen wir unsere Dokumente bzw. Vordrucke (in dieses Druckdienst käme auch die Vorlage, für die ich hier meine Anfrage gestellt habe). Die Mitarbeiter suchen dann aus dem Druckdienst den notwendigen Vordruck und erhalten dann vom Proramm quasi eine Kopie der Datei auf ihrem System, die dann von dem Mitarbeiter mit Inhalt gefüllt wird.
    Der Druckdienst ist also quasi ein Verzeichnes, dass im Netzwerk liegt, auf welches alle Nutzer zugriff haben und sich ihre benötigten Word-Dateien herausholen können (ich hoffe ich konnte das mit meinem "super IT-Wissen" halbwegs gut erklären).

    Jetzt zum großen ABER: Der Druckdienst kann nur mit DOC und DOCX Datein arbeiten, ich habe Systemseitig keine Möglichkeit deine DOTM einzupflegen, womit ich wieder zu o.g. Frage komme, weil sonst brauchen wir leider nicht weiter machen.
     
    SkarTulgah, 17. Dezember 2021
    #4
  5. Gerhard H Erfahrener User
    Hallo Skar,

    nein, eine dotm müsste es nicht sein. Das wäre nur, um sicher zu gehen, dass alle Felder anfänglich leer sind. Wenn es nur ein normales Dokument ist, hat man das Problem, dass die Felder schon vom Vorgänger ausgefüllt sein können. Könnte man so lösen, dass beim Öffnen des Dokuments erst mal alles geleert wird.

    Hier allerdings hakt es:
    "Der Druckdienst kann nur mit DOC und DOCX Dateien arbeiten"

    Das hat vier Konsequenzen:
    • Du müsstest das Dokument dann als *.doc (Dateiformat von Word 2003 und früher) speichern, da eine docx kein Makro speichern kann.
    • Versionen vor Word 2007 können allerdings keine Inhaltssteuerelemente. Du müsstest also auf die alten Formulare aus Vorversionen ausweichen (findest du bei den Steuerelementen im "Werkzeugkasten").
    • Dazu muss das Dokument schreibgeschützt sein. Das bedeutet, dass überall da, wo der Anwender wasreinschreiben können soll, Textfelder vorzusehen sind. Freier Text geht nicht mehr.
    • Und du musst schauen, was dein Druckdienst dazu sagt.
    Letzteres kannst du einfach prüfen, indem du ein Dokument mit ein paar Formularfeldern entwirfst, den Schutz einschaltest und mal probedruckst.

    Wenn alle vier Bedingungen erfüllt sind, kann ich versuchen, das Makro auf Vorversionsfelder umzustricken.
     
    Gerhard H, 17. Dezember 2021
    #5
    1 Person gefällt das.
  6. SkarTulgah
    SkarTulgah User
    Hallo Gerhard,
    ich habe ein Dokument als Anlage beigefügt. Innerhalb dieses Formulares gibt es alle Varianten, die ich eingangs beschrieben hatte. Das Dokument ist schreibgeschützt (ohne Passwort) und im DOC Format.

    Wenn du mir für diese Optionen entsprechend meiner Beschreibungen einmal ein Skript anlegen könntest, denke ich, kann ich damit dann die Formulare selber bearbeiten.

    Ich hoffe meine Beschreibungen sind verständlich.

    Vielen Dank :)
     
    SkarTulgah, 28. Dezember 2021
    #6
  7. Gerhard H Erfahrener User
    Hallo Skar,

    das sind ja jetzt ziemlich viele unterschiedliche Bedingungen geworden. Ich glaub nicht, dass es damit getan ist, einen Mustercode zu entwerfen, der auf alle Bedingungen passt. Zum Beispiel gibt es im Bereich Sorgerechtsregelung auszufüllende Pflicht-Textfelder dann, wenn die zugehörige Checkbox angehakt ist; im Bereich gemeinsame Kinder ist es grad umgekehrt.

    Aus diesem Grund haben sich meine Bedenken hinsichtlich Komplettlösung und keine Ahnung noch verstärkt - aber das musst du wissen.

    Im Anhang ein Entwurf (gezippt, da hier dotm-Formate nicht erlaubt sind), der so funktioniert: Du doppelklickst die dotm und erhältst davon eine Kopie als docx, welche du ausfüllst. Anlässlich des Speicherversuchs dieser docx startet die Prüfung, und endet, wenn alles ok ist, vorerst nur mit einer entsprechenden Meldung. Dann kannst du die docx als doc speichern, welche kein Makro mehr enthält. Die bietest du deinem Druckdienst an. In der Endfassung kann man statt der Meldung entweder einen Speicherdialog erscheinen lassen oder das Dokument gleich ungefragt speichern).

    Ich hab die Prüfung vorerst nur für die Bereiche Zuständigkeit und Sorgerechtsregelung (der blau unterlegte Bereich) gecodet.

    Dabei ist wichtig: Um mir die Zuordnung zu (Pflicht-)Checkboxen und Pflicht-Textfeldern zu erleichtern hab ich die einzelnen Bereiche in Tabellen umgewandelt.

    Der Code erkennt die Tabellen anhand von Textmarken. Diese stecken jeweils in der ersten Zelle. Du siehst diese, wenn du Optionen > Erweitert > Dokumentinhalt anzeigen > Textmarken anzeigen aktivierst). Eleganter wären Alternativtexte (Title) gewesen, aber das geht im *.doc-Format nicht)

    Du müsstest dein Original-Dokument entsprechend umbauen. Schau es dir mal an, ob es so ein gangbarer Weg ist.
     
    Gerhard H, 30. Dezember 2021
    #7
    1 Person gefällt das.
  8. SkarTulgah
    SkarTulgah User

    Inhaltssteuerelemente vor dem Schließen prüfen

    Hallo Gerhard,

    im Grunde klappt es genau so, wie ich es mir vorgestellt habe.
    Mit einem kleinen (oder eher großen ABER ;) )

    Selbst wenn alles korrekt ausgefüllt ist und das Skript nicht mehr über eine fehlende Ausfüllung meckert, kommt die Meldung, dass alles korrekt ausgefüllt ist. Doch genau diese Meldung kommt jedes Mal wenn ich das Dokument speichern möchte.

    D. h. ich bekomme gar nicht die Möglichkeit, eine docx bzw. eine doc anzulegen.
     
    SkarTulgah, 30. Dezember 2021
    #8
  9. Gerhard H Erfahrener User
    Hallo Skar,

    ja, sorry. mir gings erst mal nur drum, dass du siehst, wie das Prüfmakro arbeitet, und ob du dein Dokument entsprechend herrichten kannst.

    Speichern kannst du so:
    Bei der Variablendeklaration fügst du noch die Variable lngOk dazu:
    Code:
    Dim zeileNr As Long, anzZeilen As Long, anzAktiv As Long, lngOk As Long
    und unten ersetzt du die bisherige Messagebox durch diese Zeilen:
    'und ganz zum Schluss der Speicherdialog
    Code:
    'und ganz zum Schluss der Speicherdialog
    lngOk = MsgBox("Speichern?", vbYesNo)
    If lngOk = 6 Then 'yes
        Dialogs(wdDialogFileSaveAs).Show
    Else
        ActiveDocument.Close savechanges:=False
     End If
     
    Gerhard H, 30. Dezember 2021
    #9
    1 Person gefällt das.
  10. SkarTulgah
    SkarTulgah User
    Hallo Gerhard,

    ich habe die die Code-Zeilen hinzugefügt und nun klappt auch das Speichern, danke dafür.

    Zwar reicht mein Know-How nicht um die Funktionsweise des Makros zu verstehen, aber ich kann es auf mein Dokument replizieren.

    Dabei ist mir aufgefallen, dass ich in dem Druckdienst *.docm nutzen könnte. Wäre es möglich das Makro entsprechend umzuschreiben, dass es auch damit funktioniert? Der Druckdienst dient ja quasi als Dokumentenvorlage. Die Benutzer erhalten ja quasi immer nur Kopien der Word Datei, die ich als Administrator eingefügt habe.

    Ganz unabhängig davon, hast du eine Empfehlung für ein Selbststudium, wenn ich VBA in Word als Anfänger erlernen möchte? Ich finde irgendwie nur Bücher mit VBA für Excel oder ist das egal, da es in beiden Anwendungungen VBA ist und ich es unabhängig nutzen könnte?
     
    SkarTulgah, 3. Januar 2022
    #10
  11. Gerhard H Erfahrener User
    Hallo Scar,

    ich würde das mit dem docm-Format nicht machen, denn ich seh nur Nachteile:

    Erstens für dich: Ein docm beinhaltet ja immer den Status nach dem letzten Speichern und deshalb müsstest du erst mal alle Checkboxen und Textfelder leeren bzw. kontrollieren, bevor du neu mit dem Ausfüllen anfangen kannst.

    Zweitens für deine Kollegen. Es ist doch sicherer, wenn die kein Dokument mit Makros in die Finger kriegen. Dann können sie auch nichts Verkehrtes damit anstellen.

    Wenn du aber meinst, das bringt dir was, dann mach es so:

    Speichere dein Dokument als docm und kopier das Makro aus der bisherigen Vorlage dort rein.
    Ersetze dann die bisherigen ersten beiden Routinen durch diese:
    Code:
    Private Sub document_Open()
    Set wrdApp = Word.Application
    End Sub
    
    Private Sub wrdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
     If Doc.Name = ThisDocument.Name Then
        Cancel = True
        Call kontrolliers
    End If
    End Sub
    Achtung, die Zeile mit Private WithEvents stehen lassen!

    Was die Buchempfehlung betrifft: Nein, Excel-VBA und Word-VBA sind doch ziemlich verschieden. Aber wenn du nicht unbedingt auf die neuesten Versionen fixiert bist (was bei den VBA-Basics auch wirklich nicht nötig ist), findest du für billiges Geld schon was, auch speziell für Word. Das hier - Richtig Einsteigen: Word VBA-Programmierung - soll keine Empfehlung sein, da ich das Buch nicht kenne, sondern nur ein Beispiel.
     
    Gerhard H, 3. Januar 2022
    #11
    1 Person gefällt das.
  12. SkarTulgah
    SkarTulgah User
    Hallo Gerhard,

    scheinbar fällt es mir schwer, die Funktionsweise des Druckdienstes richtig darzustellen.
    Es ist nämlich nicht so, dass meine Kollegen die Felder alles wieder leeren müssten. Durch den Druckdienst erhalten diese immer das ursprüngliche Dokument. Daher kann ich auch nicht mit richtigen Vorlagen arbeiten. Jeder Anwender erhält eine Kopie der Original DOCM Datei, zur Bearbeitung. Nach Bearbeitung der Datei wird durch den Druckdienst die Datei automatisch seinem entsprechenden Fall zugeordnert und dort abgespeichert. Jeder hat also immer wieder eine DOCM vorsich.

    Grundlegend hast du recht, dass es besser wäre, wenn die Endnutzer, keine Datei mit Macros hätten. Doch das lässt sich - so wie ich es sehe - nicht umsetzen, oder ich stehe noch irgendwo "aufem Schlauch".

    Ein Buch werde ich mir aufjedenfall zulegen, ich bin doch sehr interessiert, dass ganze etwas besser verstehen zu wollen.

    Wie sieht das mit den anderen Situationen aus, kannst du da auch ein Marko aus dem Hut zaubern ;) ?
     
    SkarTulgah, 7. Januar 2022
    #12
  13. Gerhard H Erfahrener User

    Inhaltssteuerelemente vor dem Schließen prüfen

    Hallo scar,

    wenn das mit der Dokumentvorlage nicht geht, muss wohl jeder Anwender ein Dokument mit dem Makro drin kriegen, das wie beschrieben per Document_Open angestoßen wird. Aber dann ist das Problem doch gelöst, wenn auch umständlich, oder?

    Was meinst du mit "den anderen Situationen"?
     
    Gerhard H, 7. Januar 2022
    #13
    1 Person gefällt das.
  14. SkarTulgah
    SkarTulgah User
    Guten Morgen Gerhard,

    ja, die Makros erhält dann jeder Benutzer, ich denke aber, dass das nicht weiter problematisch sein wird. Ich muss eh eine "Anleitung" schreiben, wenn neue bzw. überarbeitete Dokumente in Umlauf gebracht werden, dabei kann ich auf das Thema kurz eingehen. Der großteil der Nutzer haben noch weniger Ahnung von Word als ich.

    Mit den anderen Situationen meinte ich, ob du mir für die anderen Beispiele in meinem Dokument auch ein Makro schreiben könntest? Ich weiß nicht wieviel arbeit das für dich ist und hoffe, die Frage ist nicht zu vermessen? Ich bin dir bereits jetzt sehr dankbar für deine ganze Hilfe!
     
    SkarTulgah, 11. Januar 2022
    #14
  15. Gerhard H Erfahrener User
    Hallo Scar,

    im Anhang das gesamte Opus. Bedenke bitte, dass jede Änderung am Dokument in aller Regel auch Änderungen am Makro nötig macht (besonders was Anzahl von Tabellenspalten und deren Befüllung mit Formularfeldern angeht).

    Die Fehler, die in so einem Fall passieren können, hab ich ganz grob abgefangen, mit dem Hinweis, dass du der Schuldige bist ;-)

    Es gibt noch einen Schönheitsfehler, mit dem ich nicht zurecht komme: Wenn man das Dokument ohne zu speichern schließen will, kommt trotzdem noch ein Hinweis auf korrektes Ausfüllen. Das hat vermutlich damit zu tun, dass Word freundlicherweise vorübergehend eine aktuelle Kopie des Dokuments speichert, was hier eher stört. Vielleicht kannst du damit leben.

    Ansonsten: vor dem Einsatz erst mal gründlich testen.
     
    Gerhard H, 11. Januar 2022
    #15
    1 Person gefällt das.
Thema:

Inhaltssteuerelemente vor dem Schließen prüfen

Die Seite wird geladen...
  1. Inhaltssteuerelemente vor dem Schließen prüfen - Similar Threads - Inhaltssteuerelemente Schließen prüfen

  2. Dropdown Feld und Tabulator

    in Microsoft Word Hilfe
    Dropdown Feld und Tabulator: Hallo Zusammen! Ich habe in einem Word-Dokument ein Dropdown Feld (Inhaltssteuerelement) erstellt. Im restlichen Dokument sind viele Textformularfelder. Wenn ich die Bearbeitung einschränke, kann...
  3. Datumsauswahl-Inhaltssteuerelement inaktiv

    in Microsoft Word Hilfe
    Datumsauswahl-Inhaltssteuerelement inaktiv: Hallo, ich möchte ein Datumsauswahl-Inhaltssteuerelement in ein bestehendes Dokument einfügen. Ich kann dies aber unter den Entwickleroptionen nicht auswählen, weil dies (wie fast alle anderen...
  4. Hyperlink mit Inhalten aus Inhaltssteuerelement

    in Microsoft Word Hilfe
    Hyperlink mit Inhalten aus Inhaltssteuerelement: Hallo zusammen, in einem Word-Dokument werden über separate Text-Inhaltssteuerelemente Breitengrad (52.xxxx) und Längengrad (8.xxxx) eingegeben. Die Inhalte der Text-Inhaltssteuerelemente möchte...
  5. Word Text Inhaltssteuerelement mit Excel VBA füllen

    in Microsoft Excel Hilfe
    Word Text Inhaltssteuerelement mit Excel VBA füllen: Hallo zusammen, ich möchte gerne in Word Inhaltsteuerelemente mit Excel VBA füllen. Leider erhalte ich immer die Fehlermeldung: Laufzeitfehler '5941' Das angeforderte Element ist nicht in der...
  6. Informationen zu Inhaltssteuerelementen

    in Microsoft Word Tutorials
    Informationen zu Inhaltssteuerelementen: Informationen zu Inhaltssteuerelementen Word für Microsoft 365, Word 2019, Word 2016, Word 2013, Word 2010 Andere Versionen  Word...
  7. Zahlen im Rich-Text Inhaltssteuerelement

    in Microsoft Word Hilfe
    Zahlen im Rich-Text Inhaltssteuerelement: Hallo, ich möchte, dass im Rich-Text Inhaltssteuerelement nur ganze Zahlen mit 1.000er Trennpunkt eingegeben werden können. Gibt es dafür eine Einstellung?:confused: Sonnige Grüße nana
  8. Schachteln von Inhaltssteuerelementen

    in Microsoft Word Hilfe
    Schachteln von Inhaltssteuerelementen: Hallo Miteinander, verzweifle gerade an einem Problem. Ich habe eine Tabelle, die ein Dropdownmenü enthält. Die Tabelle soll über ein Inhaltssteuerelemet für wiederholte Abschnitte dupliziert...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden