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

Forumthread: Daten aus Tabelle über Userform Anzeigen

Daten aus Tabelle über Userform Anzeigen
Fredy
Hallo ich suche ein Code mit dem ich in einem userform über ein Textbox die Daten
Aus einer Tabelle auf Rufen kann und in weiteren Textboxen Anzeigen lasen Kann
https://www.herber.de/bbs/user/80435.xls
Für Hilfe danke ich schon mal.
Gruss Fredy
Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 16:43:23
Rolf
Hallo Fredy,
hier ein kl. Beispiel:
Private Sub cmdShow_Click()   'aktiviert die Anzeige der Daten
Set frm = UserForm1
With frm
.txtBox1.SetFocus
.txtBox2.Value = ActiveCell.Offset(0, 2).Value
.txtBox3.Value = ActiveCell.Offset(0, 3).Value
.txtBox4.Value = ActiveCell.Offset(18, 2).Value
.txtBox5.Value = ActiveCell.Offset(18, 3).Value
.txtBox6.Value = ActiveCell.Offset(18, 8).Value
End With
End Sub

Reicht dir das?
Gruß, Rolf
Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 17:54:28
Fredy
Kommt das ins Userform oder
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 19:25:09
Rolf
Hallo Fredy,
ja, deshalb: cmdShow_Click. - cmd steht für Command Button
Gruß, Rolf
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 19:52:02
Fredy
Sorry da geb Nichts
Option Explicit
Dim Zeile1 As Long
Dim a As Long
Private Sub CommandButton1_Click()
Set frm = inventar
With frm
.txtBox1.SetFocus
.txtBox2.Value = ActiveCell.Offset(0, 2).Value
.txtBox3.Value = ActiveCell.Offset(0, 3).Value
.txtBox4.Value = ActiveCell.Offset(18, 2).Value
.txtBox5.Value = ActiveCell.Offset(18, 3).Value
.txtBox6.Value = ActiveCell.Offset(18, 8).Value
End With
End Sub

Private Sub CommandButton2_Click()
Dim zelle As Long
With Worksheets("Tabelle 1")
zelle = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(zelle, 2) = TextBox2
.Cells(zelle, 3) = TextBox3
.Cells(zelle, 4) = TextBox4
.Cells(zelle, 5) = TextBox5
.Cells(zelle, 6) = TextBox6
.Cells(zelle, 7) = TextBox7
.Cells(zelle, 8) = TextBox8
End With
End Sub
Private Sub CommandButton3_Click()
Dim Tb As Integer
On Error Resume Next
For Tb = 1 To 8
Me.Controls("TextBox" & Tb) = ""
Next Tb
End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 SFR")
End Sub

Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 20:30:55
Rolf
Hallo Fredy,
sorry, hab' einen Fehler gemacht. txtBox2 muss (ebenfalls) txtBox1 heißen, txtBox3 muss heißen txtBox2 txtBox4 muss heißen txtBox3 usw.
Leider kann ich dir die Datei nicht schicken; ich versuche aber mal zu erklären was in der UserForm passiert:
Der Cursor steht in meinem Beispiel auf Zelle A10. Beim Click auf den CommandButton1 erscheint in der txtBox1 der Wert aus Zelle C10 (= ActiveCell.Offset(0, 2).Value),
in der txtBox2 der Wert aus Zelle D10 (= ActiveCell.Offset(0, 2).Value),
in der txtBox3 der Wert aus Zelle C28 (= ActiveCell.Offset(18, 2).Value) usw.
Vielleicht hilft das weiter.
Gruß, Rolf
Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 20:42:00
Fredy
Ok da ist mir beim Erklären auch ein fehle runderlaufen Sorry
ich will in der texbox1 die Artikelnumer ein gebe und dann sol es mir die Daten dazu
in der box 2 bis 8 angezeigt werten
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 21:20:07
Rudi
Hallo,
Private Sub TextBox1_afterupdate()
Dim lRow, i As Integer
With Sheets(1)
lRow = Application.Match(CLng(TextBox1), .Columns(1), 0)
If Not IsError(lRow) Then
For i = 2 To 8
Controls("Textbox" & i) = .Cells(lRow, i)
Next
Else
TextBox1.SetFocus
End If
End With
End Sub

