Office: (Office 2010) Dropdownfelder verknüpfen bzw. Daten zuordnen

Helfe beim Thema Dropdownfelder verknüpfen bzw. Daten zuordnen in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Guten Morgen TT, ich hab noch mal eine Frage. Ich habe ja nun in dem einem DropDown Text stehen. Wie kann ich diesen Text in einem weiteren Feld... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von donrosso, 5. März 2014.

  1. Dropdownfelder verknüpfen bzw. Daten zuordnen


    Guten Morgen TT,

    ich hab noch mal eine Frage.
    Ich habe ja nun in dem einem DropDown Text stehen.
    Wie kann ich diesen Text in einem weiteren Feld (wahrscheinlich einfaches Textfeld) den Inhalt aus dem DD wiedergeben.
    In VB wüsste ich es aber ich komm nicht dahinter, wie ich bei einem Textfeld die Programmierung im Hintergrund erreichen kann.

    Grüße
    Brainwash
     
    Brainwash, 12. Juni 2014
    #46
  2. Moin

    Kommt drauf an, was du vor hast. Wenn du nur eine einfache Wiederholung benötigst, kannst du einfach in dem enstprechenden Bereich eine neue Textmarke festlegen und den Code erweitern um:

    Code:
    Der liest eben mitarbeiterdaten(1) = Name aus.

    Gruß
    TT
     
    TomTom2010, 12. Juni 2014
    #47
  3. Guten Morgen TT,

    also ich habe das ganze nun mit REF verbunden.
    Durch drücken der F9 Taste wird dann automatisch der String aus dem ersten DD ausgelesen und übergeben.

    Danke Dir recht herzlich für Deine Hilfe!
    Grüße
    Brainwash
     
    Brainwash, 16. Juni 2014
    #48
  4. Dropdownfelder verknüpfen bzw. Daten zuordnen

    Hallo zusammen,

    ich bin VBA-Anfänger. Die Idee von Gerhard, ContentControl-Comboboxen mit Daten aus einer Excel-Tabelle zu bestücken, habe ich dankbar aufgegriffen und ausprobiert, was auch sehr gut funktioniert hat. Zusätzlich hatte ich aber noch die Idee, beim Öffnen der Word-Vorlage (besser gesagt nicht beim Öffnen, sondern beim Verwenden der Vorlage = Document_New) die ContentControls für SB, Tel. Fax und E-Mail mit den Daten des angemeldeten Users vorzubelegen und erst anschließend die ContenControl-Combobox mit den Daten der Excel-Tabelle zu bestücken (das hat den Vorteil, dass der Sachbearbeiter, sofern er selbst der Ansprechpartner sein soll, nichts in der ContentControl-Combobox auswählen muss, aber eine Auswahl treffen kann, sofern er für jemand anderen, z. B. in Vertretungsfällen, tätig wird). Meine Lösung hierfür sieht wie folgt aus:

    In ThisDocument steht der nachfolgende Code:
    Private Sub Document_New()
    Call Sachb

    Dim excelmappe As Object
    Dim excelinstanz As Object
    Dim excelsheet As Object
    Dim datei As String
    Dim letztezeile As Long, letztespalte As Long, i As Long, j As Long

    On Error GoTo Fehler
    'Excel-Mappe öffnen
    Set excelinstanz = CreateObject("Excel.application")
    excelinstanz.visible = False
    datei = "P:\WordXP-Doku-Vorlagen\_Mitarbeiter\user.xlsx"

    Set excelmappe = excelinstanz.workbooks.Open(FileName:=datei)
    Set excelsheet = excelmappe.sheets("Gruppe2")

    'letzte Zeile / letzte Spalte feststellen
    With excelsheet
    letztezeile = .Cells(.Rows.Count, 1).End(-4162).Row
    letztespalte = .Cells(1, .Columns.Count).End(-4159).Column
    mitarbeiterdaten = .Range(.Cells(2, 1), .Cells(letztezeile, letztespalte))
    End With

    'contentcontrol bestücken
    With ActiveDocument.ContentControls(1)

    .DropdownListEntries.Clear
    For i = 1 To UBound(mitarbeiterdaten)
    .DropdownListEntries.Add mitarbeiterdaten(i, 1)
    Next i
    End With

    'Ecelmappe schließen:
    excelmappe.Close savechanges:=False
    excelinstanz.visible = True
    excelinstanz.Quit
    Set excelinstanz = Nothing
    Set excelmappe = Nothing

    Exit Sub
    Fehler:
    MsgBox Err.Description & " - " & Err.Number
    excelinstanz.visible = True
    excelinstanz.Quit
    Set excelinstanz = Nothing
    Set excelmappe = Nothing


    End Sub



    Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    Dim i As Integer
    'MsgBox mitarbeiterdaten(1, 1)
    If ContentControl.Tag "SB" Then Exit Sub

    'indexnummer des gewählten Eintrags feststellen
    For i = 1 To ContentControl.DropdownListEntries.Count
    If ContentControl.Range.Text = ContentControl.DropdownListEntries(i).Text Then
    Exit For
    End If
    Next i
    With ActiveDocument
    On Error GoTo Fehler:
    .ContentControls(2).Range.Text = mitarbeiterdaten(i, 2)
    .ContentControls(3).Range.Text = mitarbeiterdaten(i, 4)
    .ContentControls(4).Range.Text = mitarbeiterdaten(i, 3)
    End With

    Fehler:
    If Err.Number = 9 Then Exit Sub
    End Sub

    In einem Modul steht der nachfolgende Code:

    Option Explicit

    Public mitarbeiterdaten As Variant

    Public Sub Sachb()

    Dim zeile As String
    Dim arr() As String
    Dim getuser As String
    Dim user As String
    Dim Anrede As String
    Dim Vorname As String
    Dim Nachname As String
    Dim SB As String
    Dim MailSB As String
    Dim TelSB As String
    Dim FaxSB As String
    Dim tag As String
    Dim i As Integer

    getuser = Environ("Username")

    Open "P:\WordXP-Doku-Vorlagen\_Rente\user.csv" For Input As #1
    Do While Not EOF(1)
    Line Input #1, zeile
    If InStr(zeile, getuser) Then

    arr() = Split(zeile, ";")

    user = arr(0)
    Anrede = arr(1)
    Vorname = arr(2)
    Nachname = arr(3)
    TelSB = arr(4)
    FaxSB = arr(5)
    MailSB = arr(6)
    SB = arr(2) & " " & arr(3)
    Exit Do
    End If
    Loop

    Close
    With ActiveDocument

    For i = 1 To .ContentControls.Count
    tag = .ContentControls(i).tag

    Select Case tag
    Case Is = "SB"
    .ContentControls(i).Range.Text = SB

    Case Is = "Tel."
    .ContentControls(i).Range.Text = TelSB

    Case Is = "eMail"
    .ContentControls(i).Range.Text = MailSB

    Case Is = "Fax"
    .ContentControls(i).Range.Text = FaxSB
    End Select
    Next
    End With
    End Sub

    Es funktioniert auch wie gewünscht, aber wenn die ContenConrol-Combobox angesprungen wird, ist das Verhalten etwas merkwürdig. Der Eintrag in der Box blinkt (oder zittert, ich weiß es leider nicht besser zu beschreiben) und es erscheint eine Sanduhr (als würde irgendwas ablaufen). Die Box wird aber korrekt bestückt und man kann auch eine Auswahl treffen. Es ist nur etwas unschön bzw. irritierend. Hat jemand eine Idee, wie ich das besser machen könnte bzw. wo liegt das Problem in meinem nachfolgenden Code?

    Vorab vielen Dank.
    Gruß
    KaDeWe
     
    KaDeWe, 24. Juli 2014
    #49
  5. Moin,

    als erstes eine Bitte: Wenn du Code einfügst, dann füge ihn bitte auch als Code ein und nicht als 'Geradeaus-Text'. Mich da duchzufräsen, hab ich nämlich keine Lust.

    Da ich mich nicht komplett durch deine Sub gefräst habe erstmal nur zwei Dinge, die mir spontan auffalllen.

    1. Du hast eine 'Public Sub Sachb()', die die Nutzerdaten auslesen und in die CCs schreiben soll (die Sub hab ich mir nicht genauer angesehen). Die wird aber nirgends aufgerufen, oder ?

    2. Die Vorbelegung der CCs mit Nutzerdaten vor dem Füllen mit den Excel-Daten ist sinnlos, denn in diesem Schriftt werden als erstes alle Einträge gelöscht (".DropdownListEntries.Clear").

    Soviel erstmal dazu.

    Gruß
    TT
     
    TomTom2010, 24. Juli 2014
    #50
  6. Hallo TT,

    entschuldige, war mein erster Beitrag im Froum. Da muss ich wohl noch einiges lernen*Smilie Hoffe, nachfolgend den Code jetzt richtig angegeben zu haben.

    Code:
    Die Public Sub Sachb() wird unter ThisDocument mit Call Sachb aufgerufen. Diese bestückt die ContentControl SB, Tel. Fax und E-Mail mit den User-Daten (im ContentControl SB aber nicht als DropDownEintrag, daher wird bei DropdownListEntries.Clear der vorbelegte Eintrag auch nicht gelöscht). Es funktioniert auch wie gewünscht, verhält sich an der einen Stelle (wie von mir beschrieben), aber etwas merkwürdig, was unschön und irritierend ist.
    Gruß,
    KaDeWe
     
    KaDeWe, 24. Juli 2014
    #51
  7. Hallo zusammen,

    ich habe fleißig die verschiedenen Beiträge hier im Forum gelesen und schon selbst verschiedenes probiert, aber in Ermangelung echter VBA-Kenntnisse bekomme ich es nicht hin, was mir vorschwebt. Da die Aufgabenstellung in diesem Thread aber schon sehr dicht an meinem Wunschergebnis liegt, hänge ich mich mal an dieses Thema dran.

    Ausgangslage:
    - Excel-Datei mit zwei Blättern und Daten auf beiden Blättern, Blatt1 mit 4 Spalten und Blatt 2 mit 2 Spalten
    - Word-Datei, die 2 Dropdowns erhalten soll, um die Daten aus den Blättern anzuziehen. Dropdown 1 soll Blatt 1 anziehen, Dropdown 2 soll Blatt 2 anziehen. Zusätzlich sollen die angezogenen Daten auf Folgeseiten wiederholt werden, denke aber, dies mit Textmarken und Ref-Feldern hinzukriegen. Die Dropdowns und die Textmarken sind bunt in der Word-Datei verteilt, also nicht in einer bestimmten Reihenfolge, die sich nicht ändert

    Meine Frage:
    Wie muss ich vorgehen, um 2 unabhängige Datensätze zu erhalten, mit denen ich dann über 2 (nach Möglichkeit in beliebiger Reihenfolge auswählbarer) Dropdowns die gewünschten Daten aus der Excel-Datei an die entsprechenden Stellen ins Word Dokument übertragen kann.

    Bin für jeden Hinweis dankbar!
    Gruß Markus
     
    MarkusWilhelm, 3. Mai 2018
    #52
  8. Gerhard H
    Gerhard H Erfahrener User

    Dropdownfelder verknüpfen bzw. Daten zuordnen

    Hallo Markus,

    da du selber keine Musterdaten beigefügt hast, hab ich mal eine meiner Musterdateien aufgemotzt, die ich hier schon öfter verwendet habe.

    mitarbeiterliste.xlsx enthält ein Blatt mit Mitarbeiterdaten und ein Blatt mit Oldtimer-Daten.
    Die Makros in BriefMit2Comboboxen.dotm lesen diese Daten aus, befüllen damit Inhaltssteuerelement-Kombinationfelder und füllen, je nach aktuellem Inhalt dieser Comboboxen weitere Inhaltssteuerelement-Textfelder.

    Enthalten sind ebenfalls zwei Beispiele zum Weiterkopieren von Inhaltssteuerelementen. Ich hoffe, das entspricht in etwa dem, was du suchst. Weitere Infos findest du in der Word-Vorlage.
     
    Gerhard H, 3. Mai 2018
    #53
  9. Hallo Gerhard,

    vielen Dank für Deine Mühe! Ich habe mich nochmal durchgearbeitet und es funktioniert tadellos! Was mir neben dem eigentlichen VBA Code, den man nach einem Beispiel ja nicht grundlegend verstanden haben kann, noch unverständlich ist, ist wann man Dropdowns nimmt/nehmen muss und wann Comboboxen/Kombinationsfelder? Ich hätte anhand des von Dir gelieferten Codes geglaubt, ich muss Dropdowns nehmen, da im Code ja von DropdownList die Rede ist. Glücklicherweise hattest Du erwähnt, dass es Kombinationsfelder sein sollen, deswegen konnte ich es direkt richtig machen in meinem Dokument. Gibt es hier eine allgemeine Erklärung zu?

    Mein Dokument ist jetzt fast perfekt! Ich hätte noch eine Kleinigkeit zur Perfektion zu ergänzen: Ich muss noch eine händisch einzugebende Zahlenkombination an 2 Stellen im Dokument erscheinen lassen, wie würden das die Profis lösen? Fill-In und Ref-Feld? Ask und Ref-Feld? Oder gibt es hier auch eine schicke VBA-Lösung?

    Grüße
    Markus
     
    MarkusWilhelm, 3. Mai 2018
    #54
  10. Gerhard H
    Gerhard H Erfahrener User
    Hallo Markus,

    Die Dropdowns:
    Für meine Begriffe ist ein Dropdown ein Begriff für alle möglichen Steuerelemente, die man aufklappen kann, um was auszuwählen. Wichtig ist der Unterschied zwischen Listenfeldern (Listboxen) und Kombinationsfeldern (Comboboxen). Aus ersteren kann man nur auswählen, aus letzteren kann man auswählen oder selber was eintragen. Für deinen Fall wären Listenfelder streng genommen die bessere Wahl. Meintest du das?

    Oder meintest du den Unterschied zwischen Inhaltssteuerelement-Dropdowns, Active-X-Dropdowns oder Formularfeld-Dropdowns? Funktioniert hätte es mit allen Versionen, nur die Makros würden halt anders aussehen.

    Die Zahl:
    Fill-In-Felder halte ich für diesen Zweck für ungeeignet, da hier nur einmalig an der Stelle der Schreibmarke eingetragen wird. Bei den ASK-Feldern definierst du im Zuge der Erstellung eine Textmarke, auf die du dich dann mit einem oder mehreren Querverweisen (REF-Feld) an beliebigen Stellen im Dokument beziehen kannst. Fill-In-Felder und ASK-Felder werden über F9 aufgerufen (aktualisiert).

    Falls du die Nummer automatisch bei Start eines Dokuments abfragen willst, kannst du das Abfragen per Dreizeiler-Makro realisieren:
    Code:
    Document_New springt an, wenn ein neues Dokument auf Basis einer Dokumentvorlage erstellt wird, Document_Open wäre richtig, wenn das Makro beim Öffnen eines schon gespeicherten Dokuments anspringen soll.
     
    Gerhard H, 4. Mai 2018
    #55
  11. Hallo,
    ich bin erst seit kurzem in diesem Forum aber verfolge diesen Beitrag mit Begeisterung. Ich plane ebenfalls ein Dropdown zu verwenden wo meine ganzen Firmen enthalten sind. Da drunter muss ebenfalls ein Dropdown sein wo die Abteilungen der Firma vorhanden sind.


    Wenn ich nun also Firma A auswähle und die hat 9 Abteilungen möchte ich in der 2ten Dropdown die 9 Abteilungen zur Auswahl bekommen und eine wählen.

    Ich habe das jetzt mit VBA, Makro, Exceltabelle versucht aber irgendetwas mache ich da falsch...

    Wäre cool wenn jemand da einen Tipp hat oder helfen kann.
     
  12. Gerhard H
    Gerhard H Erfahrener User
    Hallo Runge,

    "Wäre cool wenn jemand da einen Tipp hat oder helfen kann"

    Das ist sicher machbar, aber vorher bedarf es der Klärung folgender (immer wieder gleichen) Fragen:
    • Wie ist deine Datenquelle aufgebaut (in einem Tabellenblatt pro Firma eine Zeile und entsprechend viele Spalten für die Abteilungen oder pro Firma ein Blatt und pro Abteilung eine Zeile, und Spalten für weitere Daten, oder noch anders)?
    • Welche Dropdowns möchtest du verwenden (Inhaltssteuerelemente, alte Formularsteuerelemente..) oder bist du frei darin?
    • Wird dein Dokument eine Dokumentvorlage (dotm) oder ein normales Dokument (docm) sein? Ersteres empfiehlt sich in solchen Fällen meistens.

    Bitte untermauere deine Antworten mindestens durch Hochladen einer Muster-Datenquelle. Noch besser: Zusätzlich mit deinem Dokument nebst bisher enthaltenen Makro-Versuchen.
     
    Gerhard H, 21. Juni 2018
    #57
  13. Dropdownfelder verknüpfen bzw. Daten zuordnen

    Hallo,
    ich habe eigentlich bis jetzt nur mit den "Beispielen" hier rumgespielt...

    Anbei habe ich mal eine Datei und oben im Adressfeld habe ich 2 Dropdowns...
    Dort soll wenn in dem Oberen Feld die Einrichtung ausgewählt wird, unten die Abteilungen der Einrichtung sein und keine Abteilung aus einer anderen Einrichtung... Ich hoffe das ist verständlich erklärt.

    Danke schon mal *Smilie
     
  14. Gerhard H
    Gerhard H Erfahrener User
    Hallo nochmal,

    tut mir leid, ich weiß jetzt noch weniger, was du vorhast. In dem hochgeladenen Dokument befinden sich Makros, die Werte aus dem Active Directory eines bestimmten Users in Dokumentvariablen einlesen. Das hat mit deinem skizzierten Vorhaben aus dem letzten Beitrag nichts zu tun und dabei kann ich dir nicht helfen.

    Falls das Auslesen der Daten aus Exceltabellen und Füllen der Dropdowns als zusätzliche Aufgabe verstanden werden sollte, kann ich dir vermutlich schon helfen, aber ohne das:

    Wie ist deine Datenquelle aufgebaut (in einem Tabellenblatt pro Firma eine Zeile und entsprechend viele Spalten für die Abteilungen oder pro Firma ein Blatt und pro Abteilung eine Zeile, und Spalten für weitere Daten, oder noch anders)?

    geht nicht mal Kaffeesatzlesen.
    Und noch etwas: Das Mischen von verschiedenen Typen von Steuerelementen (bei dir: Inhaltssteuerelemente und Formularsteuerelemente) muss nicht, aber kann Schwierigkeiten bereiten.

    Falls es nicht mit der Abteilung "Dokumentvariablen" kollidiert, würde ich aus den anderen Feldern auch Inhaltssteuerelemente machen.
     
    Gerhard H, 22. Juni 2018
    #59
  15. Sorry, das auslesen der AD funktioniert ohne Probleme... Es geht nur um den Bereich der Adressen links oben...

    Wenn ich wüsste wie ich das am besten machen kann naja würde ich nicht fragen *biggrin.gif*

    Es soll halt möglich sein, dass wenn man im Adressfeld die Firma auswählt dadrunter dann die Abteilung der Firma gewählt werden kann. Ob es per VB, Excel usw. gelöst wird ist mir egal *Smilie
     
