Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus UserForm in Tabelle übertragen

Daten aus UserForm in Tabelle übertragen
Wolferl
Hallo,
ich hatte gestern schon hier gepostet und um Hilfe gebeten. Ich erhielt auch eine kleine Hilfe, aber so richtig funktioniert die "Sache" noch nicht.
Ich wollte über eine UserForm die eingegebenen Daten in der Tabelle übertragen, aber in die entsprechende Spalte mit der richtigen Überschrift, d.h. das die TextBox1(Name) nicht unbedingt in die Spalte 1 sondern in die Spalte mit der Überschrift "Name" übertragen werden soll. Zum besseren Verständnis habe ich eine Beispieldatei erstellt.

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


Die Hilfe von Fritz habe ich bekommen, aber da kann ich nur einen Eintrag vornehmen. Wenn ich das Makro neu starte, dann wird der vorherige Eintrag gelöscht bzw. die vorgegebene Formatierung (z.B. Datum) wird dabei gelöscht oder ignoriert.
Die Beispieldatei von Fritz ist unter https://www.herber.de/bbs/user/72647.xls zu finden.
Vielleicht gibt es noch eine andere Möglichkeit, das Problem zu lösen.
Wolfgang
Anzeige

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

Betreff
Benutzer
Anzeige
weil die Zelle in Spalte A leer ist ...
09.12.2010 09:09:55
Matthias
Hallo
StartZeile = Ws.Cells(65536, 1).End(xlUp).Row + 1
StartZeile gibt die erste freie Zelle in Spalte A zurück.
Wenn Du dort nichts einträgst wird immer wieder überschrieben.
pack also das:
Ws.Cells(StartZeile, 1) = Date

mit dazu
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(65536, 1).End(xlUp).Row + 1
Ws.Cells(StartZeile, 1) = Date
Ws.Cells(StartZeile, 4) = TextBox8
Ws.Cells(StartZeile, 3) = TextBox1
Ws.Cells(StartZeile, 12) = TextBox2
Ws.Cells(StartZeile, 6) = TextBox3
Ws.Cells(StartZeile, 7) = TextBox4
Ws.Cells(StartZeile, 8) = TextBox5
Ws.Cells(StartZeile, 10) = TextBox6
Ws.Cells(StartZeile, 11) = TextBox7
Gruß Matthias
Anzeige
AW: weil die Zelle in Spalte A leer ist ... DANKE
09.12.2010 09:58:13
Wolferl
Hallo Matthias,
danke nochmals.
Man hätte da auch draufkönnen, aber ich bin nicht so der Profi in VBA.
Vielleicht weißt du auch den Grund, warum z.B. im Feld "von" und "bis" ein Datum eingetragen wird, aber in der Tabelle kann ich keine Formatierung durchführen, obwohl die Formatierung "TT.MM.JJ" ist?
Wolfgang
Anzeige
weil das Datuim noch Text ist ...
09.12.2010 10:07:03
Matthias
Hallo
Trägst Du ein Datum aus einer Textbox in eine Tabelle ein, so ist es Text (weil Textbox)
Das kannst Du aber im Code schon umwandeln
also in etwa so:
Ws.Cells(StartZeile, 6) = CDate(TextBox3.Text)
Ws.Cells(StartZeile, 7) = CDate(TextBox4.Text)
wobei Du natürlich prüfen solltest, ob auch tatsächlich in der entsprechenden Textbox ein Datum steht.
Das kannst Du mit der Abfrage If IsDate() prüfen.
Gruß Matthia
Anzeige
AW: Daten aus UserForm in Tabelle übertragen
09.12.2010 11:09:27
effha
Hallo Wolfgang,
das liegt daran, dass die Zeile immer anhand der einträge in Spalte 1 also "A" ermittelt wird.
Du müsstest da eine Zeile nehmen, wo auch was eingetragen wird. z.B. der Name (C oder D)
Hier wird Spalte 4("D") benutzt, dann klappt es
StartZeile = Ws.Cells(65536, 4).End(xlUp).Row + 1
beim Datum :
Ws.Cells(StartZeile, 6) = cdate(TextBox3)
Ws.Cells(StartZeile, 7) = cdate(TextBox4)
Dann wird der Text in ein Datum übertragen
Gruß
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

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

