Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellensätze per VBA sortieren

Tabellensätze per VBA sortieren
21.08.2003 16:41:39
Marcel
Hallo zusammen,
Ich habe eine Tabelle in Excel angelet (W5:AJ15) in der alle Spielpaarungen der Bundesliga untereinander aufgelistet sind. Jede Zeile steht also für ein neues Spiel und enthält Informationen über Datum, Spieltag, Heim-, Gastmannschaft, Ergebnis etc.
Mein Ziel ist es, dass sich diese Tabelle über ein aufklappbares Menu (das die Namen der einzelenen Manschaften enthält) so zu ordnen, dass nur die Tabellensätze (also alle Spiele der jeweilig ausgewählten Mannschaft) angezeigt werden.
Ich hoffe ihr habt mein Problem verstanden
mfg
Marcel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Autofilter?
21.08.2003 17:02:46
ChrisL
Hi Marcel
Der Autofilter wäre m.E. hierfür prädestiniert.
Gruss
Chris

AW: Autofilter?
21.08.2003 17:39:59
Marcus
Hallo,
habe auch so etwas vor. Weiß leider auch noch nicht so recht wie.
Den Autofilter finde ich deshalb nich so geeignet, weil die Heimmannschaft ja in z.Bsp Spalte A und die Gastmannschaft in Spalte C steht. Da kann mann ja dann nur jeweils nach Spalte A oder C filtern, oder geht auch das filtern wenn eine Mannschaft entweder in Spalte A oder C vorkommt?
Gruß
Marcus

Filtern per VBA
21.08.2003 18:07:39
ChrisL
Hi Marcus
Ok... dann eben doch per VBA...
Option Explicit

Private Sub ListBox1_Click()
Dim iZeile As Long
For iZeile = 2 To Range("A65536").End(xlUp).Row
If Cells(iZeile, 1) = ListBox1 Or Cells(iZeile, 3) = ListBox1 Then
Rows(iZeile).EntireRow.Hidden = False
Else
Rows(iZeile).EntireRow.Hidden = True
End If
Next iZeile
End Sub


Private Sub UserForm_Initialize()
Dim iZeile As Long, iList As Long
Dim Vorhanden As Boolean
For iZeile = 1 To Range("A65536").End(xlUp).Row
Vorhanden = False
For iList = 0 To ListBox1.ListCount - 1
If Cells(iZeile, 1) = ListBox1.List(iList) Then
Vorhanden = True
Exit For
End If
Next iList
If Vorhanden = False Then ListBox1.AddItem Cells(iZeile, 1)
Next iZeile
For iZeile = 1 To Range("C65536").End(xlUp).Row
Vorhanden = False
For iList = 0 To ListBox1.ListCount - 1
If Cells(iZeile, 3) = ListBox1.List(iList) Then
Vorhanden = True
Exit For
End If
Next iList
If Vorhanden = False Then ListBox1.AddItem Cells(iZeile, 3)
Next iZeile
End Sub

Gruss
Chris

Anzeige
AW: Filtern per VBA
21.08.2003 18:49:56
Marcus
Danke Chris, das funktioniert soweit ganz gut.
Noch besser wäre, wenn man die Spiele dann in einem extra(bereits vorhandenem) Blatt in einem vorgegebenen Bereich (Z Bsp:A1:B34) einfügen kann.
Hast Du dafür einen Rat oder einen Denkanstoß. Eine Lösung wäre mir ehrlich gesagt lieber, da ich bisher noch keine Programmierkenntnisse in VBA habe.
Guß
René

AW: Filtern per VBA
21.08.2003 19:53:10
ChrisL
Hi René/Marcus?
Rat hab ich, aber nicht mehr heute ok. Versteh ich das richtig, statt Zeilen ein-/ausblenden, willst du das Resultat in einem separaten Blatt, die Auswahl soll aber immernoch über ein Userform und ListBox geschehen?
Gruss
Chris

Anzeige
AW: Filtern per VBA
21.08.2003 19:59:31
Marcus
kein Problem,
genau richtig verstanden. Aber am besten in einem fest definiertem Bereich in diesem neuen Blatt. wenn ich also eine neue Auswahl mache soll er das vorige Ergebnis löschen und das neue in eben diesem bereich einfügen.
Danke für Deine Hilfe
René
(der grad an der Tabelle vom Marcus weiterbastelt ;-) )

AW: Filtern per VBA
22.08.2003 11:12:40
ChrisL
Hi René
Option Explicit

Private Sub ListBox1_Click()
Dim iZeile As Long, LetzteZeile As Long
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("Daten")
Set WS2 = Worksheets("Ergebnis")
Application.ScreenUpdating = False
WS2.Activate
WS2.Range("A1:B100").ClearContents
For iZeile = 1 To WS1.Range("A65536").End(xlUp).Row
If WS1.Cells(iZeile, 1) = ListBox1 Or WS1.Cells(iZeile, 3) = ListBox1 Then
LetzteZeile = WS2.Range("A65536").End(xlUp).Row + 1
WS2.Cells(LetzteZeile, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(LetzteZeile, 2) = WS1.Cells(iZeile, 3)
End If
Next iZeile
Application.ScreenUpdating = True
Unload UserForm1
End Sub


Private Sub UserForm_Initialize()
Dim iZeile As Long, iList As Long
Dim Vorhanden As Boolean
For iZeile = 1 To Range("A65536").End(xlUp).Row
Vorhanden = False
For iList = 0 To ListBox1.ListCount - 1
If Cells(iZeile, 1) = ListBox1.List(iList) Then
Vorhanden = True
Exit For
End If
Next iList
If Vorhanden = False Then ListBox1.AddItem Cells(iZeile, 1)
Next iZeile
For iZeile = 1 To Range("C65536").End(xlUp).Row
Vorhanden = False
For iList = 0 To ListBox1.ListCount - 1
If Cells(iZeile, 3) = ListBox1.List(iList) Then
Vorhanden = True
Exit For
End If
Next iList
If Vorhanden = False Then ListBox1.AddItem Cells(iZeile, 3)
Next iZeile
End Sub

Gruss
Chris

Anzeige
AW: Filtern per VBA
24.08.2003 16:49:24
René
Hallo Chris,
komme grade erst aus dem WE-Urlaub zurück und möchte mich für Deine Hilfe bedanken.
Hat alles wunderbar geklappt. Wofür steht denn eigentlich "Unload UserForm1" ?
Hier wurde mir eine Fehlermeldung präsentiert. Nach Auskommentierung lief es dann aber.
Nochmals vielen Dank
René

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige