Wie generiere ich aus einer Checkliste eine Word-Datei mit zuvor ausgewählten Textbausteinen?
Ich möchte eine Checkliste erstellen, aus der ich je nach Bedarf mehrere Haken setzen kann und daraus eine Word-Datei mit vorher festgelegten und zu den Haken zugeordneten Textbausteinen erstellt wird.
Beispiel: Ich möchte eine Rechnung erstellen für den Verkauf für Äpfel. Daher klicke ich in der Checkliste auf den Eintrag "Äpfel" und in der anschließend generierten Word-Datei wird ein vorgefertigter Textbaustein eingefügt "Eine Gute Wahl, Äpfel sind sehr gesund.".
Ich hoffe, dass mein Anliegen einigermaßen verständlich ist.
LG Hans
3 Antworten
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Erstell Dir in Word eine Userform mit den gewünschten Checkboxen und einem Commandbutton.
Code für den Button (Einfacher Fall ohne große Logik: Die Texte zu den markierten Checkboxen werden einfach aneinander gehängt):
Private Sub CommandButton1_Click()
For i = 1 To 3 'Anpassen auf die Anzahl der Checkboxen
If UserForm1.Controls("Checkbox" & i).Value = True Then
Select Case i
Case 1: DeinText = DeinText & "Apfel ist Super "
Case 2: DeinText = DeinText & "Birne schmeckt. "
Case 3: DeinText = DeinText & "Melone ist eklig " 'cases erweitern case 4 etc
End Select
End If
Next
Selection.TypeText Text:=DeinText
End Sub
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Ich bin ehrlich gesagt mit VBA in Word nicht so fit. Ich nehme an, dass Du dann die Worte einzeln formatieren musst.
case 1: Selection.Font.Bold = True
Selection.TypeText Text:="Äpfel "
Selection.Font.Bold = False
Selection.TypeText Text:="schmecken gut"
Vielleicht geht es aber auch noch eleganter zu lösen, dafür fehlt mir allerdings der Background mit Word.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Hallo Ninombre, vielen Dank für deine schnelle Antwort. Im Grunde ist es genau das, was ich gesucht habe. Jetzt noch ein paar Fragen: Wie kann ich den Text, den ich einfügen möchte, noch formatieren (z. B. fett gedruckt, eingerückt, etc.)?
![](https://images.gutefrage.net/media/user/BerchGerch/1444748488_nmmslarge.jpg?v=1444748488000)
Hallo,
welche Formatierungen sollen das denn genau sein? Da hat nämlich jede einen anderen Befehl.
Du könntest diese dann in dem Code oben zwischen Next und Selection.TypeText Text:=DeinText einfügen, damit die Formatierungen eingestellt werden, bevor der Text eingefügt wird. Der Text wird dann mit den eingestellten Formatierungen eingefügt, z. B.
(...)
Next
With Selection
.Font.Bold = True 'Text fett formatieren
.ParagraphFormat.LeftIndent = CentimetersToPoints(0.5) 'Setzt den linken Einzug auf 0,5 cm
.TypeText Text:=DeinText
End With
End Sub
Gruß, BerchGerch
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Eigentlich möchte ich einige Teile im Satz fett gedruckt haben und andere eben nicht, einige Textstellen eben eingerückt, und andere nicht.
Könnte ich den Text, der Case-Abfrage übernommen wird denn auch vorher in Variablen schreiben und dort dann vorformatieren?
z.B. so:
Variable1 = "Apfel ist " & .Font.Bold = True & "super" & .Font.Bold = False & "lecker!"
...
Case 1: DeinText = DeinText & .ParagraphFormat.LeftIndent = CentimetersToPoints(0.5) & Variable1
Case 2: DeinText = DeinText & Variable2
Das Problem was ich denke ist, dass "Selection.TypeText Text:=DeinText" nur einen String ausgeben kann und evtl. Probleme mit den .Font.Bold, etc. bekommt oder irre ich da?
![](https://images.gutefrage.net/media/user/iMPerFekTioN/1508852060833_nmmslarge__0_0_944_944_2b6eea8d0c8e9e26daceb4960b1e5664.png?v=1508852061000)
Warum benutzt du dazu nicht Excel?=)
Hallo Ninombre, vielen Dank für deine schnelle Antwort. Im Grunde ist es
genau das, was ich gesucht habe. Jetzt noch ein paar Fragen: Wie kann
ich den Text, den ich einfügen möchte, noch formatieren (z. B. fett
gedruckt, eingerückt, etc.)?