ragnar.stefansson
Goto Top

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):

 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

Content-ID: 284137

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

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

122990
Lösung 122990 29.09.2015, aktualisiert am 30.09.2015 um 11:37:50 Uhr
Goto Top
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 ...
ContentControl.Delete True
Gruß grexit
Ragnar.Stefansson
Ragnar.Stefansson 29.09.2015 um 16:07:26 Uhr
Goto Top
Ich tu genau das, was mein Chef mir aufträgt. ganz simple Nummer. Wenn das da fix drin stehen soll, dann passiert das auch.
122990
122990 29.09.2015 aktualisiert um 16:37:20 Uhr
Goto Top
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.

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 face-smile
Ragnar.Stefansson
Ragnar.Stefansson 29.09.2015 um 17:06:53 Uhr
Goto Top
Erst mal dank dir für deine Hinweise. natürlich sehe ich was da noch kommt, aber ich habe meine Bedenken geäussert und sie wurden verworfen. Also führe ich aus. ;)
122990
122990 29.09.2015 aktualisiert um 17:27:00 Uhr
Goto Top
Gut, dann gelöst nicht vergessen...