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

Forumthread: Daten über UserForm in Tabelle schreiben

Daten über UserForm in Tabelle schreiben
13.08.2007 15:38:00
Birgit
Hallo Experten! ich habe im Moment das Problem, dass die Daten aus der UserForm zwar in die Tabelle geschrieben werden - leider jedoch immer in die gleiche Zeile. Wo bitte liegt der Fehler im Code? Ich bin wie immer für jede Hilfe äußerst dankbar!

Private Sub cmdOK_Click()
'Daten in Tabelle schreiben
Sheets("Artikel-DB_VKF").Activate
Range("A65536").End(xlUp).Offset(8, 2).Select
With UserFormDB
ActiveCell.Value = .txtNr.Value
ActiveCell.Offset(0, 1).Value = .txtArtikel.Value
ActiveCell.Offset(0, 2).Value = .cbArtikelGruppe.Value
ActiveCell.Offset(0, 3).Value = .cbKategorie.Value
ActiveCell.Offset(0, 4).Value = .txtDatum.Value
ActiveCell.Offset(0, 5).Value = .txtPreis.Value
ActiveCell.Offset(0, 6).Value = .cbKre.Value
ActiveCell.Offset(0, 7).Value = .txtStrasse.Value
ActiveCell.Offset(0, 8).Value = .txtPlz.Value
ActiveCell.Offset(0, 9).Value = .txtOrt.Value
ActiveCell.Offset(0, 10).Value = .txtTel.Value
ActiveCell.Offset(0, 11).Value = .txtFax.Value
ActiveCell.Offset(0, 12).Value = .txtMail.Value
End With
End Sub


Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten über UserForm in Tabelle schreiben
13.08.2007 15:40:47
Hajo_Zi
Hallo Birgit,
Der Code sieht ok aus. Ich baue das Beisiel nicht nach.
In VBA kann zu 99,9% auf select verzichtet werden.

AW: Daten über UserForm in Tabelle schreiben
13.08.2007 16:10:00
Birgit
Funktioniert leider trotzdem nicht, hat aber schon mal funktioniert. Keine Ahnung, warum jetzt nicht mehr!

Anzeige
AW: Daten über UserForm in Tabelle schreiben
13.08.2007 16:37:48
Rudi
Hallo,
du suchst die letzte Zeile in A und beginnst in I zu schreiben?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Daten über UserForm in Tabelle schreiben
13.08.2007 17:26:00
Birgit
ich suche die nächste freie Zeile in Spalte C. In die soll dann der nächste Datensatz geschrieben werden. Am Anfang hat das auch funktioniert. Jetzt wird aber immer die gleiche Zeile neu überschrieben.

Anzeige
AW: Daten über UserForm in Tabelle schreiben
13.08.2007 20:18:00
Hajo_Zi
Hallo Birgit,
Du schreibst Deine Werte in eine Zeile da Offset(0,..) Du wechselst nur die Spalte
Gruß Hajo
Sieht ein Beitrag mit einer Anrede und einem Gruß nicht persönlicher aus?

weiß ich, aber...
14.08.2007 12:42:54
Birgit
Hallo Hajo!
Netter Hinweis - das habe ich alles schon Ausprobiert!
wenn ich Offset(1,...) eingebe, dann schreibt er den ersten Datensatz in die 2. Zeile und überschreibt mit den nächsten Datensätzen diese...

Anzeige
AW: Daten über UserForm in Tabelle schreiben
14.08.2007 13:32:00
Dani
Hallo
versuch mal die nächste freie Zeile zu ermitteln vielleicht so:

Private Sub cmdOK_Click()
'Daten in Tabelle schreiben
Sheets("Artikel-DB_VKF").Activate
Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
With UserForm1
Cells(Zeile, 8).Value = .txtNr.Value
Cells(Zeile, 9).Value = .txtArtikel.Value
End With
End Sub


Gruss
Daniel

Anzeige
AW: Daten über UserForm in Tabelle schreiben
14.08.2007 14:33:23
Birgit
Hallo Daniel,
funktioniert leider auch nicht. So werden alle Daten untereinander in die gleiche Spalte geschrieben. Es soll aber folgendermaßen aussehen:
Zeile 9 = 1. Datensatz: Spalte C = Index-Nr, Spalte D = Artikel, Spalte E = Preis, ...
Zeile 10 = 2. Datensatz: Spalte C = Index-Nr, Spalte D = Artikel, ...
Gruß Birgit

