Word 2003 - 2 abhängige Dropdownfelder

Dieses Thema Word 2003 - 2 abhängige Dropdownfelder im Forum "Microsoft Office Suite" wurde erstellt von Katbra, 29. Nov. 2007.

Thema: Word 2003 - 2 abhängige Dropdownfelder Hallo! Ich habe ein Problem mit Word und den Dropdownmenüs. Ich hätte gern aus 35 (da ist schon das erste Problem -...

  1. Hallo!
    Ich habe ein Problem mit Word und den Dropdownmenüs. Ich hätte gern aus 35 (da ist schon das erste Problem - ich kann nur 25 Einträge eingeben) 1 ausgesucht und dann soll in einem zweiten Feld ein Erklärungstext erscheinen. Geht das mit If oder einem SVerweis oder sogar einem Makro? Ich bin schon ganz verzweifelt, da ich es einfach nicht hinbekomme.
    Kann mir da jemand helfen, bitte?

    Liebe Grüße
    Hanna
     
  2. Hallo Katbra,

    folgender Beispiel-Code geht davon aus, dass 2 ComboBoxen auf dem Dokument angelegt sind:
    ComboBox1
    ComboBox2

    Erklärung zum Code:
    beim Öffnen des Documents (Document_Open()) werden in ComboBox1 30 Werte geladen und in ComboBox2 30 passende Erklärungen.

    Wird in ComboBox1 etwas geändert ( ComboBox1_Change() ) wird, wenn der Wert nicht einem aus der Liste entspricht, der erste Wert eingestellt.
    In ComboBox2 die dazu passende Erklärung.
    (Es können also nur Werte aus der Liste ausgewählt werden.)

    Wird in ComboBox2 etwas geändert ( ComboBox2_Change()) wird der passende Wert zu ComboBox1 eingestellt.
    (Ist also immer passend zu ComboBox1)

    Gruß Matjes :)
    Der folgende Code muß in der Code-Seite des dokuments (ThisDocument) liegen.
    Code:
    Private Sub Document_Open()
     Dim x As Long, sTxt As String
     With Me.ComboBox1
     ->ComboBox1 mit 30 Werten füllen
      .Clear
      For x = 1 To 30
       sTxt = x
       sTxt = Wert & String(4 - Len(sTxt), 0) & sTxt
       .AddItem sTxt
      Next
     End With
     With Me.ComboBox2
     ->ComboBox2 mit 30 passenden Erklärungen für den jeweiligen Werten füllen
      .Clear
      For x = 1 To 30
       sTxt = x
       sTxt = Erklärung & String(4 - Len(sTxt), 0) & sTxt
       .AddItem sTxt
      Next
     End With
    End Sub
    Private Sub ComboBox1_Change()
     Dim ind As Long
     ind = Me.ComboBox1.ListIndex
     If ind = -1 Then Me.ComboBox1.ListIndex = 0
     Me.ComboBox2.ListIndex = Me.ComboBox1.ListIndex
    End Sub
    Private Sub ComboBox2_Change()
     If Me.ComboBox2.ListIndex <> Me.ComboBox1.ListIndex Then
      Me.ComboBox2.ListIndex = Me.ComboBox1.ListIndex
     End If
    End Sub
     
  3. Hallo Matjes!
    Das ging aber schnell!!! Vielen Dank.

    ComboBox ist doch das Dropdownfeld, oder? Muss ich die Werte in den Code eintragen oder sucht es sich die aus der Tabelle, die in einem externen Worddokument liegt? Dazu müsste man jedoch einen Link setzen, oder?

    Kann ich eigentlich mehr als einen Wert aussuchen (3, 6 und 9 z.B.)?

    Ich hoffe, das wird nicht zu kompliziert! Ich hae leider überhaupt keine Erfahrung damit - nur ein dickes Buch zum Nachschauen und Nachlesen...

    Gruß Hanna
     
  4. Hallo Hanna,

    eine Möglichkeit wäre die werte aus einer Excel-Datei einzulesen.
    Dafür hab ich dir ein Beispiel gebaut.
    Achte auf die Hinweise in ComboBoxenAufdaten2().

    zu:
    Kann ich eigentlich mehr als einen Wert aussuchen (3, 6 und 9 z.B.)?
    Im Moment nicht. Da mußt du dir erstmal überlegen, was du genau willst.

    Gruß Matjes :)

    Code:
    Option Explicit
    Private Sub ComboBox1_Change()
     Dim ind As Long
     ind = Me.ComboBox1.ListIndex
     If ind = -1 Then Me.ComboBox1.ListIndex = 0
     Me.ComboBox2.ListIndex = Me.ComboBox1.ListIndex
    End Sub
    Private Sub ComboBox2_Change()
     If Me.ComboBox2.ListIndex <> Me.ComboBox1.ListIndex Then
      Me.ComboBox2.ListIndex = Me.ComboBox1.ListIndex
     End If
    End Sub
    Private Sub Document_Open()
     Call ComboBoxenAufdaten2
    End Sub
    
    
    Private Function ComboBoxenAufdaten2()
    ->***********************************************
    ->Werte aus einer Excel-Datei in ComBoBoxen laden
    ->
    ->Im VB-Editor unter Extras->Verweise muß
    ->  Microsoft-Excel 11.0 object Library
    ->  eingebunden werden
    ->
    ->Excel-Datei:
    -> Name: ZweiDropdownFelder.xls
    -> Pfad: im gleichen Verzeichnis wie Word-Datei
    -> Blatt: WerteUndTexte
    -> Spalte 1, Zeile 1 -70 : Werte
    -> Spalte 2, Zeile 1 -70 : Erklärungen
    ->***********************************************
    
     Dim XLApp As Excel.Application
     Dim wb As Excel.Workbook
     Dim ws As Excel.Worksheet
     Dim XLS As Object
     Dim bExcelBereitsOffen As Boolean
     Dim x As Long, sTxt As String, sMeineXLSDatei As String
     
    ->Prüfen, ob Excel schon gestartet ist
     Set XLApp = GetObject(, Excel.Application)
     bExcelBereitsOffen = True
     If XLApp Is Nothing Then
     ->nein->Excel starten
      bExcelBereitsOffen = False
      Set XLApp = CreateObject(Excel.Application)
      XLApp.Visible = True
     End If
     
    ->Xls-Datei oeffnen
     sMeineXLSDatei = ThisDocument.Path & Application.PathSeparator & ZweiDropdownFelder.xls
     Set wb = Excel.Workbooks.Open(FileName:=sMeineXLSDatei, ReadOnly:=True)
     
    ->Blatt setzen
     Set ws = wb.Worksheets(WerteUndTexte)
     
     Me.ComboBox1.Clear
     Me.ComboBox1.List = ws.Range(ws.Cells(1, 1), ws.Cells(70, 1)).Value
     Me.ComboBox2.Clear
     Me.ComboBox2.List = ws.Range(ws.Cells(1, 2), ws.Cells(70, 2)).Value
     
    ->Datei schliessen
     wb.Close Savechanges:=False
     
    ->Wenn Excel gestartet wurde, schliessen
     If bExcelBereitsOffen Then XLApp.Quit
     
    End Function
     
  5. Guten Morgen Matjes!

    Vielen Dank für Deine Hilfe. Ich werde mir das jetzt mal genauer anschauen und Deinen Anweisungen folgen.

    Die mir aufgetragene Aufgabe beinhaltet einen Brief schreiben, in dem man Bedingungen auswählt. Einer bekommt einen Brief mit 1 Bedingung und erklärendem Text zugeschickt, ein anderer muss eben 3 Bedingungen erfüllen (mit 3 Erklärungstexten). Ist das zu realisieren?

    Liebe Grüße Hanna[br][br]Erstellt am: 30.11.07 um 06:51:52[hr][br]Hallo!
    Ist es denn möglich, mehrere Bedingungen auszuwählen (per Makro)? Wenn nicht, muss ich einen Plan B ausarbeiten. Geht es auch mit If Then...? Ich werde es mal ausprobieren.

    Grüße, Hanna
     
  6. Hallo Hanna,

    für die Auswahl von 3 Bedingungen gibt es mehrere Möglichkeiten:
    a) z.B. 3 DropdownListBoxen
    b) Eine Listbox mit den auswählbaren Bedingungen kombiniert mit einer Listbox der ausgewählten Bedingungen und 2 Command-Button zur Übertragung einer Bedingung in die Listbox bzw. Löschung aus der Listbox.

    Gruß Matjes :)
     
  7. Guten Morgen!

    Irgendwie stehe ich auf'm Schlauch. :( Es erschien mir gar nicht so kompliziert (aber das täuscht ja oft.) Ich dachte man kann ein Makro schreiben, dass mir eine vorgegebene Anzahl von Zeilen im Word ausfüllt - Ich wähle in einem Dropdownfeld die entsprechende Zahl aus und dann erscheint ein Erklärungstext.
    <<Wenn diese Zahl gewählt ist, gehe zu dieser Tabellenzeile und geben diesenText an. >>
    Das ist es, was gemacht werden soll. Ich muss es nun elegant lösen. Vielleicht denke ich auch einfach nur zu kompliziert? :-\
    Hanna
     
Die Seite wird geladen...

Word 2003 - 2 abhängige Dropdownfelder - Ähnliche Themen

Forum Datum
Bei Word Office Paket 2003 oberen Cursor beginn einstellen? Windows XP Forum 8. Dez. 2013
MS Word 2003: Mehrere Dateien gleichzeitig Einträge aktualisieren? Microsoft Office Suite 7. Mai 2013
Word 2003 - Startbildschirm Microsoft Office Suite 13. Nov. 2012
Word 2003 Windows XP Forum 2. Okt. 2012
word 2003, 2007, 2010 – vollbild ansicht Windows XP Forum 22. Aug. 2012