collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 37
  • Punkt Versteckte: 2
  • Punkt Mitglieder: 2

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13808
  • stats Beiträge insgesamt: 64202
  • stats Themen insgesamt: 8683
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Ref Feldeingabe über UserForm  (Gelesen 8164 mal)

Volker Lenk

  • Gast
Ref Feldeingabe über UserForm
« am: Juni 28, 2011, 10:19:20 »
Hallo an ALLE !

Habe das Bestreben eine Worddatei zu vereinfachen, allerdings hapert es am VBA Code!
Wäre wahnsinnig lieb, wenn mir jemand Hilfestellung geben könnte. Auch über Links oder Hinweise bin ich sehr dankbar!

Ich habe in meinem Dokument (Word 2007) einige Ref - Felder eingefügt. Zur Vereinfachung der Eingabe, soll ein Formular dienen.

Bei meinem Suchen im Netz habe ich sogar ein Beispiel gefunden, allerdings erscheint ein Laufzeitfehler:5941

De verwendete Code des UserForm1 Bestätigungs Buttons ist folgender:

Private Sub CommandButton1_Click()
   Dim oStory As Range


   With ActiveDocument
      .FormFields("Nachname").Result = tbNachname.Text
      .FormFields("Firma").Result = tbFirma.Text
      
        ' update {REF} Felder
      For Each oStory In .StoryRanges
         oStory.Fields.Update
      Next oStory
   End With

   Unload Me
  UserForm2.Show
End Sub



------

Markiert wird im VBA Editorfenster :
.FormFields("Nachname").Result = tbNachname.Text

-----

Kann mir jemand helfen?

Der Code stammt von: w w w.office-loesung.de/ftopic119654_0_0_asc.php

Vielen Dank für jede Antwort und einen sonnigen Tag wünscht

lenky
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23145
Re: Ref Feldeingabe über UserForm
« Antwort #1 am: Juni 28, 2011, 10:46:09 »
Hallo,

und warum fragst Du nicht bei Office-Loesung nach..?


Wie heißt die Fehlermeldung?

Es ist hierbei nur zu mutmassen, dass es
1) ein Formfield mit Namen "Nachname" nicht gibt
2) ein Textfeld mit Namen "tbNachname" im Userform nicht gibt.


Lenk

  • Gast
Re: Ref Feldeingabe über UserForm
« Antwort #2 am: Juni 28, 2011, 11:45:41 »
Hallo DF6GL!

Zu Deiner Frage : da ich bisher hier registriert war und nicht in tausend Foren beitreten möchte. Hier gefällt es mir sehr gut! Der Umgang untereinander und die Menschen.
Leider muss ich als Gast schreiben, da ich das Passwort vergessen und sich die Mailadresse verändert hat. Warte auf neue Logindaten.

Zu Deinen Antworten. Die Ref Felder existieren (kann man die evtl falsch erstellen? Habe es über Textmarke definieren gemacht).

Fehlermeldung, das angforderte Element ist nicht in der Sammlung vorhanden.

Irgendwie findet Word diese Formfields nicht - keine Ahnung warum.......????
                                
Meine Ref Felder heißen Nachname und Firma
Mein UserForm1 hat Bezeichnungsfeld 1 mit Namen: Nachname (Caption: Nachname eigeben)
                                                        2 mit Namen: Firma        (             Firma  eigeben)


                               Textfelder           1 mit Namen: tbNachname
                                                         2 mit Namen: tbFirma

                               CommandButton1: mit den Nachfogenden Code:

Private Sub CommandButton1_Click()
   Dim oStory As Range


   With ActiveDocument
      .FormFields("Nachname").Result = tbNachname.Text
      .FormFields("Firma").Result = tbFirma.Text
      
        ' update {REF} Felder
      For Each oStory In .StoryRanges
         oStory.Fields.Update
      Next oStory
   End With

   Unload Me
  UserForm2.Show
End Sub

----
Private Sub tbFirma_Change()

End Sub
----
Private Sub tbNachname_Change()

End Sub
---

Hinweis: ein zweites Formular hab ich noch nicht gemacht. Beim durchlesen der Beschreibung ist mir aufgefallen, dass ich folgendes gar nicht gemacht habe:

Beispiel: Du hast zwei Textformularfelder im Formular mit Textmarke:
Nachname
Klasse
--> wo oder wie setze ich denn die Textmarke?

Besten Dank für Hilfe!

lg lenky
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23145
Re: Ref Feldeingabe über UserForm
« Antwort #3 am: Juni 29, 2011, 11:15:50 »
Hallo,


nun gut, ich denke nur, dass die Autoren dieses Codes besser um die Hintergründe ihrer Gedankengänge wissen...


Wie auch immer:

Formfields und Bookmarks sind unterschiedliche Sachen...  Vielleicht läuft da was durcheinander.


