Re: MS WORD 2003 - Tabelle Wie realisiere ich das
ich benötige ein Word eine Tabelle mit ca. 30 Spalten und 6
Zeilen... So entsteht eine Tabelle mit 180 einzelnen Zellen,
soweit sogut.
Jetzt möchte ich dass man in jede Zelle maximal
1 Zeichen schreiben kann. Ausserdem soll der
Cursor bei Eingabe des Zeichens sofort die nächste Zelle
rechts davon springt. Respektive wenn die Zeile zu ende ist,
in die nächste Zeile springt.
Hi Winnie,
leg dir halt 180 Textboxen aus Steuelementtoolbox an und werte die per Vba aus. Auch das Anlegen macht man dann mit Vba.
Insgesamt wäre für diese Augabenstellung ein Klassenmodul am besten, aber das war mir jetzt zu aufwendig weil ich die nicht gut kann.
Hier mal ein Beispiel wie das mit 80 Textboxen ginge
Ich habe hier grad nur OpenOffice, du mußt überall das "Rem " löschen.
Sub tt legt die gewünschten Textboxen an, Sub Code wird unten erklärt.
In das Modul "ThisDocument"
Rem Option Explicit
Rem
Rem Private Sub TextBox1_Change()
Rem If Len(TextBox1) = 1 Then TextBox2.Select
Rem End Sub
Rem
Rem Private Sub TextBox2_Change()
Rem If Len(TextBox2) = 1 Then TextBox3.Select
Rem End Sub
Rem
...hier die weiteren Subs
Rem
Rem Private Sub TextBox79_Change()
Rem If Len(TextBox79) = 1 Then TextBox80.Select
Rem End Sub
Rem
Rem Private Sub TextBox80_Change()
Rem If Len(TextBox80) = 1 Then TextBox1.Select
Rem End Sub
In das Modul1:
Rem Option Explicit
Rem '
Rem Sub tt()
Rem Dim Z As Long, S As Integer
Rem With ActiveDocument.Shapes
Rem For Z = 1 To 10
Rem For S = 1 To 8
Rem .AddOLEControl ClassType:="Forms.TextBox.1", _
Rem Top:=Z * 12, Left:=(S - 0) * 12, Width:=12, Height:=12
Rem 'klappt nicht, Name wird nur teilweise angenommen in Word97 ^ 2000
Rem .Item(.Count).Name = "TB" & .Count
Rem Next S
Rem Next Z
Rem End With
Rem End Sub
Rem '
Rem Sub CodeErzeugen()
Rem ' Code erstellt für beliebig viele aus Steuerelemttoolbox erzeugte Textboxen
Rem ' den jeweiligen Code für das "Change"-Ereignis der jeweiligen Textbox
Rem ' Verweis auf MS Forms 2.0 Object Library muß gesetzt sein
Rem ' Makro starten, dann in das KLassenmodul "ThisDocument" wechseln
Rem ' und erzeugten Code an gewünschter Stelle einfügen
Rem Dim Anz As Long, A As Long, Satz As String, Kurz As New DataObject
Rem Anz = 80
Rem For A = 1 To Anz - 1
Rem Satz = Satz & "Private Sub TextBox" & A & "_Change()" & vbLf
Rem Satz = Satz & "If Len(TextBox" & A & ") = 1 Then TextBox" & A + 1 & ".Select" & vbLf
Rem Satz = Satz & "End Sub" & vbLf & vbLf
Rem Next A
Rem Satz = Satz & "Private Sub TextBox" & A & "_Change()" & vbLf
Rem Satz = Satz & "If Len(TextBox" & A & ") = 1 Then TextBox" & 1 & ".Select" & vbLf
Rem Satz = Satz & "End Sub" & vbLf & vbLf
Rem Kurz.SetText Satz
Rem Kurz.PutInClipboard
Rem Set Kurz = Nothing
Rem End Sub
Gruß
Reinhard