# [VBA Word] Wie kann ich in Tabellen schreiben



## Zorck (12. November 2002)

Hallo!
Mein Problem ist folgendes,

Ich hab ein "Formular" (keine Form - nur in Form einer Tabelle) in Word. Wenn man nun in der Spalte "Anrede" f drückt soll automatisch "Frau" kommen.
Soweit so gut! Ich hab einfach ne Textbox drübergelegt und alles hat prima funktioniert. Jedoch kamen jetzt beschwerden, dass man nicht mehr mit der TAB Taste weiterspringen kann.

Also, wie komm ich aus der Textbox mit der TAB-Taste in die nächste Spalte? 
Oder, wie kann ich das ganze direkt in der Tabelle realisieren?


----------



## Dario Linsky (12. November 2002)

nimm doch einfach eine combobox und schreib herr/frau zur auswahl rein.  
beim drücken vom ersten buchstaben wird dann automatisch das entsprechende listitem ausgewählt.


----------



## Zorck (13. November 2002)

das ist ja gar nicht das Problem! Das hab ich ja!
Is halt bei mir auf Arbeit und die Leute, für die ich das machen sollte, wollen nun aber mit der TAB-Taste umherspringen!
Und das geht nicht mehr! Wie kommt man aus dem Objekt raus (sei es nun Combo oder Textbox)?


----------



## Dario Linsky (13. November 2002)

hast du vielleicht die tab-reihenfolge falsch eingestellt? ansonsten wüsste ich nicht, wieso das nicht mehr gehen sollte. wenn alle stricke reissen, kannst du ja noch im keypress-ereignis von dem steuerelement überprüfen, ob die tabulatortaste gedrückt wurde und dementsprechend den fokus auf ein anderes steuerelement setzen.


----------



## Zorck (14. November 2002)

Ich glaub ich hab mich echt zu doof ausgedrückt!
Ich hab doch nur das eine Steuerelement!

Das ist eine ganz normale Wordtabelle! Diese dient als Fax-Formular.
Nun soll bei der eingabe in der einen Spalte halt "Herr" oder "Frau" automatisch vervollständigt werden!

Ich hab, da ich es nicht anders wusste, einfach eine Textbox direkt in die entsprechende Spalte gelegt (so dass man sie nicht als extra Textbox erkennt).

Es hat auch alles prima geklappt, nur wollen die Leute, die dieses Formular benutzen mit der Tabtaste in die nächste Spalte, also aus der Textbox raus. Und das geht nicht! Oder besser: Ich weiß nicht wie!

Daher die Frage: Kann ich in bestimmte Spalten direkt schreiben oder wie verlasse ich das eine Steuerelemt und springe wieder in die WordTabelle??

So, ich hoffe jetzt hab ich mich besser ausgedrückt!


----------



## Zorck (21. November 2002)

Is das Thema jetzt gestorben?
Kann mir keiner helfen?

asphyxia - dir fällt doch immer was ein!


----------



## Zorck (29. November 2002)

Was ist denn jetzt?
Werd ich jetzt ganz und gar im Stich gelassen??
Nicht mal nen kleinen Tipp?


----------



## Dario Linsky (29. November 2002)

Wär es ein Problem, wenn Du mir die Datei mal irgendwie schicken würdest? Dann werf ich heute Abend mal einen Blick drauf. Irgendwie werd ich aus Deiner Problembeschreibung nämlich immer noch nicht schlau...


----------



## Zorck (29. November 2002)

Muss ich mal fragen, ob die Daten so wichtig sind, dass sie keiner hab kann (kann ich mir aber nich vorstellen!  )
Dann schick ich dir das Ding mal.

Welche Adress soll ich dann nehmen?? Von deiner HP?
oder du schickst mir einfach ne PM mit der Adresse.


----------



## Dario Linsky (29. November 2002)

Schick's an asphyxia@tutorials.de


----------



## Dario Linsky (29. November 2002)

So... ich hoffe, ich hab das jetzt richtig verstanden. 
Du hast in dem Dokument mehrere Tabellen. In der zweiten Tabelle ist ein Textfeld. Wenn jetzt jemand die Tab-Taste drückt, soll der Cursor in ein anderes Feld (rechts von "Name") springen. Richtig?

Dazu musst Du über das *Tables*-Objekt die Auswahl setzen. Das Feld, in welches der Cursor soll, ist in der ersten Zeile und der vierten Spalte der zweiten Tabelle.
Ich hab Deinen Code mal etwas aufgemischt, und jetzt sieht das Ding so aus:

```
Private Sub txtAnrede_KeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer)
If KeyCode = 9 Then '9 = Tab
    With Tables(2) 'zweite Tabelle
        .Cell(1, 4).Select 'Zeile 1, Spalte 4
    End With
End If
End Sub

Private Sub txtAnrede_KeyPress(ByVal KeyAscii As Integer)
Select Case KeyAscii
    Case 70 Or 102:
        KeyAscii = 0
        txtAnrede.Text = "Frau"
    Case 72 Or 104:
        KeyAscii = 0
        txtAnrede.Text = "Herr"
    Case Else:
        KeyAscii = 0
End Select
End Sub
```


----------



## Zorck (6. Dezember 2002)

Genau so meinte ich es.
Mit cell hatt ich auch schon rumprobiert.
Hab nur nicht das TablesObjekt genommen. 

Auf jeden Fall nochmal Danke!


----------

