birdyb
Goto Top

Word 2013: Mehrzeiliges Auswahlfeld in Formular hinzufügen

Hallo Office-Profis,

ich erstelle bei uns in der Firma gerade eine Word-Vorlage in der verschiedene Auswahl-Dropdowns vorkommen. Allerdings habe ich momentan das Problem, dass ich ein mehrzeiliges Auswahl-Dropdown benötige. Leider habe ich keine entsprechende Funktion finden können.
Ansonsten habe ich noch das Element mit den Schnellbausteinen gefunden, damit würde sich das wohl auch realisieren lassen, allerdings wird diese Auswahl durch den Dokumentenschutz wieder abgeschaltet, so dass eine Auswahl bei "Ausfüllen von Formularen zulassen" nicht mehr möglich ist.

Hat jemand einen Rat für mich?

Danke!

Content-Key: 214286

Url: https://administrator.de/contentid/214286

Printed on: April 18, 2024 at 10:04 o'clock

Member: colinardo
colinardo Aug 14, 2013 updated at 11:29:35 (UTC)
Goto Top
Hallo BirdyB,
meinst du mit "mehrzeiliges" Auswahl-Dropdown eins mit mehreren "Spalten" ? Weil normale Dropdowns mit mehreren Zeilen sind doch kein Problem mit: Entwicklertools > Steuerelemente > Vorversionstools > Kombinationsfeld(Fomularsteuerelement).

Grüße Uwe
Member: BirdyB
BirdyB Aug 14, 2013 at 12:27:18 (UTC)
Goto Top
Hallo Uwe,

bei den Vorversionstools hab ich garnicht geschaut, sorry!
Danke für den Hinweis!

Gruß

Berthold
Member: BirdyB
BirdyB Aug 14, 2013 at 12:32:09 (UTC)
Goto Top
Scheinbar war es aber doch nicht das, was ich gesucht habe, denn ich muss mehrere Zeilen Text einfügen können, also einen Textblock, sozusagen...
Member: colinardo
colinardo Aug 14, 2013 at 12:56:14 (UTC)
Goto Top
Du meinst wie in der Art der Schnellbausteine ? Also vordefinierte Texte die du in per DropDown auswählen kannst und dann eingefügt werden ?
Dies ließe sich nur via VBA mit einem Dialog nachbauen. Habe so was ähnliches schon mal gemacht. Dazu erstellt man via VBA einen Dialog, dann bindet man das "Betreten-Ereignis" eines Formularfeldes an einen Code der den Dialog aufruft in dem der Nutzer dann seinen Textbaustein auswählen kann.
Member: colinardo
colinardo Aug 14, 2013 updated at 14:37:36 (UTC)
Goto Top
Habe Dir dazu mal ein Demo-Dokument gebaut, welches beim Betreten eines Form-Feldes ein Makro aufruft das eine Userform darstellt indem sich ein Textfeld zum auswählen eines Bausteins aus dem Bausteinkatalog befindet. Mit einem Doppelklick wird der Inhalt dann in das Form-Feld eingefügt.
Um das Makro aufzurufen klickst du in das zweite Form-Feld im Dokument. Der Code wird immer dann aufgerufen wenn du den Focus auf das Feld setzt (also z.B. mit Tab in das Feld wechselst oder es mit der Maus aktivierst)
Zum aktivieren des Codes musst du eventuell nach dem aufrufen des Dokuments auf "Aktiven Inhalt aktivieren" klicken.

Das definieren deiner Textblöcke machst du dann mit den Standard-Tools von Word für Inhaltsblöcke.Speichern musst du die Inhaltsblöcke in der Vorlage auf der das Dokument basiert. Diese tauchen dann automatisch im Dialog auf.

Noch ein wichtiger Hinweis zu den Inhaltsblöcken. In dem Demo-Dokument werden nur die Inhaltsblöcke aus dem Template aufgelistet(Standardmäßig ist das Normal.dot). Wenn du z.B. willst das die Inhaltsblöcke die in "Building Blocks.dotx" enthalten sind aufgelistet werden musst du den Code in der Form durch diesen ersetzen:

'the Template-Object where we get our "Building Blocks" from  
Dim objBBTemplate As Template

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    strContent = objBBTemplate.BuildingBlockEntries(ListBox1.ListIndex + 1).Value
    ActiveDocument.FormFields("txtFeld").Result = strContent  
    'Unload Form  
    Unload formContent
End Sub

Private Sub UserForm_Initialize()
    ListBox1.Clear
    Application.Templates.LoadBuildingBlocks
    'Get "Building Blocks" Template  
    For i = 1 To Application.Templates.Count
        If Application.Templates(i).Name = "Building Blocks.dotx" Then  
            Set objBBTemplate = Application.Templates(i)
            Exit For
        End If
    Next
    'List all Building Blocks  
    If Not objBBTemplate Is Nothing Then
        For i = 1 To objBBTemplate.BuildingBlockEntries.Count
            ListBox1.AddItem objBBTemplate.BuildingBlockEntries(i).Name
        Next
    Else
        MsgBox "Building-Blocks Template not found"  
    End If
End Sub

Vielleicht hilft dir das bei deinem Formular ...face-wink

Grüße Uwe
Member: BirdyB
BirdyB Aug 14, 2013 at 14:02:40 (UTC)
Goto Top
Wow, das ist super! Vielen, vielen Dank!

Gruß

Berthold