Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Übergabe von TextBox an Tabelle

Übergabe von TextBox an Tabelle
25.05.2006 10:41:48
TextBox
Hallo Ihr lieben ich brauche euer Fachwissen.
Ich habe ein Formular erstellt, welches eine UserForm mit TextBox hat.
Nun möchte ich das die Eingaben in der TextBox so gestalltet sind das sie,wenn Zeile 7 schon ein Eintrag hat diese dann in Zeile 8 eingetragen wird.
In der UserForm sind zwei Button einer ist zu Schließen ( hier sehe ich kein Problem ) der zweite Button soll aber die Einträge in der TextBox in die Tabelle eintrage und die TextBox leeren zur neuen Eingabe, diese soll sich immer um eine Zeile nach unten verschieben.
Hier mein Beispiel:

Die Datei https://www.herber.de/bbs/user/33895.xls wurde aus Datenschutzgründen gelöscht

Kann mir hierbei jemand helfen? :-)
Gruß Emi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übergabe von TextBox an Tabelle
25.05.2006 10:55:07
TextBox
Hallo Emilia,
in Prinzip so:
Private Sub CommandButton1_Click()
    Dim lngRow As Long
    Dim intIndex As Integer
    With Tabelle1
        lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(lngRow, 1).Value = TextBox1.Text
        .Cells(lngRow, 2).Value = TextBox2.Text
        .Cells(lngRow, 3).Value = TextBox3.Text
        .Cells(lngRow, 4).Value = TextBox4.Text
        .Cells(lngRow, 10).Value = TextBox5.Text
    End With
    For intIndex = 1 To 5
        Controls("TextBox" & CStr(intIndex)).Text = ""
    Next
End Sub

Aber, Eine Textbox gibt immer Text zurück. Wenn du also eine Zahl, ein Datum oder einen Prozentwert aus der Textbox in die Tabelle schreiben willst, musst du das entsprechende Format mitgeben. Schau dir dazu die Hilfe zur Format - Funktion an.
Gruß
Nepumuk

Anzeige
AW: Übergabe von TextBox an Tabelle
25.05.2006 10:55:09
TextBox
Hallo Emi!
Probier mal!
https://www.herber.de/bbs/user/33896.xls
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
Danke
25.05.2006 11:04:03
Emilia
Danke Nepumuk und Josef Ehrensberger,
So wollte ich es haben.
Gruß Emi
Zusatzfrage
25.05.2006 11:15:20
Emilia
Habe da noch eine kleine Frage.
Wenn ich mehrere Tabellen habe, was muß ich da ändern.
Gruß Emi
AW: Zusatzfrage
25.05.2006 11:36:41
Nepumuk
Hallo Emilia,
wenn der Aufbau identisch ist und du immer in die aktive Tabelle eintragen willst, dann so:
Private Sub CommandButton1_Click()
    Dim lngRow As Long
    Dim intIndex As Integer
    With ActiveSheet
        lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(lngRow, 1).Value = TextBox1.Text
        .Cells(lngRow, 2).Value = TextBox2.Text
        .Cells(lngRow, 3).Value = TextBox3.Text
        .Cells(lngRow, 4).Value = TextBox4.Text
        .Cells(lngRow, 10).Value = TextBox5.Text
    End With
    For intIndex = 1 To 5
        Controls("TextBox" & CStr(intIndex)).Text = ""
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Zusatzfrage
25.05.2006 11:51:34
Emilia
Hallo Nepumuk,
geht super nur noch ein kleines Probelemchen, der Eintrag beginnt ab Zeile 44 warum?
Gruß Emi
AW: Zusatzfrage
25.05.2006 11:58:47
Nepumuk
Hallo Emilia,
weil die Zelle A43 nicht leer ist. Könnte ein Leerzeichen drin sein.
Gruß
Nepumuk