Anzeige
AW: Daten über UserForm in Tabelle schreiben
14.08.2007 14:55:00
Dani
Hallo,
hast du die Zellen mit Cells(y,x) addressiert? der Parameter x gibt die Spalte an und diese bleibt ja fix. Die Variable i geht dann immer eine Zeile weiter...
Gruss
Dani
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten über UserForm in Tabelle schreiben


Schritt-für-Schritt-Anleitung

Um Daten über ein Excel VBA UserForm in eine Tabelle zu schreiben, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Erstelle eine UserForm: Füge Textfelder (TextBoxen) und Kombinationsfelder (ComboBoxen) für die Eingabe der Daten hinzu.
  2. Füge einen Button hinzu: Der Button wird verwendet, um die Daten zu speichern.
  3. Verwende den folgenden Code: Dieser Code ermittelt die nächste freie Zeile und schreibt die Daten in die Tabelle.
Private Sub cmdOK_Click()
    'Daten in Tabelle schreiben
    Dim Zeile As Long
    Sheets("Artikel-DB_VKF").Activate
    Zeile = Cells(Rows.Count, 3).End(xlUp).Row + 1 ' Nächste freie Zeile in Spalte C
    With UserFormDB
        Cells(Zeile, 3).Value = .txtNr.Value
        Cells(Zeile, 4).Value = .txtArtikel.Value
        Cells(Zeile, 5).Value = .txtPreis.Value
        ' Weitere Felder hier hinzufügen
    End With
End Sub

Dieser Code stellt sicher, dass die Daten in die korrekten Spalten der nächsten freien Zeile geschrieben werden.


Häufige Fehler und Lösungen

  • Problem: Daten werden immer in die gleiche Zeile geschrieben.

    • Lösung: Stelle sicher, dass du die nächste freie Zeile korrekt ermittelst. Verwende Cells(Rows.Count, 3).End(xlUp).Row + 1, um die letzte gefüllte Zeile in Spalte C zu finden.
  • Problem: Daten erscheinen untereinander in der gleichen Spalte.

    • Lösung: Überprüfe, ob du die Spaltenparameter in Cells(Zeile, Spaltennummer) korrekt übergibst.

Alternative Methoden

Wenn du eine andere Methode bevorzugst, um Daten über ein Excel Formular in die Tabelle zu schreiben, kannst du auch folgende Ansätze nutzen:

  • Verwendung von Named Ranges: Anstatt auf Zelladressen zuzugreifen, kannst du benannte Bereiche verwenden, um die Lesbarkeit des Codes zu verbessern.

  • Datenbankverbindung: Wenn du regelmäßig große Datenmengen verarbeiten musst, ziehe in Betracht, eine Datenbank wie Access mit Excel über VBA zu verknüpfen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um zu verdeutlichen, wie man das UserForm implementieren kann:

Private Sub cmdOK_Click()
    Dim Zeile As Long
    Sheets("Artikel-DB_VKF").Activate
    Zeile = Cells(Rows.Count, 3).End(xlUp).Row + 1

    With UserFormDB
        Cells(Zeile, 3).Value = .txtNr.Value
        Cells(Zeile, 4).Value = .txtArtikel.Value
        Cells(Zeile, 5).Value = .txtPreis.Value
        Cells(Zeile, 6).Value = .txtDatum.Value
        ' Füge weitere Felder hinzu
    End With
End Sub

In diesem Beispiel wird das Formular genutzt, um Daten in die Spalten C bis F zu schreiben.


Tipps für Profis

  • Vermeide Select und Activate: Diese Befehle können den Code langsamer machen und sind oft nicht notwendig. Greife direkt auf Objekte zu.

  • Fehlerprüfung einbauen: Überprüfe die Eingabewerte, bevor du sie in die Tabelle schreibst, um unerwartete Fehler zu vermeiden.

  • Dokumentation: Kommentiere deinen Code gut, damit er für dich und andere verständlich bleibt.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass keine Duplikate in die Tabelle geschrieben werden?
Du kannst vor dem Schreiben der Daten eine Schleife einbauen, die prüft, ob der Datensatz bereits existiert.

2. Was mache ich, wenn ich mehr Spalten benötige?
Erweitere einfach die With UserFormDB-Anweisung, indem du weitere Cells(Zeile, Spaltennummer).Value-Zuweisungen hinzufügst.

3. Kann ich das UserForm auch für andere Tabellen verwenden?
Ja, du kannst das UserForm ganz einfach anpassen, um Daten in verschiedene Tabellen zu schreiben, indem du den Tabellennamen im Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige