Office: (Office 2010) VBA = Text ein- und ausblenden per Kontrollkästchen

Helfe beim Thema VBA = Text ein- und ausblenden per Kontrollkästchen in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; \@All, offensichtlich bin ich hier fündig geworden, denn das ist es, was ich seit geraumer Zeit suche. Das eine oder andere Beispiel hier im Thread... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von audioclub, 23. Januar 2013.

  1. VBA = Text ein- und ausblenden per Kontrollkästchen


    \@All, offensichtlich bin ich hier fündig geworden, denn das ist es, was ich seit geraumer Zeit suche. Das eine oder andere Beispiel hier im Thread konnte ich nachvollziehen und reproduzieren. Die einfachste Variante war über die Formatvorlage reproduzierbar, was soweit auch sehr gut funktioniert - allerdings nicht ganz den Vorstellungen entspricht, da ja umsetzungsbedingt das Format einheitlich im Absatz sein muss. Was ich suche ist relativ einfach zu beschreiben.

    Wenn Textmarke 1 über eine Checkbox 1 ausgewählt wird, so sollten im darauffolgenden Absatz zusätzliche Informationen (Sätze) eingeblendet werden und als i-Tüpfelchen eine 2. Seite zu diesem Dokument aktiviert werden (Anlage_01 ...). Für Anlage 02-05 sollte es eine Checkbox 2-5 geben, wobei die Checkboxen für diese Auswahl/Aktion generell nicht gedruckt werden sollten.

    Ich würde mich freuen, wenn mir hier jemand einen Schubs in die richtige Richtung geben könnte - daher vorab schon einmal vielen Dank für Eure Unterstützung!

    Grüße aus Berlin

    Andreas
     
  2. Gerhard H
    Gerhard H Erfahrener User
    Hallo Andreas,

    etwas hab ich nicht verstanden:
    "Die einfachste Variante war über die Formatvorlage reproduzierbar, was soweit auch sehr gut funktioniert - allerdings nicht ganz den Vorstellungen entspricht, da ja umsetzungsbedingt das Format einheitlich im Absatz sein muss."

    Auf welche Variante beziehst du dich da (Beitrags-Nr)? Wo geht es um Formatvorlagen? Falls du von Autotexten redest: Die Möglichkeit, den Inhalt des Autotextes dem Format des Absatzes anzupassen, erreichst du einfach darüber, dass du den Autotext ohne Absatzmarke erfasst.

    Dein Wunsch, die Checkboxen nicht mitzudrucken, geht normalerweise so:
    den Absatz, in dem die Checkbox steht, ausgeblendet formatieren und dafür sorgen, dass a) ausgeblendeter Text auf dem Bildschirm sichtbar bleibt und b) auf dem Ausdruck nicht erscheint.
    Allerdings hab ich schon viele schlechte Erfahrungen mit dem Ausblenden speziell von Active-X-Elementen gemacht. Sie wollen nicht immer so wie ich.

    Wenn ich sowas machen muss, versuche ich diese Checkboxen aus dem Dokument rauszuhalten und im Voraus über eine Userform, die beim Dokumentstart erscheint, auszuwählen, was ich (nicht) brauche. Nicht nur in dem Zusammenhang wäre wichtig zu wissen:
    Schließen die Anhänge einander aus oder können auch mehrere im Dokument sein?
    Könntest du die Anhänge als eigenständige Dokumente gespeichert halten und bei Bedarf in dein Vertragswerk einzufügen lassen?
     
    Gerhard H, 10. Januar 2017
    #47
  3. Hallo Gerhard,

    vielen Dank erst einmal für Dein Feedback und sorry für mein "verspätetes" Feedback. Dachte, dass man per Mail informiert wird, wenn es einen neuen Beitrag im Thread gibt ... ^^

    Zu Deinen Fragen: Ich beziehe mich auf den Beitrag #11 mit folgendem Code:
    Code:
    Hier wird ja "hilfetext" als Absatzformatierung in der Formatvorlage hinterlegt. Wie gesagt, das funktioniert, allerdings ist der Absatz einheitlich definiert. Eine fette oder kursive Schrift ist in diesem Bereich mit dieser Methode nicht darstellbar. Eine Variante wäre hier STRG + UMSCHALT + H ... Den hier "ausgeblendeten" Text wollte ich eigentlich über eine Checkbox eingeblendet und somit druckbar haben. Um diverse Formatierungen zu ermöglichen, ging ich von der Variante "Bookmarks" aus.

    Das Heraushalten der Checkboxen wäre natürlich das i-Tüpfelchen, wobei mir hier aber ehrlich gesagt momentan absolut der Background zur Realisierung fehlt. Sinn der ganzen "Aktion" ist eine Automatisierung, so dass keine Vertragsbestandteile und die damit verbundenen Anhänge nicht "vergessen" werden können.

    Zum 1. Punkt NEIN und es können bzw. sind sogar im "Normalfall" tatsächlich mehrere Anhänge sowie zum 2. Punkt ... momentan liegen diese Anhänge als externe und eigenständige Worddateien vor.

    Anlage_01 Betreuungsmaßnahmen
    Anlage_02 Datenschutzerklärung
    Anlage_03 Lastschrifteinzug
    Anlage_04 Schlüsselhinterlegung usw. ...

    Auf den Punkt gebracht: Mein Problem ist halt, dass hin und wieder ein Anhang nicht mit ausgedruckt wurde und dann natürlich irgendwann "fehlt". Die Variante ein-/ausblenden via Checkbox fand ich attraktiv, da recht "einfach" umsetzbar.

    Grüße aus dem verschneiten Charlottenburg

    Andreas
     
  4. Gerhard H
    Gerhard H Erfahrener User

    VBA = Text ein- und ausblenden per Kontrollkästchen

    Hallo Andreas,

    zur Technik mit der Formatvorlage aus Beitrag 11: Nur dass wir uns nicht missverstehen: die Formatvorlage "Hilfetext" kann (muss aber nicht) genauso formatiert sein wie der Standardabsatz, nur dass die Formatvorlage anders heißt. Teile davon können sehr wohl fett oder kursiv sein. Jedoch kann der Absatz kann nicht als Fließtext innerhalb eines anderen Absatzes stehen. Er muss eigenständig sein.

    Zur Technik mit der Userform:
    Im Anhang gibts ein Beispiel für die Anhänge. Die Userform startet automatisch beim Erstellen eines neuen Dokuments auf Basis dieser Vorlage.

    Testbedingungen:
    Die Anhänge sind im gleichen Ordner gespeichert wie dieses Hauptdokument. Ihre Namen sind identisch mit der Beschriftung der Checkboxen auf der Userform (plus Endung), im Beispiel also Zusatzleistungen.docx, Premiumleistungen.docx und Ausschlüsse.docx.

    Nebenbei hab ich aus deiner Checkbox im Dokument einen Ein-Ausschalter gemacht.
     
    Gerhard H, 11. Januar 2017
    #49
  5. Hallo Gerhard,

    vielen Dank erst einmal für dieses Engagement - wirklich eine Klasse für sich! Genial, genau das, was ich mir vorgestellt habe. Ich hatte zwar anfangs einige "Probleme" mit meinem Word. Zum Einsatz kommt Word 2010 auf einer TS-Umgebung. Anfangs hatte ich ein komisches Verhalten. UserForm war zu sehen, obwohl das Dokument und Word nicht geöffnet war (visuell) oder Word wurde beendet - ApplCrash. War mir nicht sicher, ob dies mit diversen Instanzen zu tun hatte. Nach dem Neustart des TS läuft es aber prima und ohne Fehler. Für mich ergeben sich allerdings noch ein paar Fragen:

    (1) Seitenabstand oben auf Seite 1 ist auf 5,2 festgelegt - normalerweise kann man ja im Dokument hinterlegen, dass nach dem Abschnittswechsel - sprich 2. Seite der Abstand ab hier 1,8 betragen soll ... wird irgendwie nicht angenommen? - Notfalls ist das ja über ein paar Leerzeilen auf Seite 1 realisierbar!

    (2) Nachdem ich den An-/Ausschalter verschoben hatte, um diesen sichtbarer zu platzieren, ging die Bindung zum Code verloren? Das Feld ist nun nur noch optischer Natur ohne es anklicken zu können? Irgendwie kann ich nicht wirklich nachvollziehen, was da passiert ist. In diesem Zusammenhang kam mir die Idee, ob es nicht möglich wäre dies im eh schon vorhandenen UserForm gleich mit abzufragen/abzufangen?

    THX Andreas
     
  6. Gerhard H
    Gerhard H Erfahrener User
    Hallo ,

    Zur Kopfzeile:

    Was du über das Seitenlayout festlegen kannst, ist der Abstand der Kopfzeile vom Seitenrand, also quasi ihr oberer Rand (den hast du auf 0 gestellt, das dürfte deinem Drucker nicht gefallen).

    Die Höhe der Kopfzeile wird dann über den oberen Seitenrand definiert. Sollte aber der Inhalt der Kopfzeile mehr Höhe benötigen, nimmt sich die Kopfzeile diesen Raum automatisch.

    Wenn du unterschiedliche Abstände der Kopfzeilen auf der ersten und auf den Folgeseiten einrichten willst, machst du das in deinem Fall übers Seitenlayout > Erste Seite anders. Denn das Makro stellt gar keinen Abschnittswechsel her, sondern nur einen Seitenwechsel.

    Zum An/Ausschalter:

    Dass eine Checkbox seine Verbindung zum Makro durch Verschieben verliert, glaub ich nicht. Eher das: Um sie verschieben zu können, musst du in die Entwurfsansicht schalten. Da funktioniert das Makro natürlich nicht. Also: nach der Verschiebe-Aktion die Entwurfsansicht wieder abschalten.

    Im Übrigen stimme ich dir zu. Es wäre effektiver, diese Checkbox auch mit in die Userform aufnehmen. Allerdings müsste man den bisherigen Code und die Namen der bisherigen Checkboxen ändern, weil man ja die "Anhänge-Checkboxen" von den "Einblende-Checkboxen" unterscheiden muss.

    Das muss ich mir erst noch mal anschauen und komm vermutlich heute nicht mehr dazu. Wirds denn mehrere solcher "Einblende-Checkboxen" geben oder nur die eine?
     
    Gerhard H, 16. Januar 2017
    #51
  7. Gerhard H
    Gerhard H Erfahrener User
    Hallo Andreas,

    ich hab jetzt das Einblenden der Textmarken in die Userform mit aufgenommen. Ich gehe dabei davon aus, dass die Textmarken in der Dokumentvorlage standardmäßig ausgeblendet sind.

    Die Userform enthält jetzt also Checkboxen für Anhänge und Checkboxen für einzublendende Textmarken (diese sind im Dokument rot dargestellt). Du kannst beliebig viele Checkboxen bzw. Textmarken im Dokument hinzufügen, ohne was an den Makros ändern zu müssen, sofern du folgende Regeln einhältst:

    Die Namen für die Anhang-Checkboxen lauten "CheckAnh", gefolgt von einer fortlaufenden Nummer. Die Beschriftungen lauten wie die anzuhängenden Dokumente (ohne die Datei-Endung).
    Die Namen der Einblend-Checkboxen lauten "CheckEinblend", gefolgt von einer fortlaufenden Nummer. Die Beschriftungen lauten wie die Namen der Textmarken.

    Zu den Makros:

    Das Makro für den CommandButton der Userform dient jetzt nur noch der Unterscheidung der zwei Typen von Checkboxen und dem Sammeln dieser Checkboxen in zwei Listen (Anhänge-Liste und Einblend-Liste). Danach erst werden automatisch die beiden zugehörigen Makros aufgerufen.

    Diese Makros stehen im Modul 1 (dort sind auch die Variablen definiert, die projektweit gelten müssen). Das Makro zum Anhängen ist gegenüber der Vorversion fast unverändert. Das Makro zum Einblenden durchläuft jetzt alle Textmarken im Dokument, die in der Einblende-Liste aufgeführt sind, und stellt sie auf sichtbar.

    Teste das mal.
     
    Gerhard H, 17. Januar 2017
    #52
  8. VBA = Text ein- und ausblenden per Kontrollkästchen

    Hallo Gerhard,

    erst einmal vielen, vielen ... Dank! Eine super Sache, da Du mir hier mehr als geholfen hast die Sache so in die Wege zu leiten, wie wir es benötigen. Das geht weit über die benötigte "Anschubhilfe" bzw. Inspiration hinaus. Die Syntax ist mir doch etwas zu ungeläufig - wie Du sehen kannst, ich bin mehr als begeistert von Deiner Hilfe ... ^^ Sorry für den doch sehr späten Post, die Grippewelle hatte mich voll erwischt und eine ganze Weile außer Gefecht gesetzt!

    Im Anhang die aktuellste Version, wobei sich hier noch zwei kleine "Schwierigkeiten" herausgestellt haben. 1.) Um Platz im Dokument zu gewinnen, habe ich noch ein Feld zur Aktivierung integriert - private Vereinbarung. Nun ist mir aufgefallen, dass es zu einem Fehler kommt, wenn man alle Einblendungen deaktiviert.

    Code:
    ... wird dann beim Debuggen angezeigt!? Um diese Sache zu umgehen, habe ich den Value-Wert des letzten Einblendeintrages auf 'True' gesetzt. Ist aber eher ein Workaround als eine "fachmännische" Lösung. Vielleicht hast Du ja hier noch eine Idee ... ^^

    Das 2.) hängt eher mit dem Schließen des Dokumentes zusammen. Manchmal "hängt" bzw. "klemmt" da was. Kann natürlich an der TS-Umgebung liegen. Und zwar macht sich das in der Form bemerkbar, dass das bearbeitete Dokument und Word bereits geschlossen sind, das Makro aber irgendwie im Hintergrund noch aktiv ist. Starte ich die Vorlage dann neu wird mir nur die User.Form1 angezeigt. Word bzw. ein Dokument auf Grundlage der Vorlage ist weder in der Taskleiste noch über die Tab-Taste zu "erreichen". Scheint irgendwie unsichtbar als Task zu laufen. Lösung besteht dann darin Word zu öffnen und danach die Vorlage zu starten ... Zwischenzeitlich habe ich mir den Befehl "Alle Dokumente schließen" in Word im Menü hinterlegt. Dies scheint ein guter Lösungsansatz zu sein. Zumindest klappt es dann wieder normal mit der Vorlage ohne den TS neu starten zu müssen. Im VBA-Editor sehe ich dann die unzählig geöffneten Dokumente. Je nachdem wie häufig die Vorlage angeklickt worden ist. zu diesem Erscheinungsbild kam es immer dann, wenn meinerseits die Vorlage "angefasst" und bearbeitet worden ist.

    Da es eine Abhängigkeit zwischen dem Anhang A01_ und der Einblendung Leistungskomplex_20 (Eins bedingt halt das andere!) ergab sich für mich die Frage, ob man diese Beziehung auch irgendwie abbilden kann. Die Aktivierung von A01_ führt automatisch zur Aktivierung der Einblendung Leistungskomplex_20 und anders herum? This would be the icing on the cake ... You made my day!

    Nochmals vielen Dank für Deine Unterstützung.

    Grüße aus Berlin

    Andreas
     
  9. Gerhard H
    Gerhard H Erfahrener User
    Hallo Andreas,

    Fehler, wenn man alle Einblendungen deaktiviert
    Das ist logisch und ein Fehler im Makro. Denn wenn keine Einblendung gewählt ist, ist die Textlänge von einblendSammlung gleich 0, und davon kann man nichts abziehen. Abhilfe: Füge in der Public Sub Einblenden die rote Zeile ein:
    Code:
    Wenn das Einblenden der Textmarke "Leistungskomplex_20" immer direkt daran gekoppelt ist, dass der Anhang "A01_Betreuungsmaßnahmen" ausgewählt ist, dann kannst du in der Userform die entsprechende Checkbox rausnehmen und das Einblenden statt dessen im Makro Public Sub Anhängen (Modul 1) regeln. Füge dazu die roten Zeilen ein:
    Code:
    Zu den Problemen beim Schließen des Dokuments hab ich keine Antwort. Im Makro kommt das Schließen ja gar nicht vor. Du könntest zu Beobachtungszwecken im Modul Userform 1 ganz am Ende eine Meldung einblenden lassen:
    Code:
    So lange die nicht erscheint, ist die Abarbeitung des Codes nicht abgeschlossen. Vielleicht fällt dir daran was Verwertbares auf.
     
    Gerhard H, 7. Februar 2017
    #54
  10. Hi,

    ich habe ein Problem. Und zwar habe ich das Activex-Steuerelement Kontrollkästchen eingefügt und auch den Code von Gerhard zum ein- und ausblenden von Textpassagen ( die Schritte davor habe ich ebenso durchgeführt). Generell hat das auch geklappt. Allerdings passiert beim wieder einblenden folgendes. Es wird nicht der gesamte Text wieder eingeblendet und auch beim ersten ausblenden wird erst der Teil ausgeblendet, der auch anschließend beim einblenden fehlt und dann wird alles ausgeblendet. Ja und eingeblendet wird halt nicht mal die Hälfte des Textes. *redface.gif*

    Ich brauche das für mehrere Textpassagen, die je nach Notwendigekeit ein- oder ausgeblendet werden sollen.

    Danke schonmal!
    LG Jule
     
    sugar1337, 4. Mai 2017
    #55
  11. Gerhard H
    Gerhard H Erfahrener User
    Hallo Jule,

    das ist ein ellenlanger Thread, der im Jahre 2013 begonnen hat. Worauf genau beziehst du dich? Und: Je nachdem, wie dein Dokument aussieht, muss das Makro möglicherweise modifiziert werden.

    Lade also bitte ein - notfalls anonymisiertes - Musterdokumen mitsamt Makro drinnen hoch und erläutere anhand dieses Dokuments noch einmal dein Problem.
     
    Gerhard H, 4. Mai 2017
    #56
  12. Hallo,

    danke für die schnelle Anwort (mein Problem bezieht sich auf deinen ersten Post mit der Beschreibung und dem Dokument mit dem Makro-Code)

    Anbei mein Testdokument. Das Ausblenden funktioniert und dann gibt es beim Einblenden das Problem, dass nur die Hälfte eingeblendet wird.
     
    sugar1337, 4. Mai 2017
    #57
  13. Gerhard H
    Gerhard H Erfahrener User

    VBA = Text ein- und ausblenden per Kontrollkästchen

    Hallo sugar,

    ich konnte den Fehler nachvollziehen. In dem Makro selber gab es auch noch einiges, was nicht in Ordnung war. Ich hab es einfach komplett renoviert und in dein Muster eingebaut. Den Autotext hab ich leicht verändert, so dass man Anfang und Ende besser identifizieren kann. Jetzt sollte es funktionieren.
     
    Gerhard H, 4. Mai 2017
    #58
  14. Wow danke! Das ist ja ein riesen Code jetzt. Das brauch ich auch jedesmal alles wenn ich noch ein paar Texte mehr damit ein- und ausblenden möchte? Also für CheckBox2, 3, 4, 5 usw.?
     
    sugar1337, 4. Mai 2017
    #59
  15. Gerhard H
    Gerhard H Erfahrener User
    Hallo nochmal,

    nein, nein, kein riesiger Code ;-)

    du brauchst nur den ersten Code. Die andern beiden (Private Sub CheckB und Sub probier) sind "Restbestände" vom Rumprobieren. Die kannst du rauslöschen.

    Und den Code von Private Sub Checkbox1_Click kannst du ja kopieren und musst jeweils nur den Namen der Checkbox, des Autotextes und der Textmarke ändern.

    Wenn du viele solcher Checkboxen hast, könnte man auch eine Lösung auf Klassenmodul-Basis versuchen. Das wäre "eleganter" und würde den Code verschlanken, aber hinsichtlich der gewünschten Funktion wäre es nicht unbedingt notwendig.
     
    Gerhard H, 5. Mai 2017
    #60