AW: Zusatzfrage
25.05.2006 12:05:38
Emilia
Hallo Nepumuk,
kann man nicht festlegen das ab zeile 12 eingetragen wird.
Gruß Emi
Anzeige
AW: Zusatzfrage
25.05.2006 14:46:44
Nepumuk
Hallo Emilia,
dann muss ich mit einer Schleife die Zellen abfragen:
Private Sub CommandButton1_Click()
    Dim lngRow As Long
    Dim intIndex As Integer
    With ActiveSheet
        For lngRow = 12 To .Rows.Count
            If Trim$(.Cells(lngRow, 1).Text) = "" Then Exit For
        Next
        .Cells(lngRow, 1).Value = TextBox1.Text
        .Cells(lngRow, 2).Value = TextBox2.Text
        .Cells(lngRow, 3).Value = TextBox3.Text
        .Cells(lngRow, 4).Value = TextBox4.Text
        .Cells(lngRow, 10).Value = TextBox5.Text
    End With
    For intIndex = 1 To 5
        Controls("TextBox" & CStr(intIndex)).Text = ""
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Zusatzfrage
25.05.2006 15:44:06
Emilia
Jetzt Nepumuk geht es so wie ich es wollte?
Ich danke Dir
Gruß Emi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Übergabe von TextBox an Tabelle in Excel


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Erstelle eine UserForm in Excel mit mehreren TextBoxen und mindestens zwei CommandButton-Elementen.

  2. Code für den Button: Füge folgenden VBA-Code in den Code-Editor der UserForm ein:

    Private Sub CommandButton1_Click()
        Dim lngRow As Long
        Dim intIndex As Integer
        With Tabelle1
            lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(lngRow, 1).Value = TextBox1.Text
            .Cells(lngRow, 2).Value = TextBox2.Text
            .Cells(lngRow, 3).Value = TextBox3.Text
            .Cells(lngRow, 4).Value = TextBox4.Text
            .Cells(lngRow, 10).Value = TextBox5.Text
        End With
        For intIndex = 1 To 5
            Controls("TextBox" & CStr(intIndex)).Text = ""
        Next
    End Sub
  3. Einträge in die Tabelle: Der Code fügt die Werte der TextBoxen in die nächste freie Zeile ein.

  4. TextBox leeren: Nach dem Eintrag werden die TextBoxen geleert, was eine neue Eingabe ermöglicht.


Häufige Fehler und Lösungen

  • Problem: Die Einträge beginnen nicht in der gewünschten Zeile (z.B. Zeile 44).

    • Lösung: Überprüfe, ob die Zelle A43 Leerzeichen oder unsichtbare Zeichen enthält. Stelle sicher, dass die Einträge ab Zeile 12 beginnen, indem du den Code entsprechend anpasst.
  • Problem: Falsche Datentypen werden in die Tabelle geschrieben.

    • Lösung: Verwende die Format-Funktion, um sicherzustellen, dass die Daten im richtigen Format in die Tabelle eingetragen werden.

Alternative Methoden

  • Du kannst auch den ActiveSheet-Befehl verwenden, um Daten in die aktuell aktive Tabelle einzutragen. Ändere einfach die Zeile With Tabelle1 zu With ActiveSheet.

  • Eine weitere Möglichkeit besteht darin, eine Schleife zu verwenden, um einen bestimmten Bereich von Zellen zu überprüfen und ab einer bestimmten Zeile einzutragen.


Praktische Beispiele

Hier ist ein Beispiel, wie Du den Code modifizieren kannst, um ab Zeile 12 zu beginnen:

Private Sub CommandButton1_Click()
    Dim lngRow As Long
    Dim intIndex As Integer
    With ActiveSheet
        For lngRow = 12 To .Rows.Count
            If Trim$(.Cells(lngRow, 1).Text) = "" Then Exit For
        Next
        .Cells(lngRow, 1).Value = TextBox1.Text
        .Cells(lngRow, 2).Value = TextBox2.Text
        .Cells(lngRow, 3).Value = TextBox3.Text
        .Cells(lngRow, 4).Value = TextBox4.Text
        .Cells(lngRow, 10).Value = TextBox5.Text
    End With
    For intIndex = 1 To 5
        Controls("TextBox" & CStr(intIndex)).Text = ""
    Next
End Sub

Tipps für Profis

  • Nutze Datenvalidierung in den TextBoxen, um sicherzustellen, dass nur die gewünschten Datentypen eingegeben werden (z.B. Zahlen oder Daten).

  • Implementiere eine Fehlerbehandlung, um unerwartete Eingaben abzufangen und den Benutzer darüber zu informieren.

  • Verwende Formatierungen in der Tabelle, um die Lesbarkeit der Daten zu verbessern (z.B. Hintergrundfarbe, Schriftgröße).


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Daten in einem bestimmten Format in die Tabelle geschrieben werden?
Verwende die Format-Funktion im VBA-Code, um die Daten entsprechend zu formatieren, bevor du sie in die Tabelle schreibst.

2. Was mache ich, wenn ich mehrere Tabellen habe?
Wenn der Aufbau identisch ist, kannst du den Code so anpassen, dass er immer in die aktive Tabelle einträgt, indem du With ActiveSheet verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige