Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textmarken in Textfeldern in Word ansprechen?

Textmarken in Textfeldern in Word ansprechen?
23.09.2007 12:25:00
Kasimir
Hallo Leute,
ich komme einfach nicht weiter. Ich versuche aus Excel heraus Textmarken in einem Worddokument anzusprechen. Leider funktioniert das nicht so richtig. Wenn sich die Textmarken normal im Worddokument befinden funktioniert nachfolgender Befehl:
'Nachname
myWord.Bookmarks("Name").Range.Text = TextBox1.Text
Da es sich aber bei dem Worddokument um eine Vorlage handelt, bei der an verschiedenen Stellen Texte aus Excel eingefügt werden sollen und um die Textmarken besser zu positionieren zu können, habe ich die Textmarken in einem Textfeld eingefügt. Da funktioniert aber obiger Code nicht mehr. Kann mir jemand einen Tipp geben, warum das so ist und eventuell einen Lösungsweg beschreiben. Wäre super dankbar dafür, damit ich weiterkomme mit meiner Vorlage.
Danke Euch,
Kasimir

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textmarken in Textfeldern in Word ansprechen?
23.09.2007 15:41:28
Kasimir
Hallo Josef,
danke Dir für den Link. Leider bin ich dort irgendwie nicht so richtig fündig geworden. Eventuell geht es ja auch nur mit Textmarken, was ich vorhabe. Ich habe dazu mal ein Beispielbild hochgeladen, damit man sehen kann, wie das bei mir in der Worddatei aussieht.
Userbild
Wenn ich hier allerdings nur Textmarken einfüge, wird der Bereich immer verschoben, da ja z.B. der Nachname unterschiedliche Längen haben kann. Kann man irgendwo festlegen, wie breit solch eine Textmarke ist? Somit würde dann, egal wie lang z.B. der Nachname ist, immer ein fester Bereich für die Textmarke genommen und der Rest würde nicht verschoben.
Danke für die Hilfe,
Kasimir

Anzeige
AW: Textmarken in Textfeldern in Word ansprechen?
23.09.2007 17:07:02
fcs
Hallo Kasimir,
baue das Worddokument als richtiges Word-Formular- Word-Formularfelder kann man auch direkt ansprechen und mit Daten füllen -
oder
als Word-Tabelle auf.
Dabei für die Vorgabetexte und die Eingabetexte jeweils eigenen Zellen vorsehen.
Im Zusammenspiel von Tabellenformaten und Absatzformaten (Abstand vor/nach) müsstest du es optisch ähnlich hinbekommen wie mit den Textboxen. Die Tabellenzeilen in Word kannst du so einstellen, dass die Höhe fixiert ist.
In jede Leerzelle für Ausfülltexte plazierst du eine entsprechende Textmarke. Dann sollte das Ausfüllen von Excel aus funktionieren so wie du es bsher machts..
Hier https://www.herber.de/forum/messages/909635.html
hatte ich gestern eine Beitrag produziert, der sich ebenfalls mit dem Transfer von Daten aus Excel nach Word befasst. Evtl. kannst du da ja noch was hilfreiches finden.
Gruß
Franz

Anzeige
AW: Textmarken in Textfeldern in Word ansprechen?
24.09.2007 08:56:47
Kasimir
Hallo Franz,
sorry, dass ich erst jetzt reagiere, aber ich war gestern verhindert. Danke Dir für Deine Antwort. Das mit den Formularfeldern hört sich schon mal gut an. Aber wie lautet denn dann der Befehl um den Text in das Formularfeld zu bekommen?
Den 2. Vorschlag mit der Wordtabelle habe ich leider nicht so ganz gerafft, sorry.
Danke nochmal und Gruß,
Kasimir

AW: Textmarken in Textfeldern in Word ansprechen?
24.09.2007 15:28:00
fcs
Hallo Kasimir,
ich hab hier mal eine Beispielprozedur um von Excel aus ein Wordformular zu füllen. Für Checkboxen und Textfelder ist dei Syntax unterschiedlich. Sinnvoller Weise übergibt man nach Word die die Text-Eigenschaft der Zellen. Dann wird der Inhalt so in Word eingetragen, wie er in Excel dargestellt wird (betrifft Datum-, Zahlen-, Währungsformate)
Mit "als Wordtabelle aufbauen" meine ich, dass du dein Formular Word-Tabelle aufbaust. Dabei ist es kein Muss, aber sinnvoll, dass die Vorhabetexte und die Ausfülltexte in separate Zellen eingetragen werden. Durch die Zellen der Tabellen ist die Spalten-Position der Texte fixiert, selbst wenn der Ausfülltext etwas länger sein sollte wird der Formularaufbau nicht zerstört, die Tabellenreihe wird dann ggf. bei entsprechender Einstellung etwas höher.
MfG
Franz

