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

Forumthread: Werte aus Tabelle in Userform einlesen, editier

Werte aus Tabelle in Userform einlesen, editier
17.10.2007 16:16:00
maruseru
Hallo werte Profis
habe eine Userform mit
30 Textboxen
25 Checkboxen
2 Comboboxen
1 Commandbutton
Die Werte eingeben uns speichern kriege ich hin

Private Sub CommandButton1_Click()
With Worksheets("Tabelle1")
.Range("A2").Value = Me.TextBox1.Value
.Range("B2").Value = Me.TextBox2.Value
End With
End Sub


Nun möchte ich aber die bereits eingelesenen Daten wieder einlesen.
Benötige ich dazu eine zweite userform? Wenn ja wie muss die die Werte einlesen, etwa so?
Me.Textbox3.Value = Worksheets("Tabelle1).Range("A2") ? hier weiss ich die Syntax nicht genau
Me.Textbox4.Value = Worksheets("Tabelle1).Range("A2")
Dann sollte editieren und speichern möglich sein (neuer Commandbutton?)
Beispiel mit jeweils einer Textbox, Checkbox und Combobox sollte genügen für die Adaption
Danke und Gruss
Maruseru

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Tabelle in Userform einlesen, editier
17.10.2007 17:32:44
ralf
Hi Maruseru,
erstelle Dir 2 Buttons (lesen [cmdRead] + schreiben [cmdWrite]). Die Textboxen heißen im Bsp. Textbox1, Textbox2 usw. Die Daten stehen im Bsp. in Spalte A in Zeile 1 bis x (=Anzahl der Textboxen). Das muss dann individuell angepasst werden.
Code:

Private Sub cmdRead_Click()
Lesen
End Sub



Private Sub cmdWrite_Click()
Schreiben
End Sub



Private Sub UserForm_Activate()
Lesen
End Sub



Private Sub Lesen()
Dim o As Control
For Each o In Me.Controls
If TypeName(o) = "TextBox" Then o.Text = Range("A" & VBA.Right(o.Name, 1))
Next
End Sub



Private Sub Schreiben()
Dim o As Control
For Each o In Me.Controls
If TypeName(o) = "TextBox" Then Range("A" & VBA.Right(o.Name, 1)) = o.Text
Next
End Sub


Ciao, Ralf

Anzeige
AW: Werte aus Tabelle in Userform einlesen, editier
18.10.2007 08:28:00
maruseru
Hallo Ralf
Vielen Dank für deine rasche Atnwort. Du hast mir sehr geholfen, alles funktioniert.
Gruss
Maruseru
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte aus Tabelle in Userform einlesen und editieren


Schritt-für-Schritt-Anleitung

Um Werte aus einer Excel-Tabelle in eine Userform einzulesen und diese anschließend zu editieren, folge diesen Schritten:

  1. Erstelle die Userform: Füge die benötigten Steuerelemente hinzu. In diesem Beispiel benötigst du:

    • 30 Textboxen
    • 25 Checkboxen
    • 2 Comboboxen
    • 1 Commandbutton (zum Speichern)
  2. Füge die Buttons hinzu: Erstelle zwei Buttons:

    • Einen Button zum Lesen der Daten (cmdRead)
    • Einen Button zum Schreiben der Daten (cmdWrite)
  3. Schreibe den Code: Füge den folgenden VBA-Code in das Codefenster der Userform ein:

Private Sub cmdRead_Click()
    Lesen
End Sub

Private Sub cmdWrite_Click()
    Schreiben
End Sub

Private Sub UserForm_Activate()
    Lesen
End Sub

Private Sub Lesen()
    Dim o As Control
    For Each o In Me.Controls
        If TypeName(o) = "TextBox" Then o.Text = Worksheets("Tabelle1").Range("A" & VBA.Right(o.Name, 1)).Value
    Next
End Sub

Private Sub Schreiben()
    Dim o As Control
    For Each o In Me.Controls
        If TypeName(o) = "TextBox" Then Worksheets("Tabelle1").Range("A" & VBA.Right(o.Name, 1)).Value = o.Text
    Next
End Sub
  1. Testen: Starte die Userform und teste die Buttons, um sicherzustellen, dass die Daten korrekt gelesen und geschrieben werden.

Häufige Fehler und Lösungen

  • Fehler 1: Die Userform zeigt keine Daten an.

    • Lösung: Überprüfe, ob die richtige Tabelle ausgewählt wurde und ob die Zellen tatsächlich Daten enthalten.
  • Fehler 2: Es werden falsche Daten in die Textboxen geladen.

    • Lösung: Stelle sicher, dass die Textboxen korrekt benannt sind (z.B. TextBox1, TextBox2 usw.) und dass die Zellreferenzen im Code übereinstimmen.
  • Fehler 3: Der Code wird nicht ausgeführt.

    • Lösung: Überprüfe, ob der Code im richtigen Modul der Userform eingefügt wurde.

Alternative Methoden

Falls du mit einer anderen Methode arbeiten möchtest, kannst du auch die ListBox anstelle von TextBox verwenden. Dies ist besonders nützlich, wenn du mehrere Einträge gleichzeitig bearbeiten möchtest. Der Code für das Einlesen und Speichern bleibt ähnlich, jedoch wird die ListBox verwendet, um die Daten anzuzeigen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du ein Feld mit einer Textbox und Checkbox einrichten kannst:

  1. TextBox und Checkbox: Füge eine Textbox (TextBox1) und eine Checkbox (CheckBox1) hinzu.

  2. Code für Lesen und Schreiben:

Private Sub Lesen()
    TextBox1.Value = Worksheets("Tabelle1").Range("A1").Value
    CheckBox1.Value = Worksheets("Tabelle1").Range("B1").Value
End Sub

Private Sub Schreiben()
    Worksheets("Tabelle1").Range("A1").Value = TextBox1.Value
    Worksheets("Tabelle1").Range("B1").Value = CheckBox1.Value
End Sub

Tipps für Profis

  • Verwendung von Arrays: Wenn du viele Textboxen hast, kann es effizienter sein, mit Arrays zu arbeiten, um die Werte zu speichern und zu laden.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in deinem Code, um unerwartete Situationen abzufangen und zu behandeln.

  • Benutzerdefinierte Funktionen: Überlege, benutzerdefinierte Funktionen zu erstellen, um wiederverwendbaren Code zu schreiben und die Wartbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Frage
Wie kann ich die Userform automatisch mit Daten füllen, wenn sie geöffnet wird?
Antwort: Du kannst die UserForm_Activate-Methode nutzen, um die Lesen-Funktion beim Öffnen der Userform auszuführen.

2. Frage
Kann ich die Userform auch in Excel 2010 verwenden?
Antwort: Ja, der beschriebene Code funktioniert auch in Excel 2010 und neueren Versionen, solange die VBA-Funktionalität unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige