Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: User Form Daten aus Textboxen in Tabelle schreiben

User Form Daten aus Textboxen in Tabelle schreiben
29.11.2017 17:07:45
Thomas
Hallo,
ich möchte aus einer Userform Daten in eine Tabelle übertragen. Die Tabelle sieht so aus:
A B C
Lot Eigenschaft1 Eigenschaft2 .......
1 25 24
2 30 26
3
.
.
.
Alle Daten von Lot bis zur letzten Eigenschaft werden in eine Zeile geschrieben und mit "neue Charge anlegen" eingefügt. Nun möchte ich zum einen, dass bei der nächsten Dateneingabe und den Druck auf: "neue Charge anlege" die Daten in die nächste freie Reihe geschrieben werden.
Combobox01 ist ein Drop Down Menü über das ich zum einen das Lot eingeben und zum anderen später die Daten eines x-beliebigen Lots wieder aufrufen möchte um mit klick auf "Daten übernehmen" nur einzelne Werte in diesen Lot zu ändern.
Private Sub Analysenwerte_Click()
End Sub
Private Sub CommandButton2_Click()
Me.Tag = "Abbrechen"
Me.Hide
End Sub

Private Sub CommandButton1_Click()
Me.Tag = "Daten übernehmen"
Me.Hide
End Sub
Private Sub CommandButton3_Click()
Me.Tag = "Neue Charge anlegen"
Sheets("Clevios P (Einzel-Lot)").Range("A6").Value = Me.ComboBox01.Value
Sheets("Clevios P (Einzel-Lot)").Range("B6").Value = Me.TextBox02.Value
Sheets("Clevios P (Einzel-Lot)").Range("C6").Value = Me.TextBox03.Value
Sheets("Clevios P (Einzel-Lot)").Range("D6").Value = Me.TextBox04.Value
Sheets("Clevios P (Einzel-Lot)").Range("E6").Value = Me.TextBox05.Value
Sheets("Clevios P (Einzel-Lot)").Range("F6").Value = Me.TextBox06.Value
Sheets("Clevios P (Einzel-Lot)").Range("G6").Value = Me.TextBox07.Value
Sheets("Clevios P (Einzel-Lot)").Range("H6").Value = Me.TextBox08.Value
Sheets("Clevios P (Einzel-Lot)").Range("I6").Value = Me.TextBox09.Value
Sheets("Clevios P (Einzel-Lot)").Range("J6").Value = Me.TextBox010.Value
Sheets("Clevios P (Einzel-Lot)").Range("K6").Value = Me.TextBox012.Value
Sheets("Clevios P (Einzel-Lot)").Range("L6").Value = Me.TextBox013.Value
Sheets("Clevios P (Einzel-Lot)").Range("N6").Value = Me.TextBox014.Value
Sheets("Clevios P (Einzel-Lot)").Range("O6").Value = Me.TextBox015.Value
Sheets("Clevios P (Einzel-Lot)").Range("Q6").Value = Me.TextBox016.Value
Sheets("Clevios P (Einzel-Lot)").Range("R6").Value = Me.TextBox017.Value
Sheets("Clevios P (Einzel-Lot)").Range("T6").Value = Me.TextBox018.Value
Sheets("Clevios P (Einzel-Lot)").Range("U6").Value = Me.TextBox019.Value
Sheets("Clevios P (Einzel-Lot)").Range("AA6").Value = Me.TextBox020.Value
Sheets("Clevios P (Einzel-Lot)").Range("AB6").Value = Me.TextBox021.Value
Sheets("Clevios P (Einzel-Lot)").Range("AE6").Value = Me.TextBox022.Value
Sheets("Clevios P (Einzel-Lot)").Range("AD6").Value = Me.TextBox023.Value
Sheets("Clevios P (Einzel-Lot)").Range("AF6").Value = Me.TextBox024.Value
Sheets("Clevios P (Einzel-Lot)").Range("AM6").Value = Me.TextBox025.Value
Sheets("Clevios P (Einzel-Lot)").Range("AP6").Value = Me.TextBox026.Value
Sheets("Clevios P (Einzel-Lot)").Range("AQ6").Value = Me.TextBox027.Value
Sheets("Clevios P (Einzel-Lot)").Range("AR6").Value = Me.TextBox028.Value
Dim ctrElement As Control
For Each ctrElement In Controls
Select Case TypeName(ctrElement)
Case "TextBox": ctrElement = ""
Case "ComboBox": ctrElement = ""
End Select
Next
Me.Hide
End Sub