Offline lenky

  • Access-User
  • *
  • Beiträge: 63
Re: Ref Feldeingabe über UserForm
« Antwort #4 am: Juni 29, 2011, 22:04:39 »
Hallo DF6GL, Hallo ALLESAMT!

Hab mich jetzt notgedrungen mal bei office angemeldet um des Rätsels Lösung zu finden.

Bisher konnte ich aber noch nichts weiter herausfinden außer folgenden neuen Code:

Private Sub CommandButton1_Click()
Dim rngStory As Range
Dim rngTextmarke As Range
Dim strNameTextmarke As String
strNameTextmarke = "Nachname"
Set rngTextmarke = ActiveDocument.Bookmarks(strNameTextmarke)
rngTextmarke.Text = tbNachname.Text
ActiveDocument.Bookmarks.Add Range:=rngTextmarke, Name:=strNameTextmarke

strNameTextmarke = "Firma"
Set rngTextmarke = ActiveDocument.Bookmarks(strNameTextmarke)
rngTextmarke.Text = tbFirma.Text
ActiveDocument.Bookmarks.Add Range:=rngTextmarke, Name:=strNameTextmarke


' update {REF} Felder
'nur nötig wenn sich andere Felder auf deine Textmarken Beziehen:
For Each rngStory In ActiveDocument.StoryRanges
 rngStory.Fields.Update
Next

Unload Me

End Sub


---

leider jedoch auch noch mit Fehlermeldung:

Laufzeitfehler 13
Typ unverträglich

Der VBA Editor meckert dann in der 6ten Zeile bei (gelb markiert):

Set rngTextmarke = ActiveDocument.Bookmarks(strNameTextmarke)



Die Eingabe in tbNachname und tbFirma werden aber schon mal erkannt, da sie erscheinen, wenn ich den Mauszeiger drüberfahren lasse.

lg und schönen Abend lenky

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23145
Re: Ref Feldeingabe über UserForm
« Antwort #5 am: Juni 30, 2011, 00:10:24 »
Hallo,

entweder Du deklarierst "rngTextmarke"  als Bookmark oder Du weist der Range-Variablen auch einen Range zu:

Set rngTextmarke = ActiveDocument.Bookmarks(strNameTextmarke).Range


Offline lenky

  • Access-User
  • *
  • Beiträge: 63
Re: Ref Feldeingabe über UserForm
« Antwort #6 am: Juni 30, 2011, 16:10:44 »
Hallo DF6GL!

Ja, wie Recht Du hast! Funktioniert so prima!

Mein Code lautet nun:

Private Sub OK_Click()
Dim rngStory As Range
Dim rngTextmarke As Range
Dim strNameTextmarke As String
strNameTextmarke = "Vorname"
Set rngTextmarke = ActiveDocument.Bookmarks(strNameTextmarke).Range
rngTextmarke.Text = tbVorname.Text
ActiveDocument.Bookmarks.Add Range:=rngTextmarke, Name:=strNameTextmarke

' update {REF} Felder
'nur nötig wenn sich andere Felder auf Textmarken Beziehen:
For Each rngStory In ActiveDocument.StoryRanges
 rngStory.Fields.Update
Next

Unload Me

End Sub


-----

Soweit so gut!
Jetzt möchte ich meine Formulareingabe noch etwas optimieren. Und zwar soll in die Textboxen, der Value Wert eingelesen werden, welcher im Dokument bisher existiert.
Ich habe das Formular so eingerichtet, dass es beim start und per Button aufrufbar ist.

Toll, wäre es, wenn z.B der aktuell definierte Nachname eingelesen werden kann, so dass er unter Umständen wieder verwendbar wird.

Bisher funktioniert es so, aber ich muss jedesmal alle Felder ausfüllen, andernfalls wird ein leeres Feld zu einem nicht definierten Nachnamen, Vornamen etc..

Wäre schön, wenn es auch hierfür eine Lösung gibt.
Besten Dank im Voraus

lg lenky
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23145
Re: Ref Feldeingabe über UserForm
« Antwort #7 am: Juni 30, 2011, 16:37:38 »
Hallo,

wenn ich es recht interpretiere, solltest Du halt ein leeres Feld mit IsNull prüfen und entspr. reagieren...

Offline lenky

  • Access-User
  • *
  • Beiträge: 63
Re: Ref Feldeingabe über UserForm
« Antwort #8 am: Juli 01, 2011, 19:41:24 »
Hallo!

Danke für Deine Antwort! Habe übernächste Woche etwas Urlaub und versuche mich dann mal in die Materie einzulesen. So kann ich leider noch nichts damit anfangen.
Werde dann das Dokument erst einmal so benutzen - klappt ja; ist nur nicht so kompfortabel.

lg und schönes Wochenende lenky