Benjamin-DO
Grünschnabel
Hallo,
ich habe ein Dokument als Kurzbrief entworfen, nun möchte ich dass die Textmarken durch ein entsprechendes Userform gefüllt werden. Soweit so gut. Mit den Textboxen habe ich es hinbekommen, die Checkboxen verweigern allerdings ihren Dienst.
Der Code des Userforms ist:
Allerdings läuft das Userform nicht durch. Word bemängelt eine
Mehrachdeklaration. Leider kenne ich mich mit VBA nicht aus und habe dann an
dem zweiten mal die Zeile "Dim rTmp As Range" auskommentiert, aber dies hat
leider keinen Erfolg gebracht.
Danach habe ich mir überlegt wie bei den Textfeldern das rTmp durch TMRange
zu ersetzen, aber auch dieses brachte keinen Erfolg.
Im Moment trägt Word dann noch nicht mal mehr die Textfelder ein.
Wo liegt denn mein Fehler?
Wenn es hilfreich ist, kann ich auch gerne die Originaldatei auf meinen Server laden.
Besten Dank schon mal
Gruß
Benjamin
ich habe ein Dokument als Kurzbrief entworfen, nun möchte ich dass die Textmarken durch ein entsprechendes Userform gefüllt werden. Soweit so gut. Mit den Textboxen habe ich es hinbekommen, die Checkboxen verweigern allerdings ihren Dienst.
Der Code des Userforms ist:
Code:
Private Sub CommandButton2_Click()
If Anrede_Kopf = "" Then
Anrede_Kopf = "Anrede_Kopf"
Name_Kopf = "Name_Kopf"
Name_Kopf2 = "Name_Kopf2"
Straße = "Straße"
PLZ = "PLZ"
Leer_erhalten = "Erhalten_leer1"
Leer_bitte = "Bitte_leer1"
Name_Briefanrede = "Name_Briefanrede"
'Checkboxen auslesen und eintragen
' Checkbox Unterlagen
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Unterlagen.Name).Range
If Unterlagen.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Unterlagen.Name, Range:=rTmp
End If
' Checkbox Kopien
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Kopie.Name).Range
If Kopie.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Kopie.Name, Range:=rTmp
End If
' Checkbox Unterlagen zur Bearbeitung
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Unterlagen_Bearbeitung.Name).Range
If Unterlagen_Bearbeitung.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Unterlagen_Bearbeitung.Name,
Range:=rTmp
End If
' Checkbox Unterlagen zur Kenntnisnahme
Dim rTmp As Range
Set rTmp =
ActiveDocument.Bookmarks(Unterlagen_Kenntnisnahme.Name).Range
If Unterlagen_Kenntnisnahme.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Unterlagen_Kenntnisnahme.Name,
Range:=rTmp
End If
' Checkbox Erhalten
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Erhalten_lees.Name).Range
If Erhalten_lees.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Erhalten_leer.Name, Range:=rTmp
End If
' Checkbox Erledigung
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Erledigung.Name).Range
If Erledigung.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Erledigung.Name, Range:=rTmp
End If
' Checkbox Rückruf
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Rückruf.Name).Range
If Rückruf.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Rückruf.Name, Range:=rTmp
End If
' Checkbox Kenntnisnahme
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Kenntnisnahme.Name).Range
If Kenntnisnahme.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Kenntnisnahme.Name, Range:=rTmp
End If
' Checkbox Stellungnahme
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Stellungnahme.Name).Range
If Stellungnahme.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Stellungnahme.Name, Range:=rTmp
End If
' Checkbox Bitte
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(Bitte_leer.Name).Range
If Bitte_leer.Value = True Then
rTmp.Text = "X"
ActiveDocument.Bookmarks.Add Name:=Bitte_leer.Name, Range:=rTmp
End If
' Checkbox allgemeine Anrede
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(allg_Anrede.Name).Range
If allg_Anrede.Value = True Then
rTmp.Text = "Sehr geehrte Damen und Herren"
ActiveDocument.Bookmarks.Add Name:=Briefanrede.Name, Range:=rTmp
End If
' Checkbox weibliche Anrede
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(weibl_anrede.Name).Range
If weibl_anrede.Value = True Then
rTmp.Text = "Sehr geehrte Frau"
ActiveDocument.Bookmarks.Add Name:=Briefanrede.Name, Range:=rTmp
End If
' Checkbox männliche Anrede
Dim rTmp As Range
Set rTmp = ActiveDocument.Bookmarks(männl_Anrede.Name).Range
If männl_Anrede.Value = True Then
rTmp.Text = "Sehr geehrter Herr"
ActiveDocument.Bookmarks.Add Name:=Briefanrede.Name, Range:=rTmp
End If
' zuordnen der Textfelder
Dim TMRange As Range
Dim X
For Each X In Me.Controls
If TypeOf X Is MSForms.TextBox Then
If ActiveDocument.Bookmarks.Exists(X.Name) Then
Set TMRange = ActiveDocument.Bookmarks(X.Name).Range
TMRange.Text = X.Text
ActiveDocument.Bookmarks.Add Name:=X.Name, Range:=TMRange
End If
End If
Next
' aktualisierung
Selection.WholeStory
Selection.Fields.Update
Selection.HomeKey unit:=wdStory
Else
End If
' FelderAktualisieren()
Application.ScreenUpdating = False
ActiveDocument.Repaginate
Dim RaTeil As Range
For Each RaTeil In ActiveDocument.StoryRanges
RaTeil.Fields.Update
While Not (RaTeil.NextStoryRange Is Nothing)
Set RaTeil = RaTeil.NextStoryRange
RaTeil.Fields.Update
Wend
Next
Application.ScreenUpdating = True
Set TMRange = Nothing
Set RaTeil = Nothing
Unload UserForm1
End Sub
Allerdings läuft das Userform nicht durch. Word bemängelt eine
Mehrachdeklaration. Leider kenne ich mich mit VBA nicht aus und habe dann an
dem zweiten mal die Zeile "Dim rTmp As Range" auskommentiert, aber dies hat
leider keinen Erfolg gebracht.
Danach habe ich mir überlegt wie bei den Textfeldern das rTmp durch TMRange
zu ersetzen, aber auch dieses brachte keinen Erfolg.
Im Moment trägt Word dann noch nicht mal mehr die Textfelder ein.
Wo liegt denn mein Fehler?
Wenn es hilfreich ist, kann ich auch gerne die Originaldatei auf meinen Server laden.
Besten Dank schon mal
Gruß
Benjamin