'###### fcs, aktualisiert 2007-09-24 ######
'Zur korrekten Funktion der Prozedur muss im Excel-VBA-Editor unter Extras-->Verweise _
der Verweis auf die "Microsoft Word x.y Object Library" als verfügbar markiert werden.
'Prozedur wurde erstellt unter Office2003 (Word2003/Excel2003)
'MS Word muss geöffnet sein bevor die Prozedur gestarte wird. Im Worddokument muss der _
Formularschutz aktiv sein.
Sub Daten_in_Wordformular()
'Fügt Daten aus Excel an ein Worddokument in Formularfelder ein
'Deklaration Word-Objekte
Dim wdDoc As Word.Document
'Deklaration Excel-Objekte
Dim wks As Worksheet
'Deklaration allgemeine Variablen
Dim strWordDatei As String
Dim FehlerNr As Integer
On Error GoTo Fehler
Application.ScreenUpdating = False
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'Tabelle mit zu exportierenden Daten
Application.ActivateMicrosoftApp xlMicrosoftWord
FehlerNr = 1
GoTo weiter03
'Worddokument laden in das eingefügt werden soll
strWordDatei = "C:\Eigene Dateien\Dokumente\FormularMuster.doc"
'Prüfung ob Word-Dokument schon geöffnet
For Each wdDoc In Word.Documents
If LCase(Word.ActiveDocument.FullName) = LCase(strWordDatei) Then
If MsgBox("Das Musterdokument ist schon geöffnet!" & vbLf & vbLf & _
"Trotzden weitermachen?", vbQuestion + vbOKCancel, "Datentransfer nach Word") _
= vbCancel Then
GoTo weiter01
Else
Exit For
End If
End If
Next
If wdDoc Is Nothing Then
Set wdDoc = Word.Documents.Open(Filename:=strWordDatei, ReadOnly:=True)
Else
wdDoc.Activate
End If
GoTo weiter02
weiter03:
'Formular im aktiven Dokument in Word ausfüllen
Set wdDoc = Word.ActiveDocument
weiter02:
Select Case wks.Cells(1, 2).Value
'Checkboxen Werte zuweisen
Case "Herr"
wdDoc.FormFields("chkHerr").CheckBox.Value = 1
wdDoc.FormFields("chkFrau").CheckBox.Value = 0
wdDoc.FormFields("chkFirma").CheckBox.Value = 0
Case "Frau"
wdDoc.FormFields("chkHerr").CheckBox.Value = 0
wdDoc.FormFields("chkFrau").CheckBox.Value = 1
wdDoc.FormFields("chkFirma").CheckBox.Value = 0
Case "Firma"
wdDoc.FormFields("chkHerr").CheckBox.Value = 0
wdDoc.FormFields("chkFrau").CheckBox.Value = 0
wdDoc.FormFields("chkFirma").CheckBox.Value = 1
Case Else
MsgBox "Falscheingabe bei Herr/Frau/Firma"
End Select
'Text Felderausfüllen, wobei die Formlarfelder in Word auch _
als Text, Zahl oder Datum eingerichtet sein
wdDoc.FormFields("Name").Result = wks.Cells(3, 1).Text
wdDoc.FormFields("Vorname").Result = wks.Cells(3, 2).Text
wdDoc.FormFields("Datum").Result = wks.Cells(3, 3).Text
wdDoc.FormFields("Strasse").Result = wks.Cells(6, 1).Text
wdDoc.FormFields("PLZ").Result = wks.Cells(6, 2).Text
wdDoc.FormFields("Ort").Result = wks.Cells(6, 3).Text
wdDoc.FormFields("Familienstand").Result = wks.Cells(6, 4).Text
wdDoc.FormFields("Telefon").Result = wks.Cells(8, 1).Text
wdDoc.FormFields("E_mail").Result = wks.Cells(8, 3).Text
If wks.Cells(10, 3) > 0 Then
wdDoc.FormFields("chkKinder18").CheckBox.Value = 1
wdDoc.FormFields("Kinder18").Result = wks.Cells(10, 3).Text
Else
wdDoc.FormFields("chkKinder18").CheckBox.Value = 0
wdDoc.FormFields("Kinder18").Result = ""
End If
wdDoc.FormFields("Beruf").Result = wks.Cells(12, 1).Text
wdDoc.FormFields("Bank").Result = wks.Cells(14, 1).Text
wdDoc.FormFields("BLZ").Result = wks.Cells(14, 2).Text
wdDoc.FormFields("KontoNr").Result = wks.Cells(14, 3).Text
'Speichern unter Dialog in Word anzeigen
With Word.Dialogs(wdDialogFileSaveAs)
.Name = wdDoc.Path & "\" & "Formular_" & wks.Cells(3, 1).Text & ".doc"
.Show
End With
weiter01:
wdDoc.Application.WindowState = wdWindowStateMinimize
MsgBox "Daten sind übertragen"
GoTo Beenden
Fehler:
If FehlerNr > 0 Then Word.Application.WindowState = wdWindowStateMinimize
MsgBox "Word- oder Excel-Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & vbLf _
& Err.Description
Beenden:
Application.ScreenUpdating = True
Set wdDoc = Nothing
Set wks = Nothing
End Sub


Anzeige
AW: Textmarken in Textfeldern in Word ansprechen?
25.09.2007 10:49:00
Kasimir
Hallo Franz,
sorry, dass ich erst jetzt reagiere, aber ich war vorher leider verhindert. Danke Dir für Deine Antwort und das VBA-Script. Das hat mir eine ganze Menge gebracht.
Wünsche Dir noch einen schönen Tag.
Gruß,
Kasimir

90 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige