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

Werte aus textbox/Combobox in tabelle eintragen

Forumthread: Werte aus textbox/Combobox in tabelle eintragen

Werte aus textbox/Combobox in tabelle eintragen
Mike
Hallo, ich habe vor mir eine kleine automatisierte tabelle für den Wareneingang von meinem Lager zu erstellen . man wählt in der combobox das material aus (z.b. Druckverschlussbeutel) dann gibt man in die textbox die menge der ware ein und klickt dann auf speichern. dann soll die eingegebene zahl mit datum eingetragen werden..
hier mal ein screenshot
http://picload.org/image/rcdpig/tabelleeingang.jpg
die Daten für die Combobox sollen aus den zellen B1... E1.. H1.... usw kommen
in die erste zeile müsste das Datum (wenn das möglich ist) und die Werte aus der Textbox werden dann mit aktuellen Datum in die letzte Zelle eingetragen. Ich weiss nicht ob das so geht wie ich mir das vorstelle.
mit
for i=1 to ? .end(xltoright).row ?
mit ComboBox2.RowSource = Worksheets("input").Cells(1,i) in ner schleife geht es irgendwie nicht
eventuell wisst ihr ja wie ich das realisieren kann
#mfg
Anzeige
ohne .RowSource
22.03.2010 06:01:32
Matthias
Hallo Mike
Zitat
sollen aus den zellen B1... E1.. H1.... usw
was ist usw
Da gibt es mehrere Varianten die Box zu füllen
Private Sub UserForm_Activate()
ComboBox1.AddItem Range("B1")
ComboBox1.AddItem Range("E1")
ComboBox1.AddItem Range("H1")
ComboBox1.AddItem Range(usw)
End Sub
oder eben als Schleife.
Dim x As Long
For x = 2 To usw Step 3
ComboBox1.AddItem Cells(1, x)
Next
Userbild
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 09:20:39
Tino
Hallo,
könnte so funktionieren.
Tabelle im Code anpassen.
Auf der Userform ist eine ComboBox1, eine TextBox1 und ein CommandButton1.
Private Sub FuelleCombo()
Dim strErsteAdresse$, rngZelle As Range
With Tabelle1
        Set rngZelle = .Rows(1).Find(What:="Datum", After:=.Cells(1, .Columns.Count), LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        
        If Not rngZelle Is Nothing Then
            strErsteAdresse = rngZelle.Address
            
            Do
                If rngZelle.Offset(0, 1) <> "" Then _
                    ComboBox1.AddItem rngZelle.Offset(0, 1)
                    ComboBox1.List(ComboBox1.ListCount - 1, 1) = rngZelle.Column
                
                Set rngZelle = .Rows(1).FindNext(rngZelle)
            Loop While rngZelle.Address <> strErsteAdresse
        
        End If
End With
End Sub

Private Sub CommandButton1_Click()
Dim LRow&, LCol&

If Not IsNumeric(TextBox1) Then
    MsgBox "Geben Sie eine Zahl ein"
    Exit Sub
End If
If ComboBox1.ListIndex = -1 Then
    MsgBox "Wählen Sie eine Wahrengruppe"
    Exit Sub
End If

With Tabelle1
  LCol = ComboBox1.List(, 1)
  LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row + 1
  .Cells(LRow, LCol) = Date
  .Cells(LRow, LCol + 2) = TextBox1 * 1
End With

ComboBox1.ListIndex = -1
TextBox1 = ""

MsgBox "Daten wurden gebucht"
End Sub

Private Sub UserForm_Initialize()
    FuelleCombo
End Sub
Gruß Tino
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 16:39:59
Mike
Hallo Tino, genauso wollte ich es haben, du bist meine Rettung :) einwandtutti :)
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 20:43:55
Mike
Ich habe die Tabelle nochmal etwas bearbeitet und dabei Zellen verbunden( die oberste) was muss man denn an Tinos Code anpassen das das im "neuen Design" funktioniert . Ich hab schon einiges probiert aber irgendwie verstehe ich den syntax nicht. Normalerweise komme ich aus dem Bereich Delphi Programmierung.
hier mal das "neue Design"
http://picload.org/image/rcorcr/neuetabelle.jpg
@ Tino vielleicht kannst du ja mal den Code anpassen. das wäre echt nett. Danke nochmal für deine Hilfe
mfg
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 20:45:09
Mike
Ich habe die Tabelle nochmal etwas bearbeitet und dabei Zellen verbunden( die oberste) was muss man denn an Tinos Code anpassen das das im "neuen Design" funktioniert . Ich hab schon einiges probiert aber irgendwie verstehe ich den syntax nicht. Normalerweise komme ich aus dem Bereich Delphi Programmierung.
hier mal das "neue Design"
http://picload.org/image/rcorcr/neuetabelle.jpg
@ Tino vielleicht kannst du ja mal den Code anpassen. das wäre echt nett. Danke nochmal für deine Hilfe
mfg
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 20:47:50
Mike
Ich habe die Tabelle nochmal etwas bearbeitet und dabei Zellen verbunden( die oberste) was muss man denn an Tinos Code anpassen das das im "neuen Design" funktioniert . Ich hab schon einiges probiert aber irgendwie verstehe ich den syntax nicht. Normalerweise komme ich aus dem Bereich Delphi Programmierung.
hier mal das "neue Design"
http://picload.org/image/rcorcr/neuetabelle.jpg
@ Tino vielleicht kannst du ja mal den Code anpassen. das wäre echt nett. Danke nochmal für deine Hilfe
mfg
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
22.03.2010 21:56:30
Mike
Ich habe die Tabelle nochmal etwas bearbeitet und dabei Zellen verbunden( die oberste) was muss man denn an Tinos Code anpassen das das im "neuen Design" funktioniert . Ich hab schon einiges probiert aber irgendwie verstehe ich den syntax nicht. Normalerweise komme ich aus dem Bereich Delphi Programmierung.
hier mal das "neue Design"
http://picload.org/image/rcorcr/neuetabelle.jpg
@ Tino vielleicht kannst du ja mal den Code anpassen. das wäre echt nett. Danke nochmal für deine Hilfe
mfg
SOORY FÜR DEN DOPPELPOST bitte löschen
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
23.03.2010 03:25:18
fcs
Hallo Mike,
verbundene Zellen sind Gift für viele Makroprogrammierungen, da verschiedene Zelladressierungen nur mühselig wieder aufgebröselt oder speziell abgefragt werden müssen.
Verwende in der Zeile1 keine verbundenen Zellen, sondern die horizontale Zell-Formatierung "Zentrieren über Auswahl" dann gibt es das Problem nicht.
Gruß
Franz
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
23.03.2010 17:43:52
Tino
Hallo,
müsste so funktionieren.
Option Explicit
Private Sub FuelleCombo()
Dim strErsteAdresse$, rngZelle As Range
With Tabelle1
        Set rngZelle = .Rows(2).Find(What:="Datum", After:=.Cells(2, .Columns.Count), LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        
        If Not rngZelle Is Nothing Then
            strErsteAdresse = rngZelle.Address
            
            Do
                If rngZelle.Offset(-1, 0) <> "" Then _
                    ComboBox1.AddItem rngZelle.Offset(-1, 0)
                    ComboBox1.List(ComboBox1.ListCount - 1, 1) = rngZelle.Column
                
                Set rngZelle = .Rows(2).FindNext(rngZelle)
            Loop While rngZelle.Address <> strErsteAdresse
        
        End If
End With
End Sub

Private Sub CommandButton1_Click()
Dim LRow&, LCol&

If Not IsNumeric(TextBox1) Then
    MsgBox "Geben Sie eine Zahl ein"
    Exit Sub
End If
If ComboBox1.ListIndex = -1 Then
    MsgBox "Wählen Sie eine Wahrengruppe"
    Exit Sub
End If

With Tabelle1
  LCol = ComboBox1.List(, 1)
  LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row
  .Cells(LRow + 1, LCol) = Date
  .Cells(LRow + 1, LCol + 1) = TextBox1 * 1
End With

ComboBox1.ListIndex = -1
TextBox1 = ""

MsgBox "Daten wurden gebucht"
End Sub

Private Sub UserForm_Initialize()
    FuelleCombo
End Sub
PS: eine Beispieldatei ist immer besser als ein Bild.
Weil allein wegen dem Nachbau wollte ich eigentlich gar nicht mehr antworten.

Gruß Tino
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
23.03.2010 18:37:55
Mike
^1000 dank. geht wunderbar. jetz läuft alles super. beim nächstenmal nehm ich ne beispiel datei. versprochen :)
mfg
AW: Werte aus textbox/Combobox in tabelle eintragen
23.03.2010 19:49:51
Michael
Hallo Tino,
ich bastel gerade an Deinem Code rum komm aber nicht wirklich weiter!
Ich brauch was ähnliches nur "einfacher" hab ich gedacht bau ich schnell um und fertig!
Hier mein Code:
Option Explicit
Private Sub UserForm_Initialize()
FuelleCombo
End Sub
Private Sub FuelleCombo()
ComboBox1.Column = Range("A1:L1").Value
ComboBox1.ListIndex = 0
UserForm1.Show
End Sub

Private Sub CommandButton1_Click()
Dim LRow&, LCol&
With Tabelle1
LCol = ComboBox1.List(, 1)
LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row + 1
.Cells(LRow, LCol) = TextBox1
End With
ComboBox1.ListIndex = 1
TextBox1 = ""
MsgBox "Daten wurden gebucht"
End Sub
Ich möchte in die "aktive Spalte" Namen eintragen und auch Löschen können,
wenn ich das so Teste bleibe ich immer hier hängen:
LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row + 1
hab schon Ziffern ausgetauscht und Probiert aber versteh die Sache nicht ganz!
Über eine Antwort würde ich mich freuen.
Anzeige
mach es so...
23.03.2010 20:15:55
Tino
Hallo,
so müsste es funktionieren.
Private Sub UserForm_Initialize()
FuelleCombo
End Sub
Private Sub FuelleCombo()
ComboBox1.Column = Range("A1:L1").Value
ComboBox1.ListIndex = 0
UserForm1.Show
End Sub
Private Sub CommandButton1_Click()
Dim LRow&, LCol&
If ComboBox1.ListIndex > -1 Then
With Tabelle1
LCol = ComboBox1.ListIndex + 1
LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row
.Cells(LRow + 1, LCol) = TextBox1
End With
ComboBox1.ListIndex = 1
TextBox1 = ""
MsgBox "Daten wurden gebucht"
End If
End Sub
Gruß Tino
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
23.03.2010 21:48:45
Michael
Hallo Tino,
vielen Dank für die schnelle Hilfe Funktioniert SUPER!
Nun kann ich weiter "Hirnen"!
Viele Grüße
Michael
AW: Werte aus textbox/Combobox in tabelle eintragen
24.03.2010 19:47:49
Michael
Hallo Tino,
ich hätte nochmal ne Frage:
wie kann ich das Eintragen von der leeren Textbox verhindern?
mein Versuch sieht so aus:
Code
If TextBox1.Text = "" Then fehler = Chr(13) & "keine Eingabe im Feld"
If fehler "" Then
MsgBox ("Folgende Fehler wurden festgestellt:" & fehler), vbInformation Or vbOKOnly, "Fehler beim Eingeben!"
Exit Sub
End If
Es wird trotzdem etwas in die Zelle eingetragen und es entstehen "Lücken"!
Wie kann ich das verhindern?
Es wäre super wenn mir ein weiteres mal weiterhelfen könntest!!!
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
24.03.2010 20:01:19
Tino
Hallo,
versuche es mal so.
Private Sub CommandButton1_Click()
Dim LRow&, LCol&
If TextBox1 = "" Then
MsgBox "Folgende Fehler wurden festgestellt:" & vbCr & _
"keine Eingabe im Feld", vbInformation, "Eingabefehler!"
TextBox1.SetFocus
Exit Sub
End If
If ComboBox1.ListIndex > -1 Then
With Tabelle1
LCol = ComboBox1.ListIndex + 1
LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row
.Cells(LRow + 1, LCol) = TextBox1
End With
ComboBox1.ListIndex = 1
TextBox1 = ""
MsgBox "Daten wurden gebucht"
End If
End Sub
Gruß Tino
Anzeige
AW: Werte aus textbox/Combobox in tabelle eintragen
24.03.2010 21:37:30
Michael
Hallo Tino,
vielen Dank für Deine Hilfe!
Es Funktioniert!!!!
Viele Grüße
Michael
;
Anzeige
Anzeige

