Hi Flo,
soweit klar was du im Sinn hast - die Beschreibung ist allerdings doch noch recht vage.
1) Ein DropDown ist schnell erstellt und mit Inhalt gefüllt.
With ThisDocument.ContentControls.Add(wdContentControlDropdownList)
.Title = "Liste mit Einträgen"
.SetPlaceholderText Text:="Eintrag auswählen..."
With .DropdownListEntries
.Add "Eintrag1", "Eintrag1_Wert"
.Add "Eintrag2", "Eintrag2_Wert"
.Add "Eintrag3", "Eintrag3_Wert"
End With
End With
2) Und ausgelesen wird z.B. so:
With ThisDocument.SelectContentControlsByTitle("Liste mit Einträgen")
If .Count > 0 Then
Call MsgBox("aktuelle Auswahl:" & vbNewLine & _
"Text: " & .Item(1).Range.Text & vbNewLine & _
"Wert: " & GetContentControlListEntryValue(.Item(1)), _
vbInformation)
End If
End With
mit
'Hilfsfunktion zum Auslesen des Wertes eines Eintrags
Public Function GetContentControlListEntryValue(ByVal ContentControl As Word.ContentControl) As Variant
Select Case ContentControl.Type
Case wdContentControlDropdownList, wdContentControlComboBox
Dim ListEntry As Word.ContentControlListEntry
For Each ListEntry In ContentControl.DropdownListEntries
If 0 = StrComp(ListEntry.Text, ContentControl.Range.Text, vbTextCompare) Then
GetContentControlListEntryValue = ListEntry.Value
Exit Function
End If
Next
End Select
End Function
(es gibt noch einen Weg an den Wert per XML-Mapping zu gelangen; ich möchte das hier aber nicht komplizierter machen als es an der Stelle schon ist)
Der Rest der Logik ist unbekannt.
Klicke ich auf den "AB generieren" Button, öffnet er mir die jeweilige Auftragsbestätigung mit ausgefüllter Adresse
sowie einer fortlaufenden Nummer speziell für diesen AB Typ.
Also es kann sein, dass die AB1 schon bei der fortlaufenden Nummer 123 ist und der Typ AB2 erst bei 77.
Woher soll das Makro das alles wissen / nehmen?
Wenn du hierzu deine Gedankengänge teilst, kann dir sicher jemand weiterhelfen.
Grüße
|