Danke im Voraus für Eure Hilfe.
Gruß
Thomas
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispielmappe bitte
29.11.2017 17:16:31
Werner
Hallo Thomas,
lade doch bitte deine Datei hier hoch. Ich kann mir kaum vorstellen, dass jemand viel Lust daran hat die Datei und die UserForm nachzubauen.
Gruß Werner
AW: Beispielmappe bitte
29.11.2017 21:33:40
Werner
Hallo Thomas,
hier mal deine Beispielmappe zurück.
Die Daten aus den verschiedenen Eingabfelder werden in die nächste freie Zeile deiner Tabelle geschrieben.
Vor dem Schreiben der Daten wird geprüft, ob ein Datensatz mit der ausgewählten/eingegebenen Batch-Nummer in der Spalte A schon vorhanden ist. Soll verhindern, dass Datensätze mit der gleichen Batch-Nummer mehrfach angelegt werden -keine Ahnung ob du das brauchst.
Beim Start der UserForm werden die vorhandenen Batch-Nummern aus Spalte A in die Combobox03 eingelesen.
Ich habe keine Ahnung warum du mehrfach Me.Hide im Code drin hattest. Genausoweinig ist mir klar, warum du ständig bei den verschiedenen CommanButton klicks einen Wert in die Tag Eigenschaft der Buttons geschrieben hast.
Zu mehr hatte ich noch keine Zeit heute. Mach aber vermutlich morgen weiter.
https://www.herber.de/bbs/user/118000.xlsm
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Userform in Excel-Tabelle übertragen


Schritt-für-Schritt-Anleitung

Um Daten aus einer Excel Userform in eine Tabelle zu übertragen, folge diesen Schritten:

  1. Erstelle eine Userform: Öffne den VBA-Editor (ALT + F11), klicke auf "Einfügen" und wähle "UserForm".

  2. Füge Textboxen und Buttons hinzu: Ziehe Textboxen für die Eingabe deiner Daten und Buttons für Aktionen wie "Neue Charge anlegen" und "Daten übernehmen" auf die Userform.

  3. Schreibe den VBA-Code: Füge den folgenden Code in das Codefenster deiner Userform ein:

    Private Sub CommandButton3_Click()
       Dim lastRow As Long
       lastRow = Sheets("Clevios P (Einzel-Lot)").Cells(Rows.Count, 1).End(xlUp).Row + 1
    
       Sheets("Clevios P (Einzel-Lot)").Cells(lastRow, 1).Value = Me.ComboBox01.Value
       Sheets("Clevios P (Einzel-Lot)").Cells(lastRow, 2).Value = Me.TextBox02.Value
       ' Füge hier weitere TextBoxen hinzu
    
       ' Leere die Eingabefelder
       Dim ctrElement As Control
       For Each ctrElement In Controls
           Select Case TypeName(ctrElement)
               Case "TextBox": ctrElement = ""
               Case "ComboBox": ctrElement = ""
           End Select
       Next
       Me.Hide
    End Sub
  4. Nutze die Combobox für vorhandene Chargen: Lese beim Öffnen der Userform die vorhandenen Chargen in die Combobox ein.

  5. Teste deine Userform: Starte die Userform und gib Daten ein, um zu prüfen, ob die Daten korrekt in die Tabelle übertragen werden.


Häufige Fehler und Lösungen

  • Daten werden nicht in die nächste freie Zeile geschrieben: Stelle sicher, dass du die lastRow-Variable korrekt berechnest, um die nächste freie Zeile zu finden.

  • Userform schließt sich nicht: Überprüfe, ob Du das Me.Hide-Kommando an der richtigen Stelle im Code verwendest. Es sollte erst nach dem Speichern der Daten ausgeführt werden.


Alternative Methoden

Falls Du keinen VBA-Code verwenden möchtest, kannst Du auch ein Excel-Formular erstellen, um Daten manuell einzugeben und diese dann direkt in die Tabelle zu kopieren. Dies ist jedoch weniger automatisiert und erfordert mehr manuelle Arbeit.


Praktische Beispiele

Ein praktisches Beispiel könnte ein Userform sein, das die folgenden Eingabefelder enthält:

  • Lot: ComboBox zur Auswahl eines bestehenden Lots.
  • Eigenschaft1: TextBox für numerische Eingaben.
  • Eigenschaft2: TextBox für zusätzliche Daten.

Diese Eingabefelder können dann mit dem oben genannten Code in die Tabelle geschrieben werden.


Tipps für Profis

  • Datenvalidierung: Implementiere Datenvalidierungsregeln, um sicherzustellen, dass die Eingaben der Benutzer korrekt sind (z.B. numerische Eingaben in bestimmten Textboxen).

  • Suchfunktion: Ergänze deine Userform um eine Suchfunktion, die es ermöglicht, bestehende Datensätze schnell zu finden und zu bearbeiten.

  • Erweiterte Fehlerbehandlung: Füge Error-Handling-Routinen hinzu, um sicherzustellen, dass dein Code robust ist und unerwartete Fehler behandelt.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich keine Duplikate in der Tabelle erzeuge?
Verwende eine Abfrage, um zu überprüfen, ob der eingegebene Lot bereits in der Tabelle vorhanden ist, bevor du die Daten überträgst.

2. Kann ich die Userform so einstellen, dass sie beim Öffnen die letzten Eingaben anzeigt?
Ja, du kannst die Textboxen beim Initialisieren der Userform mit den Werten aus der Tabelle füllen, sodass der Benutzer die letzten Eingaben sieht.

3. Welche Excel-Version benötige ich für die Verwendung einer Userform?
Userforms sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und später.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige