MS WORD 2003 - Tabelle Wie realisiere ich das ??

Von: , Frage gestellt am Do, 14. Feb 2008

Hallo Leute...

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.

Ich hoffe ich hab das ganze verständlich beschrieben.... =:o)

Wie kann ich sowas in WORD realisieren ?? Danke für die Tipps

Gruss Winnie

2 Antworten zu dieser Frage

  1. Antwort von nach 11 Stunden 0 hilfreich
    Re: MS WORD 2003 - Tabelle Wie realisiere ich das

    Hallo,

    vorbehaltlich einer weiteren Antwort eines anderen Users mit einer besseren Idee lautet meine Antwort: VBA

    Sprich, für so eine Funtionalität musst Du richtig programmieren. Dabei weiß ich nicht aus dem Ärmel, ob VBA Word-Tabellenzellen als Objekte kennt, gehe aber davon aus.

    Mit Bordmitteln ist meines Wissens selbst das "max. 1 Zeichen" nur mit Formular-Feldern machbar. Davon müsstest Du dann allerdings 180 in das Dokument packen.
    Wenn Du es so machst, kannst Du dann zumindest mit [TAB] zum nächsten springen, nicht aber automatisch.


    Alles Gute
    Jens [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  2. Antwort von nach einem Tag 0 hilfreich
    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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!