Infobox / Tutorial

Werte aus Textbox/Combobox in Excel-Tabelle eintragen


Schritt-für-Schritt-Anleitung

Um Werte aus einer Textbox oder Combobox in eine Excel-Tabelle einzutragen, kannst du diese Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung setzt voraus, dass du mit VBA in Excel vertraut bist.

  1. Erstelle ein UserForm:

    • Füge eine Combobox (ComboBox1), eine Textbox (TextBox1) und einen CommandButton (CommandButton1) in dein UserForm ein.
  2. Fülle die Combobox:

    • Verwende den folgenden Code, um die Combobox mit Werten aus den Zellen B1, E1, H1 usw. zu füllen:
      
      Private Sub UserForm_Initialize()
      FuelleCombo
      End Sub

    Private Sub FuelleCombo() Dim x As Long For x = 2 To 8 Step 3 ' Beispiel, anpassen je nach Bedarf ComboBox1.AddItem Cells(1, x) Next End Sub

  3. Werte speichern:

    • Nutze diesen Code im CommandButton1_Click, um die Werte in die Tabelle einzutragen:

      Private Sub CommandButton1_Click()
      Dim LRow As Long, LCol As Long
      
      If TextBox1 = "" Then
         MsgBox "Geben Sie eine Zahl ein"
         Exit Sub
      End If
      
      If ComboBox1.ListIndex = -1 Then
         MsgBox "Wählen Sie eine Warenkategorie"
         Exit Sub
      End If
      
      With Tabelle1
         LCol = ComboBox1.ListIndex + 1
         LRow = .Cells(.Rows.Count, LCol).End(xlUp).Row + 1
         .Cells(LRow, LCol) = Date
         .Cells(LRow, LCol + 1) = TextBox1
      End With
      
      MsgBox "Daten wurden gebucht"
      ComboBox1.ListIndex = -1
      TextBox1 = ""
      End Sub