Private Sub CommandButton1_Click()
Dim lRow As Long, i As Integer
With Sheets(1)
lRow = Application.Match(CLng(TextBox1), .Columns(1), 0)
If Not IsError(lRow) Then
For i = 2 To 8
.Cells(lRow, i) = Controls("Textbox" & i)
Next
End If
End With
End Sub
Die Rechtschreibung solltest du noch überarbeiten
Gruß
Rudi
Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 20:44:54
fcs
Hallo Fredy,
hier der Code für dein Userform, wie er funktionieren sollte. Wenn du in der obersten Textbox (Auswahl) eine Artikelnummer eingibst, dann werden die zugehörigen Daten bei Treffer angezeigt.
Überprüfe auch noch mal die Rechtschreibung der Label im Userform. Bin im Schweizer Deutsch nicht so bewandert, aber ich denke dass das eine oder andere Wort nicht richtig geschrieben ist (Auswal, Ervasen, Verwaldung).
Gruß
Franz
Option Explicit
Dim ZeileGewaehlt As Long
Sub ClearTextbox2to8()
Dim Tb As Integer
On Error Resume Next
For Tb = 2 To 8
Me.Controls("TextBox" & Tb) = ""
Next Tb
End Sub
Sub Textboxenfuellen(Zeile As Long)
With Worksheets("Tabelle 1")
TextBox2 = .Cells(Zeile, 2)
TextBox3 = .Cells(Zeile, 3)
TextBox4 = .Cells(Zeile, 4)
TextBox5 = .Cells(Zeile, 5)
TextBox6 = .Cells(Zeile, 6)
TextBox7 = .Cells(Zeile, 7)
TextBox8 = .Cells(Zeile, 8)
End With
End Sub
Sub Werteeintragen(Zeile)
If Zeile = 0 Then Exit Sub
With Worksheets("Tabelle 1")
.Cells(Zeile, 2) = TextBox2
.Cells(Zeile, 3) = TextBox3
.Cells(Zeile, 4) = TextBox4
.Cells(Zeile, 5) = TextBox5
.Cells(Zeile, 6) = TextBox6
.Cells(Zeile, 7) = TextBox7
.Cells(Zeile, 8) = TextBox8
End With
End Sub
Private Sub CommandButton1_Click()
Call Werteeintragen(ZeileGewaehlt)
End Sub
Private Sub CommandButton2_Click()
With Worksheets("Tabelle 1")
ZeileGewaehlt = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
Call Werteeintragen(ZeileGewaehlt)
End With
End Sub
Private Sub CommandButton3_Click()
Dim Tb As Integer
On Error Resume Next
For Tb = 1 To 8
Me.Controls("TextBox" & Tb) = ""
Next Tb
End Sub
Private Sub TextBox1_Change()
Dim Zelle As Range
With Worksheets("Tabelle 1")
Set Zelle = .Columns(2).Find(What:=TextBox1, lookat:=xlWhole, LookIn:=xlValues)
If Zelle Is Nothing Then
ZeileGewaehlt = 0
ClearTextbox2to8
Else
ZeileGewaehlt = Zelle.Row
Call Textboxenfuellen(ZeileGewaehlt)
End If
End With
End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 SFR")
End Sub

Anzeige
AW: Daten aus Tabelle über Userform Anzeigen
05.06.2012 21:08:57
Fredy
cool thx geb eiwant vrei
;

Forumthreads zu verwandten Themen

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 Tabelle über Userform Anzeigen


Schritt-für-Schritt-Anleitung