Daten aus UserForm in Excel-Tabelle übertragen


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne den Visual Basic for Applications (VBA) Editor in Excel und erstelle eine neue UserForm. Füge die benötigten TextBoxen für die Eingabe der Daten hinzu. Beispiel: TextBox1 für den Namen, TextBox2 für das Datum usw.

  2. VBA-Code hinzufügen: Um die Daten aus der UserForm in die Tabelle zu übertragen, benötigst du einen VBA-Code. Hier ein Beispiel:

    Dim StartZeile As Long
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    StartZeile = Ws.Cells(65536, 1).End(xlUp).Row + 1 ' Erste freie Zeile in Spalte A
    
    Ws.Cells(StartZeile, 1) = TextBox1.Text ' Name
    Ws.Cells(StartZeile, 2) = CDate(TextBox2.Text) ' Datum aus TextBox2
  3. Datenübertragung aus TextBoxen: Stelle sicher, dass die Daten korrekt aus den TextBoxen in die richtigen Spalten übertragen werden. Du kannst die Spalten anhand der Überschrift identifizieren.

  4. Fehlerbehandlung: Integriere eine Fehlerüberprüfung, um sicherzustellen, dass die eingegebenen Daten gültig sind. Verwende If IsDate(TextBox2.Text) Then, um sicherzustellen, dass das Datum korrekt ist.

  5. Makro ausführen: Führe das Makro aus, um die eingegebenen Daten in die Tabelle zu übertragen.


Häufige Fehler und Lösungen

  • Fehler: Daten werden überschrieben
    Lösung: Stelle sicher, dass du die nächste freie Zeile in der Tabelle ermittelst. Verwende den Code StartZeile = Ws.Cells(65536, 1).End(xlUp).Row + 1.

  • Fehler: Datum wird als Text gespeichert
    Lösung: Verwende CDate() in deinem VBA-Code, um sicherzustellen, dass das Datum korrekt in die Tabelle geschrieben wird. Beispiel: Ws.Cells(StartZeile, 2) = CDate(TextBox2.Text).


Alternative Methoden

  • Direkte Eingabe in die Tabelle: Anstatt eine UserForm zu verwenden, kannst du die Daten auch direkt in die Tabelle eingeben und ein Makro ausführen, um die Daten zu formatieren und zu speichern.

  • Verwendung von Excel-Formularen: Du kannst auch die integrierten Excel-Formulare nutzen, um Daten in eine Tabelle zu schreiben.


Praktische Beispiele

  • Beispiel 1: Übertragung von Benutzerinformationen (Name, Geburtsdatum) aus einer UserForm in die Tabelle.

    Ws.Cells(StartZeile, 1) = TextBox1.Text ' Name
    Ws.Cells(StartZeile, 2) = CDate(TextBox2.Text) ' Geburtsdatum
  • Beispiel 2: Erfassen von Verkaufsdaten mit einer UserForm und Übertragung in die entsprechende Tabelle.

    Ws.Cells(StartZeile, 3) = TextBox3.Text ' Verkaufsbetrag
    Ws.Cells(StartZeile, 4) = TextBox4.Text ' Verkaufsdatum

Tipps für Profis

  • Datenvalidierung: Implementiere eine Datenvalidierung in deinen TextBoxen, um sicherzustellen, dass nur gültige Daten eingegeben werden.

  • Dynamische Spaltenzuweisung: Verwende eine Schleife, um die Spalten basierend auf den Überschriften dynamisch zu bestimmen. Das macht den Code flexibler und anpassungsfähiger.

  • Optimierung des Codes: Reduziere die Anzahl der .Cells-Zugriffe, indem du die Werte zuerst in Variablen speicherst und dann in einem einzigen Schritt in die Tabelle überträgst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Daten in die richtige Spalte übertragen werden?
Verwende eine Schleife, um die Überschriften zu durchsuchen und die entsprechende Spalte zu finden, bevor du die Daten überträgst.

2. Was tun, wenn das Datum nicht richtig formatiert wird?
Stelle sicher, dass du die CDate()-Funktion verwendest, um das Datum in ein Datumsformat zu konvertieren, bevor du es in die Tabelle schreibst.

3. Wie kann ich mehrere Einträge auf einmal übertragen?
Du kannst eine Schleife verwenden, um die Daten aus mehreren TextBoxen in einem Durchgang zu speichern.

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