In Word System.Windows.Forms Dropdownliste löschen
Hallo zusammen,
brauche bei einem derzeitigen problem eure Hilfe. Ich arbeite an einem Worddokument welches später beim Kunden als Briefvorlage dienen soll. Dabei soll unter anderem per Dropdownliste der Name gewählt werden, in dessen Name der Brief geschrieben wird, woraufhin automatisch entsprechende Felder mit zugehörigen Daten ausgefüllt werden soll. Prinzipiell funktioniert das wunderbar, doch ein Problem habe ich dennoch. Da die Namen in der Liste nach "Nachname, Vorname" sortiert werden sollen, bei der Ausgabe aber "vorname Nachname" gewünscht ist lasse ich den Code ein Feld entsprechend füllen. Ich weiß allerdings nicht wie ich anschließend die Dropdownliste lösche. Per entsprechendem Haken kann ich nur das umgebende Element löschen, die urdprüngliche Auswahl bleibt aber bestehen.
Da ich mir nicht sicher bin ob ich mich eindeutig ausgedrückt habe, hier der Code (anonymisiert versteht sich):
Würde mich freuen wenn ihr mir da helfen könntet,
Liebe Grüße,
Ragnar
brauche bei einem derzeitigen problem eure Hilfe. Ich arbeite an einem Worddokument welches später beim Kunden als Briefvorlage dienen soll. Dabei soll unter anderem per Dropdownliste der Name gewählt werden, in dessen Name der Brief geschrieben wird, woraufhin automatisch entsprechende Felder mit zugehörigen Daten ausgefüllt werden soll. Prinzipiell funktioniert das wunderbar, doch ein Problem habe ich dennoch. Da die Namen in der Liste nach "Nachname, Vorname" sortiert werden sollen, bei der Ausgabe aber "vorname Nachname" gewünscht ist lasse ich den Code ein Feld entsprechend füllen. Ich weiß allerdings nicht wie ich anschließend die Dropdownliste lösche. Per entsprechendem Haken kann ich nur das umgebende Element löschen, die urdprüngliche Auswahl bleibt aber bestehen.
Da ich mir nicht sicher bin ob ich mich eindeutig ausgedrückt habe, hier der Code (anonymisiert versteht sich):
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean) 'Fängt das Exit-Event von allen ContentControls aus dem Document ab
If ContentControl.Title = "Person" Then 'Wenn es sich um unser gewünschtes Control handelt, dann...
If ContentControl.Range.Text = "Müller, Eva" Then 'Prüfen, um welche Person es sich handelt
Set objCC1 = ActiveDocument.ContentControls.Item(2) 'Dem entsprechenden Control die Werte zuweisen.
objCC1.Range = "Eva Müller"
Set objCC2 = ActiveDocument.ContentControls.Item(3) 'Dem entsprechenden Control die Werte zuweisen.
objCC2.Range = "07541-12334"
Set objCC3 = ActiveDocument.ContentControls.Item(4) 'Dem entsprechenden Control die Werte zuweisen.
objCC3.Range = "07541 912335"
Set objCC4 = ActiveDocument.ContentControls.Item(5) 'Dem entsprechenden Control die Werte zuweisen.
objCC4.Range = "eva.mülleri@kunde.de"
End If
If ContentControl.Range.Text = "Meier, Hans" Then 'Prüfen, um welche Person es sich handelt
Set objCC1 = ActiveDocument.ContentControls.Item(2) 'Dem entsprechenden Control die Werte zuweisen.
objCC1.Range = "Hans Meier"
Set objCC2 = ActiveDocument.ContentControls.Item(3) 'Dem entsprechenden Control die Werte zuweisen.
objCC2.Range = "5586/5989"
Set objCC3 = ActiveDocument.ContentControls.Item(4) 'Dem entsprechenden Control die Werte zuweisen.
objCC3.Range = "5586/5989"
Set objCC4 = ActiveDocument.ContentControls.Item(5) 'Dem entsprechenden Control die Werte zuweisen.
objCC4.Range = "hans.meier@kunde.de"
End If
If ContentControl.Range.Text = "Mustermann, Max" Then 'Prüfen, um welche Person es sich handelt
Set objCC1 = ActiveDocument.ContentControls.Item(2) 'Dem entsprechenden Control die Werte zuweisen.
objCC1.Range = "Max Mustermann"
Set objCC2 = ActiveDocument.ContentControls.Item(3) 'Dem entsprechenden Control die Werte zuweisen.
objCC2.Range = "089963/1258"
Set objCC3 = ActiveDocument.ContentControls.Item(4) 'Dem entsprechenden Control die Werte zuweisen.
objCC3.Range = "089963/1258"
Set objCC4 = ActiveDocument.ContentControls.Item(5) 'Dem entsprechenden Control die Werte zuweisen.
objCC4.Range = "max.mustermann@kunde.de"
End If
End If
End Sub
Würde mich freuen wenn ihr mir da helfen könntet,
Liebe Grüße,
Ragnar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 284137
Url: https://administrator.de/contentid/284137
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
du codest jetzt nicht tatsächlich die Adressen etc. Fest in den Code ?? X-) OMG
ContentControl löschen:
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.c ...
Gruß grexit
du codest jetzt nicht tatsächlich die Adressen etc. Fest in den Code ?? X-) OMG
ContentControl löschen:
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.c ...
ContentControl.Delete True
Gruß grexit
Na denn, du weist aber schon das man einem DropDown Content-Control auch abweichend zu seinem Anzeige-Namen einen separaten Wert für die Eigenschaft Value definieren kann.
Zum Löschen des gesamten Controls, siehe die Methode von oben.
Zum Löschen des gesamten Controls, siehe die Methode von oben.
Ich tu genau das, was mein Chef mir aufträgt. ganz simple Nummer.
OK, als Programmierer sieht man aber meistens immer etwas in die Zukunft, aber ich lass das mal, wirst du sicher in Zukunft noch selber merken was ich meine
Gut, dann gelöst nicht vergessen...