MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 10.01.2017, 18:24   #1
Metro_82
Neuer Benutzer
Neuer Benutzer
Standard Word 2013 - Auswahlmenü und Datenfüllung in Word

Hallo Zusammen,

ich habe jetzt vieles versucht aber leider nichts akzeptables hinbekommen.
Folgende Aufgabe versuche ich umzusetzen:

Ich möchte in ein Word Dokument eine Auswahlbox integrieren in der ich 5 bis 10 Namen auswählen kann. In Abhängigkeit des Names sollen Daten automatisch ausgefüllt werden.

Layout:

Auswahl: Name

Wiedergabe:
Name, Vorname
Telefon
Fax
Email

Vielen Dank für eure Hilfe und Gruß
Metro
Metro_82 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 22:14   #2
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Metro,

wenn du deine Mitarbeiterdaten in einer Excel-Tabelle pflegst, kannst du so vorgehen wie im angehängten Beispiel. Zum Testen beide Dateien in den gleichen Ordner kopieren.

Zur Orientierung: Die Prozedur Sub Document_New() liest die Excel-Tabelle in eine Array-Variable ein (diese ist im Modul.1 deklariert)und bestückt die Combobox mit den Namen. Die Prozedur Sub ContentControl_OnExit springt nach erfolgter Auswahl aus der Combobox an und füllt dir restlichen Felder.
Angehängte Dateien
Dateityp: dotm BriefMitCombobox.dotm (38,0 KB, 13x aufgerufen)
Dateityp: xlsx mitarbeiterliste.xlsx (10,8 KB, 11x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 13:11   #3
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo nochmal,

ich vergaß zu erwähnen, dass du alternativ, wenn du deine Mitarbeiterdaten in Excel pflegst, das ganze Vorhaben vermittels Serienbrief vollkommen makrofrei und unaufwändig hinkriegen würdest. Du müsstest halt statt aus einer Combobox auszuwählen, über Sendungen > Empfängerliste bearbeiten jeweils einen Datensatz herfiltern.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 18:36   #4
Metro_82
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

vielen Dank für deine Hilfe. Ich habe heute schon etwas damit gespielt aber leider noch nicht in mein Vorhandenes Dokument übertragen können.
Ich möchte es noch etwas probieren um es zum Laufen zu bringen.
Falls möglich würde ich eventuell nochmal auf dich zukommen um deine Hilfe zu erfragen :-)

Schönen Abend
Guido
Metro_82 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.01.2017, 09:21   #5
Metro_82
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ich habe nun folgendes beobachtet:

wenn ich die Formatvorlage öffne, wird ein DOK1.doxm erstellt, indem ich die Auswahl drop-down mit den richtigen Daten habe. Sobald ich diese Datei speicher, schließe und erneut öffne bekomme ich dann bei Auswahländerung die Fehlermeldung " Laufzeitfehler'13': Typen unverträglich.

Wenn ich in den Debug Modus gehe, springt er in die Zeile:
For i = 1 To ContentControl.DropdownListEntries.Count
If ContentControl.Range.Text = ContentControl.DropdownListEntries(i).Text Then
Exit For
End If
Next i

MsgBox Config(i, 1) & ": Telefon " & Config(i, 2)


With ActiveDocument
.SelectContentControlsByTag("Telefon").Item(1).Range.Text = Config(i, 2)
.SelectContentControlsByTag("Fax").Item(1).Range.Text = Config(i, 3)
.SelectContentControlsByTag("Email").Item(1).Range.Text = Config(i, 4)
End With

End Sub


Den Quelltext in ein neues Dokument einbinden funktioniert garnicht. Hierbei kommt sofort der Fehler '13'.
Vielleicht kann man mir hier nochmal helfen.

Danke und Gruß
Guido

Geändert von Metro_82 (18.01.2017 um 09:23 Uhr).
Metro_82 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.01.2017, 12:24   #6
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Guido,