Um Daten aus einer Excel-Tabelle in einem Userform anzuzeigen, folge dieser Schritt-für-Schritt-Anleitung:

  1. Erstelle ein Userform: Öffne den VBA-Editor (ALT + F11) und füge ein neues Userform hinzu.

  2. Füge Textboxen hinzu: Platziere mehrere Textboxen (TextBox1 bis TextBox8) auf dem Userform, um die Daten anzuzeigen.

  3. Füge Command Buttons hinzu: Füge drei Command Buttons hinzu, um Daten anzuzeigen, zu speichern und zurückzusetzen.

  4. VBA-Code einfügen: Kopiere den folgenden VBA-Code in das Userform:

    Option Explicit
    Dim ZeileGewaehlt As Long
    
    Private Sub CommandButton1_Click()
       Call Werteeintragen(ZeileGewaehlt)
    End Sub
    
    Private Sub CommandButton2_Click()
       With Worksheets("Tabelle 1")
           ZeileGewaehlt = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
           Call Werteeintragen(ZeileGewaehlt)
       End With
    End Sub
    
    Private Sub CommandButton3_Click()
       Dim Tb As Integer
       On Error Resume Next
       For Tb = 1 To 8
           Me.Controls("TextBox" & Tb) = ""
       Next Tb
    End Sub
    
    Private Sub TextBox1_Change()
       Dim Zelle As Range
       With Worksheets("Tabelle 1")
           Set Zelle = .Columns(2).Find(What:=TextBox1, lookat:=xlWhole, LookIn:=xlValues)
           If Zelle Is Nothing Then
               ZeileGewaehlt = 0
               ClearTextbox2to8
           Else
               ZeileGewaehlt = Zelle.Row
               Call Textboxenfuellen(ZeileGewaehlt)
           End If
       End With
    End Sub
    
    Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       TextBox6.Value = Format(TextBox6.Value, "#,##0.00 SFR")
    End Sub
    
    Sub ClearTextbox2to8()
       Dim Tb As Integer
       On Error Resume Next
       For Tb = 2 To 8
           Me.Controls("TextBox" & Tb) = ""
       Next Tb
    End Sub
    
    Sub Textboxenfuellen(Zeile As Long)
       With Worksheets("Tabelle 1")
           TextBox2 = .Cells(Zeile, 2)
           TextBox3 = .Cells(Zeile, 3)
           TextBox4 = .Cells(Zeile, 4)
           TextBox5 = .Cells(Zeile, 5)
           TextBox6 = .Cells(Zeile, 6)
           TextBox7 = .Cells(Zeile, 7)
           TextBox8 = .Cells(Zeile, 8)
       End With
    End Sub
    
    Sub Werteeintragen(Zeile)
       If Zeile = 0 Then Exit Sub
       With Worksheets("Tabelle 1")
           .Cells(Zeile, 2) = TextBox2
           .Cells(Zeile, 3) = TextBox3
           .Cells(Zeile, 4) = TextBox4
           .Cells(Zeile, 5) = TextBox5
           .Cells(Zeile, 6) = TextBox6
           .Cells(Zeile, 7) = TextBox7
           .Cells(Zeile, 8) = TextBox8
       End With
    End Sub
  5. Testen des Userforms: Starte das Userform (F5) und gib in TextBox1 eine Artikelnummer ein, um die zugehörigen Daten anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: TextBox bleibt leer
    Überprüfe, ob die Artikelnummer in der richtigen Spalte der Tabelle steht und die Find-Methode korrekt funktioniert.

  • Fehler: Daten werden nicht gespeichert
    Stelle sicher, dass der Code im CommandButton2_Click korrekt ist und die richtige Zeile zum Speichern verwendet wird.

  • Fehler: TextBox zeigt falsche Werte an
    Achte darauf, dass die Indizes in den Textboxen richtig gesetzt sind. Ein häufiger Fehler ist es, die Indizes zu vertauschen.


Alternative Methoden

Wenn du keine Userform verwenden möchtest, kannst du die Daten auch direkt in der Excel-Tabelle anzeigen lassen, indem du Formeln oder Datenüberprüfung verwendest. Eine einfache Dropdown-Liste mit Daten -> Datenüberprüfung kann hilfreich sein, um Artikelnummern auszuwählen und die zugehörigen Daten in anderen Zellen anzuzeigen.


Praktische Beispiele

  1. Artikelnummern und Preise: Wenn du eine Liste von Produkten hast, in der Spalte A die Artikelnummern und in den folgenden Spalten die Preise, kannst du mit der oben beschriebenen Methode schnell die Informationen in deinem Userform abrufen.

  2. Kundendaten: Verwende das Userform, um Kundendaten anzuzeigen und zu bearbeiten. Benutzer können die Kundennummer eingeben, und die zugehörigen Daten werden in den Textboxen angezeigt.


Tipps für Profis

  • Fehlerbehandlung: Implementiere Fehlerbehandlung im Code, um sicherzustellen, dass die Anwendung auch bei unerwarteten Eingaben stabil bleibt.

  • Datenvalidierung: Füge Validierung für die Eingaben in die Textboxen ein, um sicherzustellen, dass nur gültige Daten gespeichert werden.

  • Design: Achte auf ein benutzerfreundliches Design des Userforms. Verwende klare Beschriftungen und eine logische Anordnung der Textboxen.


FAQ: Häufige Fragen

1. Wie kann ich die Daten aus der Userform in die Excel-Tabelle schreiben?
Du kannst die Methode Werteeintragen verwenden, um die Werte aus den Textboxen in die entsprechende Zeile der Tabelle zu schreiben.

2. Gibt es eine Möglichkeit, mehrere Einträge gleichzeitig zu speichern?
Ja, du kannst eine Schleife verwenden, um mehrere Datensätze zu speichern, indem du die Zeile, die du speichern möchtest, iterierst.

3. Funktioniert das auch in älteren Excel-Versionen?
Ja, die beschriebenen Methoden und Codes sind in den meisten Excel-Versionen ab Excel 2007 anwendbar. Achte darauf, dass die VBA-Umgebung in deiner Version aktiviert ist.

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