Range Objekt mit Text füllen

20/02/2009 - 11:26 von Thorsten Wiedemann | Report spam
Hallo Leute,

ich fertige seit langer Zeit mal wieder ein office Projekt. Dazu möchte ich
eine WORD Datei mit Texten füllen, die sich über eine user form (mittels
Checkboxen) auswàhlen lassen. Dann wird darüber ein Textfeld eines Formulars
gefüllt.
Wenn ich die einzelnen Bausteine in einem STRING sammle (also je nachdem
welche Checkbox geklickt wurde) dann ist funzt alles einwandfrei. Sieht aber
nicht schick aus, da man da den Text nicht so gut formatieren kann. Deshalb
wollte ich die einzelnen Textbausteine per Funktion in einem Range sammeln,
dann formatieren (einige Worte sollten fett geschrieben sein usw)

ich habe aber leider ein dickes Brett vor dem Kopf und bekomme das Range an
keiner stelle per SET oder per .InsertAfter oder àhnlichem befüllt, imm
erkommt die Fehlermeldung, dass die Objekte die Funktion nihct unterstützen
oder so àhnlich.


Hat jemand eine idee?


Vielen Dank für jeden Gedanken!

Gruß Thorsten




hier der code in auszügen:

Sub setzeText()
'die Formulare müssen entsperrt werden damit man etwas hineinschreiben kann

ActiveDocument.Sections(1).ProtectedForForms = False


setzeVSNR


ActiveDocument.FormFields("Htxt").Range = selectTexte() 'das feld vorher
benannt



'ActiveDocument.FormFields(1).Range = txtForm & "Hallo Fans"
'Form wieder sperren
ActiveDocument.Sections(1).ProtectedForForms = True

End Sub



Public Function checkBoxing() As String



End Function


Function setzeVSNR() As String
ActiveDocument.FormFields("VSNR").Range = usfStart.tbox_VSNR.Text
End Function


Function selectTexte() As Range



Set fEingabe = ActiveDocument.FormFields("Htxt")
If ActiveDocument.FormFields("Htxt").Range.Text > "" And
ActiveDocument.FormFields("Htxt").Range.Text <> Null Then



Else:
selectTexte texte.KVdR()


End If
End Function

'und hier die Funktion die das Range dann füllen sollte (also hier nur eine
Checkbox abgefragt)

Public Function KVdR() As String



If usfStart.chk_1.Value = True Then 'wenn die Chekcbox geklickt wurde

KVdR.InsertBefore = "Wir benötigen noch die Adresse der aktuellen
bzw. letzten gesetzlichen Krankenkasse, dorthin muß noch ein Fragebogen
gesandt werden" 'der Text der eingestellt werden sollte

'KVdR.InsertBreak 'dann wollte ich noch einen break einfügen und
spàter den text in dem Range formatieren, bzw hervorerheben, bevor ich den
Rückgabewert an die aufrufende Funktion zurückgebe

End If

End Function
 

Lesen sie die antworten

#1 Lisa (Nora Richter)
20/02/2009 - 13:53 | Warnen spam
Hallo Thorsten,

ich habe aber leider ein dickes Brett vor dem Kopf und bekomme das Range an
keiner stelle per SET oder per .InsertAfter oder àhnlichem befüllt, imm
erkommt die Fehlermeldung, dass die Objekte die Funktion nihct unterstützen
oder so àhnlich.



Der Range eines Textformularfeldes wird über die Result-Eigenschaft
gefüllt!

ActiveDocument.FormFields("Text2").Result = "blabla sülzsülz"

Beim anschließenden Setzen des Formularschutzes darauf achten, dass
NoReset = True gesetzt wird:

ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True

Die freizugebenden Sections danach wieder freigeben.

Gruß
Lisa
_____
http://www.schreibbuero-richter.de/vba.html

Ähnliche fragen