der Fehler passiert, wenn du versuchst, ein schon gespeichertes Dokument erneut zu öffnen um eine andere Auswahl zu treffen. Das geht schief, weil meine Lösung als Ausgangsdokument ein neues Dokument auf Basis der Dokumentvorlage (also des Dokuments mit der Endung *.dotm erwartet.

Ich beschreibe deshalb noch einmal den korrekten Weg, den du gehen musst, damit mein Lösungsvorschlag funktioniert:

1. Ausgangslage
Du hast in einem Ordner deine Dokumentvorlage (*.dotm) mit den Makros aus meiner Beispiel-Vorlage liegen. Im gleichen Ordner liegt auch die Datenquelle (in meinem Beispiel eine Excel-Mappe.

2. Neues Dokument erstellen
Du doppelklickst nun die Dokumentvorlage. Damit erzeugst du ein Dokument namens "Document1". In diesem Dokument triffst du nun deine Auswahl. Danach speicherst du es als ganz normales Dokument (Endung *.docx). Dieses Dokument kannst du drucken, ändern, oder was auch immer du möchtest. ABER:

3. Neues Dokument mit geänderter Auswahl erstellen
Um ein weiteres Dokument mit einer anderen Auswahl zu erzeugen, bearbeitest du NIE NICHT ein schon gespeichertes Dokument, sondern führst Schritt 2 erneut aus.

Sollte damit das Proble nicht behoben sein, dann hab ich zwei Fragen an dich:

"wenn ich die Formatvorlage öffne..."
Damit meinst du vermutlich eine Dokumentvorlage. Und da es eine Vorlage ist, muss sie die Endung *.dotm haben. In meinem Beispiel die BriefMitCombobox.dotm. Wie heißt dein Ausgangsdokument genau?

"...wird eine DOK1.doxm erstellt"
Sowas gibts es erstens nicht. Meinst du DOK1.docx? Oder DOK1.docm? Und meinst du wirklich DOK1 und nicht Document1?

Noch eine Bemerkung zu der Variablen "Config": Ich würde eine Variable nie so nennen, denn das ist ein reservierter Begriff, wenn auch nicht in VBA, dann doch auf Windows-Ebene. Bringe deinen Computer nicht unnötig durcheinander!

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2017, 13:44   #7
Metro_82
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

ich hatte heute die Gelegenheit mich wieder mit dem Thema zu beschäftigen.
Dank deiner Anleitung habe ich jetzt verstanden, wie das Prinzip funktioniert.
Ich habe mir jetzt auch eine Dokumentenvorlage erstellt und die Mitarbeiterauswahl implementiert. Fazit Funktioniert.

Jetzt eine weitere Frage:
Ist es möglich in die Dokumentenvorlage eine zweite Auswahl aus der selben Excel-Datei aber einem anderen Blatt zu implementieren?
Die Auswahl soll einen Nachnamen wiedergeben und in zwei weiteren Feldern die Anrede und den Vornamen.

Vielen Dank
Guido
Metro_82 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2017, 14:47   #8
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Guido,

du meinst: ein zweites Dropdown mit Daten aus einem anderen Tabellenblatt zu füllen, z.B. Kundendaten? Ich denke schon, dass das möglich ist. Aus dem hohlen Bauch heraus, ohne es getestet zu haben:

Du müsstest in deiner Vorlage eine weitere Combobox einfügen, sowie weitere Inhaltssteuerelemente für die Namensbestandteile mit entsprechenden Tags.

Im Modul1 müsstest du eine weitere Public-Variable für die Aufnahme dieser Daten erstellen, z.B. Public Kundendaten.

In Thisdocument müsstest du den Bereich, der bisher für Tabelle 1 gilt, darunter nochmal für das andere Tabellenblatt wiederholen, z.B. so:
Code:

Set excelsheet = excelmappe.sheets("tabelle2")

    'letzte Zeile / letzte Spalte feststellen
    With excelsheet
        letztezeile = .Cells(.Rows.Count, 1).End(-4162).Row
        letztespalte = .Cells(1, .Columns.Count).End(-4159).Column
        kundendaten = .Range(.Cells(2, 1), .Cells(letztezeile, letztespalte))
     End With
    
    'Dropdown bestücken
    With ActiveDocument.SelectContentControlsByTag("Kundendaten").Item(1)
    .DropdownListEntries.Clear
        For i = 1 To UBound(kundendaten)
            .DropdownListEntries.Add kundendaten(i, 1)
        Next i
    End With
In ContentControlOnexit müsstest du auch einen Teil verdoppeln, nämlich so:
Code:

If ContentControl.Tag = "Mitarbeiter" Then 
 
'Hier der bisherige Code...

End If
    
If ContentControl.Tag = "Kundendaten" then

'... hier nocheinmal das gleiche, unter Verwendung der Tags für die Kundendaten.

End If
Falls du nicht zurecht kommst, erweitere die Musterdateien aus Beitrag 2 um das neue Tabellenblatt und die gewünschten ContentControls und lade sie hoch.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.02.2017, 10:16   #9
Metro_82
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

nachdem ich alles eingefügt und angepasst habe, bekomme ich leider die Fehlermeldung "Das angeforderte Element ist nicht in der Sammlung vorhanden. - 5941"

Die Schreibweise des Reiters ist aber korrekt und der Aufbau ist wie in dem ersten Reiter. Der erste Datensatz wird ja auch gefüllt, nur der zweite nicht.

Ich hoffe die Dateien helfen hierbei weiter.

Danke schon mal
Guido
Angehängte Dateien
Dateityp: dotm BriefMitCombobox.dotm (38,4 KB, 1x aufgerufen)
Dateityp: xlsx Input.xlsx (12,1 KB, 2x aufgerufen)
Metro_82 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.02.2017, 11:07   #10
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Guido,

Die Fehlermeldung bezieht sich auf folgende Zeile in Sub document_New():
Code:

With ActiveDocument.SelectContentControlsByTag("varEngineering").Item(1)
zu Deutsch: Nimm das ContentControl mit dem Tag "varEngineering"... Das gibt es aber nicht in deinem Dokument. Das was gemeint ist, hat den Tag "Mitarbeiter". Analog weiter unten "varDemand". Das gibt es auch nicht. Der Tag dort heißt "Empfänger".

Ich würde übrigens einen Tag nicht genau so benennen wie eine Variable. Ich hab also folgende Änderungen vorgenommen:

In der Dokumentvorlage:
Den Tag des ersten Dropdowns ("Mitarbeiter") in "Engineering" umbenannt, den Tag des Dropdowns "Empfänger" in "Demand". Ferner hab ich diese drei Steuerelemente, die du vermutlich versehentlich ineinander verschachtelt hast, wieder auseinander gedröselt.

In den Makros:
Die beiden Zeilen wie folgt geändert:
Code:

With ActiveDocument.SelectContentControlsByTag("Engineering").Item(1) 
With ActiveDocument.SelectContentControlsByTag("Demand").Item(1)
Entsprechende Änderungen hab ich auch in der Sub Document_ContentControlOnExit() vorgenommen. Schau es dir an, es sollte selbsterklärend sein.

Bei mir geht es jetzt. Geändertes Word-Dokument im Anhang.
Angehängte Dateien
Dateityp: dotm BriefMitCombobox.dotm (45,5 KB, 1x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.