Thema:

Dropdownfelder verknüpfen bzw. Daten zuordnen

Die Seite wird geladen...
  1. Dropdownfelder verknüpfen bzw. Daten zuordnen - Similar Threads - Dropdownfelder verknüpfen Daten

  2. Ergebnisauswertung aus Dropdownfeldern

    in Microsoft Excel Hilfe
    Ergebnisauswertung aus Dropdownfeldern: Hallo zusammen, Ich möchte ein Ergebnis aus vier Dropdownfeldern in einer Zelle darstellen. Die Bedingungen für das Ergebnis sind folgende: 4 x Ja = Ja 3 x Ja und 1 x Nein = Ja 2 x Ja und 2 x...
  3. Textgrösse im Dropdownfeld

    in Microsoft Excel Hilfe
    Textgrösse im Dropdownfeld: Hallo, die schriftgrösse im Dropdownfeld ist sehr klein. Ich habe gelesen, die Schriftgrösse kann nicht vergrössert werden. Man könne das über Formularsteuerelemente lösen. Welches...
  4. Dropdownfeld in Word Formular

    in Microsoft Word Hilfe
    Dropdownfeld in Word Formular: Hallo, ich arbeite an einem Word Formular wo ich einige Dropdownfelder mit Ja/Nein einfügen möchte. Ich will, dass standardmäßig Nein ausgewählt ist und der User zwischen ja und nein wählen...
  5. interaktives Diagramm mittels DropDownfeld

    in Microsoft Excel Hilfe
    interaktives Diagramm mittels DropDownfeld: Hallo liebe Excelgemeinde, ich möchte gerne mittels Dropdownfeld im Diagramm interaktiv auswählen können zu welchem Bundesland die Werte angezeigt werden. Die hinterlegten Werte aus der Tabelle...
  6. WENNS Funktion Dropdown Menu

    in Microsoft Excel Hilfe
    WENNS Funktion Dropdown Menu: Ich habe eine Funktionsabfrage: Wenn Homeoffice ja, dann soll eine Zelle leer angezeigt werden. Wenn Homeoffice nein, dann soll einer Zelle in einem Dropdown angeboten werden, welches zwei...
  7. Zwei Dropdownfelder mit gegenseitiger Abfrage

    in Microsoft Excel Hilfe
    Zwei Dropdownfelder mit gegenseitiger Abfrage: Hallo, stehe mal wieder vor einem Problem. Ich möchte zwei Dropdownfelder die sich gegenseitig abfragen. Es handelt sich um Stadtbezirke und die dazugehörigen Stadtteile. Wenn ich die Stadtbezirke...
  8. Dropdownfelder sichtbar machen

    in Microsoft Word Hilfe
    Dropdownfelder sichtbar machen: Hallo zusammen, ich habe folgendes Problem: ich möchte eine Reihe von Briefvorlagen auf ein neues Layout umstellen. Hierzu muss ich neue Dropdown-Felder anlegen. Wie kann ich diese sichtbar...
  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