Häufige Fehler und Lösungen

  • Fehler bei der Combobox-Befüllung:

    • Problem: Combobox zeigt keine Werte an.
    • Lösung: Stelle sicher, dass die Zellen, aus denen die Werte geladen werden, tatsächlich Daten enthalten und dass die Indizes korrekt sind.
  • Eingabe in Textbox bleibt leer:

    • Problem: Daten werden trotzdem eingetragen.
    • Lösung: Überprüfe, ob der Code zur Eingabekontrolle vor dem Eintragen der Daten ausgeführt wird.

Alternative Methoden

  • Verwendung von Find: Anstatt die Werte manuell hinzuzufügen, kannst du die Find-Methode verwenden, um schnell die nächste leere Zelle zu finden und die Werte dort zu speichern. Dies ist nützlich, wenn du die Struktur deiner Tabelle dynamisch ändern möchtest.
Dim rngZelle As Range
Set rngZelle = Tabelle1.Rows(1).Find(What:="Datum", LookIn:=xlValues, LookAt:=xlPart)
  • Daten aus einem anderen Arbeitsblatt: Du kannst auch Daten aus einem anderen Arbeitsblatt in deine Combobox laden, indem du den entsprechenden Arbeitsblattnamen angibst.

Praktische Beispiele

  1. Materialverwaltung:

    • Erstelle ein Formular zur Eingabe und Verwaltung von Lagerbeständen, bei dem Materialarten und Mengen einfach erfasst werden.
  2. Wareneingang protokollieren:

    • Verwende den Code zur Dokumentation von Wareneingängen, indem du Datum und Menge in einer Tabelle speicherst.

Tipps für Profis

  • Fehlerbehandlung einbauen: Stelle sicher, dass du Exception-Handling verwendest, um unerwartete Fehler abzufangen.

  • Datenvalidierung: Implementiere Datenvalidierungen in der Textbox, um sicherzustellen, dass nur Zahlen eingegeben werden.

  • Benutzerfreundlichkeit: Gestalte das UserForm ansprechend und intuitiv, um die Benutzererfahrung zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit mehr Werten füllen?
Du kannst die Schleife in der FuelleCombo-Subroutine anpassen, um mehr Zellen einzuschließen oder eine andere Datenquelle zu verwenden.

2. Was mache ich, wenn die Daten nicht in die richtige Zelle eingetragen werden?
Überprüfe den Code, insbesondere die Berechnung der LRow und LCol, um sicherzustellen, dass sie auf die richtige Zelle zeigen.

3. Kann ich die Eingabe in der Textbox auf eine bestimmte Anzahl begrenzen?
Ja, du kannst die TextBox1-Eigenschaften verwenden, um die Eingabe zu validieren, zum Beispiel durch Setzen der MaxLength-Eigenschaft.

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