Thema:

VBA = Text ein- und ausblenden per Kontrollkästchen

Die Seite wird geladen...
  1. VBA = Text ein- und ausblenden per Kontrollkästchen - Similar Threads - VBA Text ausblenden

  2. Per VBA Zeilen einfügen und danach in diese Texte kopieren

    in Microsoft Excel Hilfe
    Per VBA Zeilen einfügen und danach in diese Texte kopieren: Hallo zusammen, ich möchte im 1. Schritt via VBA-Code eine bestimmte, variable Anzahl Zeilen (der Wert wird immer im Reiter "Data" in der Zelle S32 ermittelt) in einem anderen Reiter namens...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. Pluszeichen bei pos. Werten mit benutzerdef. Formaten in markiertem Bereich voranstellen

    in Microsoft Excel Hilfe
    Pluszeichen bei pos. Werten mit benutzerdef. Formaten in markiertem Bereich voranstellen: Hallo zusammen, ich habe folgendes Problem: Ich möchte in hunderten Tabellen bzw. tausenden Zellen positiven Werten ein "+"-Zeichen voranstellen (also z.B. "+0,4" statt "0,4") und würde das...
  5. Makro/VBA Text in Zahl umwandeln

    in Microsoft Excel Hilfe
    Makro/VBA Text in Zahl umwandeln: Hallo liebes Forum, ich habe eine Frage und bin bisher leider nicht so wirklich fündig geworden :oops: Aber ich bin mir sicher, dass ich hier Hilfe bekomme *;)* In meiner Arbeitsdatei sind...
  6. Zeile bei Bedingung in anderen Reiter kopieren

    in Microsoft Excel Hilfe
    Zeile bei Bedingung in anderen Reiter kopieren: Hallo zusammen, ich habe eine Excel Tabelle mit verschiedenen To Dos für mich. Jedes Mal, wenn ich eine Zeile in Spalte G als "done" markiere möchte ich, dass die komplette Zeile in einen anderen...
  7. verschiedenen Text in einer Zelle mit VBA darstellen

    in Microsoft Excel Hilfe
    verschiedenen Text in einer Zelle mit VBA darstellen: Hallo zusammen, ich bin blutiger VBA Anfänger und verzweifele gerade an folgender Problematik. Über eine UserForm möchte ich auswählen welchem Geschlecht die Mitarbeiter angehören. Ich habe also...
  8. TXT-Import brauchbar machen

    in Microsoft Excel Hilfe
    TXT-Import brauchbar machen: Hallo zusammen, mein Problem sieht wie folgt aus. In regelmäßigen Abständen erhalte ich Daten als txt, die in Excel importiert werden müssen. Das importierte Format kann nur mit sehr viel...
  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