Office: Formular je nach Dropdownauswahl

Helfe beim Thema Formular je nach Dropdownauswahl in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo Gerhard, die Tabellenlinien lassen sich immer noch manuell verschieben. Könnte man das irgendwie mit einem Makro lösen, so wie du es am... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von Robbytänzer, 2. Januar 2026.

  1. Formular je nach Dropdownauswahl


    Hallo Gerhard,

    die Tabellenlinien lassen sich immer noch manuell verschieben.
    Könnte man das irgendwie mit einem Makro lösen, so wie du es am vergangenen Montag angesprochen hast.
    Mit was könnte man dieses Makro starten oder aktivieren, geht das irgendwie mit einem Button oder ähnlichem?

    Viele Grüße
    Robert
     
  2. Gerhard H
    Gerhard H Erfahrener User
    Hallo Robby,

    per Makro kann das klappen, allerdings bedeutet das für dich als VBA-Unkundigem, dass du bei jeder Kleinigkeit aufgeschmissen bist. Wie dem auch sei, hier ein Lösungsangebot.

    Statt des Bausteinkatalogs (der ja bei geschütztem Dokument nicht bedienbar ist), wird eine Userform eigesetzt.
    Voraussetzungen für das Funktionieren sind:
    • Du musst die Pfadangabe im Makro an der gekennzeichneten Stelle anpassen,
    • Du musst bei der Erfassung der Tabellen als Textbausteine je 1 leere Absatzmarke über und unter der Tabelle mitmarkieren
    Weitere Erklärungen im Dokument selbst. Das Dokument wie gehabt in einen Ordner kopieren und per Doppelklick starten.

    Hier die im Dokument enthaltenen Prozeduren:

    Im Modul ThisDocument:
    Code:
    Private Sub Document_New()
    UserForm1.Show
    End Sub
    Im Modul Userform1:
    Code:
    Private Sub userform_activate()
    'Userform füllen
        With ComboAuswahl
            .Clear
            .AddItem "Gesang"
            .AddItem "Tanz"
            .AddItem "Pause"
            .ListIndex = 0
        End With
    End Sub
    
    Private Sub cmdEintrag_Click()
    Dim eintrag As String, einfuegestelle As Range
    Dim meineVorlage As Template
    
    'Definition der Vorlage und Pfad zur Vorlage:
    Set meineVorlage = _
    Application.Templates("C:\1temp\robby\TextbausteinePerUserform.dotm") '**Anpassen
    
    'Textmarke als Einfügestelle:
    Set einfuegestelle = _
    ActiveDocument.Bookmarks("baustein").Range
    
    'gewählter Bausteinname:
    eintrag = ComboAuswahl.Value
    
    'Dokumentschutz aufheben
    With ActiveDocument
        If .ProtectionType <> wdNoProtection Then .Unprotect
    
        'gewählten Baustein an Textmarke einfügen
        meineVorlage.BuildingBlockEntries(eintrag).Insert _
        where:=einfuegestelle
        .Bookmarks.Add Name:="baustein", Range:=einfuegestelle
    
        'Dokument wieder schützen
        If .ProtectionType = wdNoProtection Then
            .Protect Type:=wdAllowOnlyFormFields, noreset:=True
        End If
    End With
    
    'Userform schließen
    Unload Me
    End Sub
    
     
    Zuletzt bearbeitet: 12. Januar 2026 um 10:50 Uhr
  3. Hallo Gerhard,

    vielen lieben Dank, ist eine tolle Sache.
    Hatte in deinem Download zunächst einen Laufzeitfehler 5941 (falscher Pfad), konnte ich korrigieren, dann hat es geklappt mit der Auswahl aus der Combobox.
    Allerdings weiß ich nicht, wie ich weitere Textbausteine auswählen kann, ich kann nur einen auswählen, nach Erscheinen des Textbausteins erscheint die Combobox nicht mehr für eine weitere Auswahl.

    Viele Grüße
    Robert
     
  4. Gerhard H
    Gerhard H Erfahrener User

    Formular je nach Dropdownauswahl

    Hallo Robert,

    ich hatte dich so verstanden, dass du immer nur einen Baustein pro Dokument haben willst.

    Willst du jetzt mehrere untereinander oder einen durch den anderen ersetzen?
    Falls ersteres:
    Wo soll der nächste Baustein eingefügt werden? Direkt nach dem schon existierenden oder an einer bestimmten Stelle?
    Ist die Reihenfolge der Bausteine fix oder variabel?
    Und wieviele Bausteine werden es denn letztendlich?
    Könntest du mal ein fertiges händisch erstelltes Beispieldokument hochladen, damit ich klarer sehe? Es geht mir auch darum, zu sehen, ob zwischen den einzelnen Bausteinen oder nach dem letzten Baustein noch Text stehen soll.

    Je nachdem, was Sache ist, könnte es doch wieder Schwierigkeiten mit einem durchgängigen Schutz geben.
     
  5. Hallo Gerhard,

    wie von mir anfangs beschrieben, ändert sich die Reihenfolge und die Anzahl der Tänze, Pausen und Gesänge, je nach Auftritt.
    - der nächste Baustein soll immer unter den letzten Baustein angehängt werden
    - die Reihenfolge ist variabel
    - die Anzahl der Bausteine ist unterschiedlich
    - zwischen den Bausteinen darf kein Text eingefügt werden können
    - zwischen den Bausteinen kann sich eine Leerzeile befinden, zwecks optischer Abgrenzung
    - wäre eine Löschung eines versehentlich gewählten Bausteins möglich (evtl. mit Button innerhalb eines jeden Bausteins)

    Eine Zwischeninfo, warum ich diese strikte Vorgabe bevorzuge:
    Die schon etwas ältere Trainerin unseres Tanzvereins schafft es jedes Mal, vor unseren Auftritten für uns ein total zerschossenes Programm zu erstellen, ohne System, ohne klare Struktur, extrem improvisiert. Formular je nach Dropdownauswahl :confused:
    Es ist keine klare Abgrenzung zwischen Tänzen, Pausen und Gesängen ersichtlich.
    Wir wissen oft nicht, in welcher Richtung, von den aufgeführten Tänzern betrachtet, sich das Publikum befindet. Mal ist es oberhalb der Namen, mal unterhalb. Das ist jedoch für uns wichtig für die Aufstellung, da eine "spiegelbildliche" Aufstellung nicht funktioniert. Wenn man sie drauf anspricht, sagt sie ungehalten, das müsse man doch wissen etc. Sie hat immer Recht!!! Dies führt oft zu Missverständnissen und erheblichem Frust bei uns allen. Formular je nach Dropdownauswahl :(
    Es ist für uns ein Rätzel, wie sie es schafft, in unseren Übungsstunden die Musiktitel von ihrem Apple iPad abzuspielen, das klappt problemlos. Formular je nach Dropdownauswahl o_O
    Ich habe ihr dann zuerst ein normales Formular angeboten (ohne Sperrung), mit "copy and paste" der einzelnen Tabellen aus einer zweiten, s.g. "Vorlagendatei", damals wusste ich noch nichts von Bausteinen. Ergebnis: es war eine Katastrophe: Formular je nach Dropdownauswahl :eek:
    - verschobene Tabellen und Tabellenlinien
    - zerrissene Tabellen
    - Tabelle in Tabelle
    - irgendwelche Texte zwischen den Tabellen, statt in den Bemerkungsfeldern
    - mal kleine Schrift, mal große Schrift und in verschiedenen Farben

    So, jetzt zurück zum "Projekt".
    Ein Ablauf kann z.B. so aussehen:
    - Tanz
    - Tanz
    - Pause
    - Tanz
    - Gesang
    - Tanz
    - Pause
    - Gesang

    Oder auch mal so (bei einem kurzen Auftritt):
    - Tanz
    - Pause
    - Tanz
    - Gesang

    Im Anhang befindet sich ein grob erstelltes Beispieldokument.

    Viele Grüße
    Robert
     
  6. Gerhard H
    Gerhard H Erfahrener User
    Nein, nein, Robert, so wird das nichts. Meinen persönlichen Erfahrungen zufolge ist der Versuch, eine in Word unerfahrene Person per immer feiner ziselierten Einschränkungen so zu gängeln, dass sie nichts falsch machen kann, in aller Regel zum Scheitern verurteilt.

    In deinem speziellen Fall könnte man zwar schon dafür sorgen, dass die Userform offen bleibt, um weitere Bausteine auszuwählen, aber dann muss während des ganzen Auswahl und -Einfügeprozesses das Dokument ungeschützt bleiben und die junge Frau kann derweil wüten, wie es ihr lieb ist. Vielleicht ginge eine "Buttonlösung" tatsächlich, aber spätestens, wenn ein versehentlich eingefügter Baustein wieder gelöscht werden soll, dürfte das Drama seinen Lauf nehmen.

    Ich schlag dir was anderes vor:
    Die beklagenswerte Frau soll ein stinknormales Word-Dokument hernehmen und es genau so ausfüllen, wie du es unter "Ein Ablauf kann z.B. so aussehen" skizziert hast: Pro Ablaufelement genau 1 Absatz, dort einfach den Autotextnamen reintippen und weiter nichts. Darauf kann man ein Makro loslassen, das jeden Absatz in seinen Baustein verwandelt.
    Das dürfte nicht schwer sein und kann von irgendjemand anderem ausgeführt werden, der Herr über das Makro ist (evtl auch von der Dame selbst, aber da würde ich lieber auf Nummer sicher gehen). Das Makro muss auch nicht in dem einfachen Dokument stehen.

    Wenn das ein gangbarer Weg ist, überleg ich mir was. Aus den Einschränkungsorgien würde ich mich mangels Erfolgsaussichten lieber raushalten.
     
  7. Hallo Gerhard,

    okay, habe ich jetzt nicht komplett verstanden. Formular je nach Dropdownauswahl o_O
    Das würde also über ein Makro laufen, nicht über VBA?

    Viele Grüße
    Robert
     
  8. Gerhard H
    Gerhard H Erfahrener User

    Formular je nach Dropdownauswahl

    Hallo Robert,

    damit du dir vorstellen kannst, was ich meine, hier ein schnell gestrickter Entwurf. Er lebt von der Idee, dass ein Dokumentschutz gar nicht mehr nötig ist, weil hier die Ablauftabellen nicht händisch, sondern per Makro erstellt werden. Die Anwenderin muss nur eine eine Liste mit Textbausteinnamen in der gewünschten Abfolge eintippen, so wie im Musterdokument angedeutet, und dann auf die Schaltfläche klicken. Auch dann können natürlich noch (Tipp-)Fehler passieren, aber die dürfte man in den Griff kriegen.

    Bei Fehlern ist es hier aber eh das schnellste, das aktuelle Dokument wegzuwerfen und sich per Doppelklick auf die Vorlage eine frische Kopie zu ziehen. Das ist einer der Vorzüge von Dokumentvorlagen.

    Und schnell noch zu deiner Frage, ob VBA oder Makros: VBA steckt voller Prozeduren, vulgo auch Makros genannt.
     
  9. Hallo Gerhard,

    wiederholt möchte ich mich bei dir für deine Mühe bedanken. Formular je nach Dropdownauswahl *:)*

    Was ich nicht weiß, vielleicht habe ich etwas übersehen: Welchen praktischen Vorteil hat diese aktuelle Variante gegenüber der ursprünglichen, VBA-losen Variante, in der die Textbausteine einfach aus der entsprechenden Auswahl ausgewählt werden?
    In beiden Fällen sind die Tabellen, Tabellenlinien usw. veränderbar.

    Viele Grüße
    Robert
     
  10. Gerhard H
    Gerhard H Erfahrener User
    Hallo Robert,

    da seh ich zwei Vorteile:

    1.
    Da du die Dame als relativ ungelenk in Word-Sachen beschrieben hast, dachte ich, dass eine Ein-Klick-Lösung Fehler beim Einfügen mehrerer Textbausteine nacheinander reduzieren könnte.

    2.
    Wenn man das per Makro macht, kann man am Ende das Dokument schützen. Dann sind auch Tabellenlinien nicht mehr verschiebbar. Das hab ich im letzten Vorschlag noch nicht gemacht. Du musst im Code die rot markierten Stellen ergänzen.
    Allerdings bedeutet das: Wenn Fehler passieren (z.B. wenn man sich bei einem Textbausteinnamen vertippt, heißt es: Das aktuelle Dokument wegwerfen, sich eine neue Kopie von der Dokumentvorlage holen. Das dürfte aber kein allzu großer Verlust sein, weil ja nur ein paar Textbausteinnamen neu eigetippt werden müssen.


    Mir ist nochwas aufgefallen: Beim Eintippen der Bausteinnamen erscheinen ja Quicktipps, und wenn man die mit Enter bestätigt, ist schwupps, der Baustein drin. Das kann zur Verwirrung beitragen. Deshalt hab sie mal stillgelegt (ebenfalls siehe Code). Beim Schließen des Dokuments werden sie wieder aktiviert.


    Code:
    '#### Einfügen '########
    Private Sub Document_new()
    'Quicktipps lahmlegen:
    Application.DisplayAutoCompleteTips = False
    End Sub
    
    Private Sub Document_close()
    Quicktipps wieder aktivieren'
    Application.DisplayAutoCompleteTips = True
    End Sub
    '########Ende########################
    
    Private Sub cmdAblauf_Click()
    Dim vorlagenName As String
    Dim ListenBereich As Range
    Dim absatz As Paragraph, absatzText As String
    
    vorlagenName = ThisDocument.FullName
    
        'Bereich der Bausteinnamen festlegen
        With ActiveDocument
            Set ListenBereich = .Range(Start:=.Bookmarks("listeStart").Range.Start, End:=.Range.End)
        End With
    
    On Error GoTo fehler
    'Alle Absätze durchschleifen, Bausteinüberschrift durch Baustein ersetzen
    'Bei (Tipp)Fehler oder anderen Fehlern Abbruch:
     With ActiveDocument
        For Each absatz In ListenBereich.Paragraphs
            If Len(absatz.Range.Text) > 1 Then
                absatzText = Left(absatz.Range.Text, Len(absatz.Range.Text) - 1)
                    Application.Templates(vorlagenName).BuildingBlockEntries(absatzText).Insert _
                    where:=absatz.Range
            End If
        Next absatz
    End With
    '######Einfügen#########
    'Dokument schützen
        With ActiveDocument
            If .ProtectionType = wdNoProtection Then .Protect Type:=wdAllowOnlyFormFields, noreset:=True
        End With
    
    Exit Sub
    fehler:
        With ActiveDocument
            If .ProtectionType <> wdNoProtection Then .Unprotect
        End With
    MsgBox Err.Description & " Tippfehler bei den Textbausteinnamen?"
    End Sub
    
     
Thema:

Formular je nach Dropdownauswahl

Die Seite wird geladen...
  1. Formular je nach Dropdownauswahl - Similar Threads - Formular Dropdownauswahl

  2. OLE - Objektfeld als Pflichtfeld im Formular

    in Microsoft Access Hilfe
    OLE - Objektfeld als Pflichtfeld im Formular: Hallo, Ich bin neu in diesem Forum und habe nicht alles durchsucht. Also stelle ich konkret meine Frage hier. Ich habe eine Formular zur Dateneingabe erstellt. Da meine Kollegen grundsätzlich...
  3. Formular/Bericht zeigt keine Nachkomma für Prozentwert an

    in Microsoft Access Hilfe
    Formular/Bericht zeigt keine Nachkomma für Prozentwert an: Beitrag gelöscht, da Blödsinn. :oops:
  4. Formular: Dropdown-Felder "verknüpfen"?

    in Microsoft Word Hilfe
    Formular: Dropdown-Felder "verknüpfen"?: Hallo, für einen Fahrauftrag habe ich mal ein Formular erstellt, wo man halt die Relevanten Daten schnell und Bequem eingeben kann. Dabei habe ich auch zwei Drop-Down-Felder erstellt und diese...
  5. Fehler beim speichern von Daten über ein Formular

    in Microsoft Access Hilfe
    Fehler beim speichern von Daten über ein Formular: Guten Morgen zusammen, ich habe ein Problem mit einer SQL Servertabelle, diese war bisher als Abfrage oder direkt als RS eines Formulars. Wenn nu n Daten geändert wurden, gab es oft, nicht immer,...
  6. Formular Wert per Klick in ein anderes Feld übernehmen

    in Microsoft Access Hilfe
    Formular Wert per Klick in ein anderes Feld übernehmen: Guten Tag Ich bin am Anschlag und brauche euer Schwarmwissen. Da ich eher zu den Anfänger gehöre, brauche ich auch einfache Erklärungen, damit ich in Zukunft verstehe. :-D Es handelt sich um...
  7. Suchfeld in Formular

    in Microsoft Access Hilfe
    Suchfeld in Formular: Hallo zusammen Ich bin eine Datenbank am erstellen, wo ich Mitarbeiter und Kurse erfassen kann und schlussendlich den Mitarbeitern die besuchten Kurse zuteilen. Nun habe ich ein Formular...
  8. Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?

    in Microsoft Excel Hilfe
    Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?: Hallo, ich bin ja gerade dabei ein Bestellformular mit Excel zu realisieren. Das ganze sieht soweit auch schon sehr gut aus und funktioniert weitgehendst. Die Textfelder sind nun alle verlinkt...
  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