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

Forumthread: Tabelleneinträge nur mit eigener ID anzeigen lassen

Tabelleneinträge nur mit eigener ID anzeigen lassen
10.02.2024 23:13:38
Basic_II
Hallo herber-Freunde,

ich habe ein Problem und komme nicht weiter, weshalb ich mich nun einem Forum angeschlossen habe, wo ich schon vieles durch nachschlagen konnte.

Folgendes Problem:
Ich Möchte eine Tabelle ausgeben lassen, die nur die Zeilen ausgibt, die mit der ID aus einer TextBox mit der aus der Tabelle übereinstimmen.

Mein derzeitiger Basis-Code sieht so aus:



Private Sub listboxbefuellen()

'Zellbereich einlesen
Dim rng As Range
Set rng = ShShootHistorie.Range("A1").CurrentRegion
Set rng = rng.Offset(1, 0).Resize(rng.Rows.Count - 1)

'ListBox befüllen
With ListBoxShootHistorie

.RowSource = rng.Address(external:=True)
.ColumnCount = rng.Columns.Count ' Spaltenanzahl festlegen
.columnWidths = "50;110;30;35;30;35;30;35;30;35;100;100" ' Spaltenbreite festlegen
.ColumnHeads = True 'Überschriften anzeigen (True = ja, False = nein)
.ListIndex = 0



End With

End Sub



Die Tabelle wird (ohne ID Filter) super dargestellt.
Jedesmal wenn ich andere Codes verwende, kann ich die Spalten nicht mehr einstellen oder die Überschrift ist anklickbar.

Ich versuche es schon seit mehreren Tagen. Langsam sehe ich den Wald vor lauter Bäume nicht mehr und versuche mich immer wieder an den Basis-Code.

Könnte mir jemand n Tipp oder einen kleinen Code geben?


Viel Dank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelleneinträge nur mit eigener ID anzeigen lassen
11.02.2024 09:05:12
Oberschlumpf
Hi,

zeig mal bitte per Upload eine Bsp-Datei mit genügend Bsp-Daten in den richtigen Zellen und deinem Code.
Natürlich muss auch deine erwähnte Textbox und die im Code genannte Listbox enthalten sein.

Ciao
Thorsten
AW: Tabelleneinträge nur mit eigener ID anzeigen lassen
11.02.2024 14:29:32
Basic_II
Ich habe die Datei mal hochgeladen: https://www.herber.de/bbs/user/166966.xlsm

Die Intelligente Tabelle die angesprochen wird ist das Arbeitsblatt "ShotHistorie"
Wenn man auf "Personal" klickt öffnet sich ein Fenster. Dort kann man eine Person bearbeiten. Dadurch öffnet sich ein weiteres Fenster. Dort im Reiter "Auswertung" sollen dann nur die Spalten aus der Tabelle angezeigt werden (ListBoxShootHistorie), wessen ID mit der Personal-ID (TextBoxID) übereinstimmen.

Jedes mal wenn ich den Code so (mit id-Abfrage) ändere, werden mir die die Werte ausgegeben, jedoch untereinander und nicht Spalte für Spalte.

Gruß
Daniel
Anzeige
bitte wer anders
11.02.2024 17:15:14
Oberschlumpf
Hi Daniel,

a) danke für die Bsp-Datei!
b) Aber sorry. Zumindest ich müsste im Code so viel ändern (nee, will damit nich behaupten, dass du vieles falsch gemacht hast), aber zumindest für mich wäre nach meinen Änderungen alles übersichtlicher - für mich.

Deswegen kann ich leider nicht weiterhelfen - tut mir leid.

Ciao
Thorsten

Anzeige
AW: bitte wer anders
11.02.2024 18:23:32
Basic_II
Vielen Dank jedoch fürs nachschauen :)


Habe meinen alten Code durchsucht und dort den Fehler gefunden.

Eine Sache bekomme ich hier jedoch nicht hin ud zwar, die Formatierung der Ausgabe in die ListBoxShootHistorie.
Sie zeigt alles an, jedoch nicht übersichtlich unter der jeweiligen Überschrift.

WIe kann ich dieses Problem lösen? Wenn das geschafft ist, brauche ich erstmal Urlaub!!




Sub AktualisierenButton_Click()
'Private Sub listboxbefuellen()

Dim ws As Worksheet
Dim tbl As ListObject
Dim listBox As MSForms.listBox
Dim textBox As MSForms.textBox
Dim id As Long
Dim i As Long
Dim j As Long
Dim idString As String
Dim header As String

' Setzen Sie den Namen der Tabelle und die UserForm entsprechend Ihrer Datei
Set ws = ThisWorkbook.Sheets("ShootHistorie") ' Das Arbeitsblatt, auf dem sich die Tabelle befindet
Set tbl = ws.ListObjects("tblShootHistorie") ' Der Name der Tabelle
Set listBox = UserFormBearbeiten.ListBoxShootHistorie ' Der Name der Listbox auf der UserForm
Set textBox = UserFormBearbeiten.TextBoxID ' Der Name der TextBox auf der UserForm

' Löschen Sie alle vorhandenen Einträge in der Listbox
listBox.Clear

' Überprüfen Sie, ob die TextBoxID eine gültige Zahl enthält
If Not IsNumeric(TextBoxID.Value) Then
MsgBox "Bitte geben Sie eine gültige Zahl in die TextBox ein."
Exit Sub
End If

' Konvertieren Sie die ID in eine Zahl
idString = Trim(TextBoxID.Value)
If Len(idString) > 0 Then
If IsNumeric(idString) Then
id = CLng(idString)
Else
MsgBox "Die eingegebene ID ist keine gültige Zahl."
Exit Sub
End If
Else
MsgBox "Die ID darf nicht leer sein."
Exit Sub
End If

' Extrahiere die Überschriften aus der Tabelle und fügen sie als erste Zeile in die Listbox ein
For j = 2 To 12 ' Spalten 2 bis 12
header = header & tbl.HeaderRowRange.Cells(1, j).Value & vbTab ' Fügen Sie die Überschrift der aktuellen Spalte zur Überschriftenzeichenfolge hinzu
Next j
ListBoxShootHistorie.addItem header ' Fügen Sie die Überschriftenzeichenfolge als erste Zeile der Listbox hinzu

' Durchlaufen Sie die Zeilen der Tabelle und fügen Sie die entsprechenden Einträge der Listbox hinzu
For i = 1 To tbl.ListRows.Count
If tbl.DataBodyRange.Cells(i, 1).Value = id Then ' Überprüfen Sie, ob die ID übereinstimmt
' Fügen Sie die entsprechenden Einträge in die Listbox ein
Dim entry As String
entry = ""
For j = 2 To 12 ' Spalten 2 bis 12
entry = entry & tbl.DataBodyRange.Cells(i, j).Value & vbTab ' Fügen Sie den Wert der aktuellen Zelle zur Eintragszeichenfolge hinzu
Next j
ListBoxShootHistorie.addItem entry ' Fügen Sie die Eintragszeichenfolge der Listbox hinzu
End If
Next i
End Sub


Lieben Gruß
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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