Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
648to652
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
648to652
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox füllen nach Auswahlkriterium

ListBox füllen nach Auswahlkriterium
09.08.2005 08:31:43
Andreas.R
Hallo Excelfreunde
erst einmal einen schönen guten Morgen an Alle
Ich habe folgenden Code, mir teilweise auch mit Hilfe aus der Recherche zusammengebastelt. Komme aber nicht mehr weiter. Kann vielleicht einer von Euch helfen?

Private Sub ComboBox13_Change()
Dim r1%
Dim i As Integer
Application.ScreenUpdating = False
With UserForm1
'füllt die ComboBox12 mit den Datensätzen
r1 = ComboBox13.ListIndex + 3
Label145.Caption = ComboBox13.Value  'der Ort wird übernommen
Label147.Caption = ComboBox14.Value '
End With
With UserForm1
.ListBox3.Clear     'löscht den Inhalt der ListBox
s = Label145.Caption
Sheets("AGH").Activate
Range("C3").Select 'hier stehen die Orte
i = 0
Do Until ActiveCell.Value = ""
If InStr(ActiveCell.Value, s) > 0 Then
.ListBox3.AddItem ActiveCell.Value
.ListBox3.Column(1, i) = ActiveCell.Offset(0, -2).Value 'ID
.ListBox3.Column(2, i) = ActiveCell.Offset(0, -1).Value 'Träger
.ListBox3.Column(3, i) = ActiveCell.Offset(0, 1).Value  'Ort
.ListBox3.Column(4, i) = ActiveCell.Offset(0, 2).Value  'Träger-Nr
.ListBox3.Column(5, i) = ActiveCell.Offset(0, 3).Value  'Maßn-Nr
.ListBox3.Column(6, i) = ActiveCell.Offset(0, 4).Value  'SteA-Nr
i = i + 1
Else
End If
ActiveCell.Offset(1, 0).Select
Loop
End With
Range("A1").Select
Application.ScreenUpdating = True
End Sub


Private Sub UserForm_Initialize()
'hier werden die Datensätze in die "ComboBox12"(z),"ComboBox13"(y) eingelesen
Dim z As Integer
Dim letzte As Integer
Dim y As Integer
Dim letzte1 As Integer
TextBox92.Enabled = False   'bereits belegt
With UserForm1
.ListBox1.ColumnCount =6
.ListBox1.ColumnWidths = "90;60;80;80;60;60"
.ListBox2.ColumnCount = 4
.ListBox2.ColumnWidths = "90;50;70;70"
ComboBox12.Clear    'suchen SteA-Nr.: (ComboBox Inhalt leeren)
'Das Kombinationsfeld "suchen SteA-Nummer" (ComboBox12) füllen
letzte = Sheets("AGH").Range("F65536").End(xlUp).Row
For z = 3 To letzte
UserForm1.ComboBox12.AddItem Sheets("AGH").Cells(z, 6).Value
Next z
End With
With UserForm1
.ListBox3.ColumnCount = 6
.ListBox3.ColumnWidths = "90;60;80;80;60;60"
ComboBox13.Clear    'suchen SteA-Nr.: (ComboBox Inhalt leeren)
'Das Kombinationsfeld "Orte" (ComboBox13) füllen
letzte1 = Sheets("Ort").Range("A65536").End(xlUp).Row
For y = 1 To letzte1
UserForm1.ComboBox13.AddItem Sheets("Ort").Cells(y, 1).Value    'suchen Ort
Next y
End With
UserForm1.ComboBox12 = Worksheets("Vorgaben").Range("P1").Value
End Sub

folgende Ausgangsposition:
ComboBox13 wird aus Tabelle"Ort"Spalte "A" eingelesen
(das funzt auch)
Jetzt möchte ich aber das die Mehrspaltige ListBox3 mit Werten gefüllt wird, und zwar soll in Tabelle "AGH" in Spalte "C" ab Zeile 3 nach dem Ort der in der ComboBox13 ausgewählt ist gesucht werden und alle Zeilen die den Ortsnamen aus Spalte "C" enthalten in der ListBox3 eingetragen werden.
Ein Problem kommt da noch hinzu. Und zwar soll, wenn der Ort vorhanden ist, in der gleichen Zeile nach Spalte "M" geschaut werden, ob da der Eintrag "offen" drin steht.Nur wenn das der Fall ist, soll die Zeile in die ListBox3 übernommen werden.(Wichtig: alle Zeilen aus Tabelle"AGH" sollen übernommen werden, die in Spalte "C" den Ortsnamen aus ComboBox13 enthalten und in Spalte "M" den Wert "offen" haben).
Ich hoffe das ist einigermaßen verständlich erklärt, und nicht zu viel verlangt.
Tausend Dank für Eure Bemühungen im vorraus
Gruß Andreas.R

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

Betreff
Datum
Anwender
Anzeige
AW: ListBox füllen nach Auswahlkriterium
09.08.2005 09:43:52
Matthias
Hallo Andreas,
mein Code erstmal:

Private Sub ComboBox13_Change()
Dim lz As Long, i As Long, sp As Integer
Dim anz As Integer
ListBox3.Clear
With Sheets("AGH")
lz = .Range("C65536").End(xlUp).Row
For i = 3 To lz
If InStr(.Cells(i, 3).Value, ComboBox13.Value) > 0 And .Cells(i, 13).Value = "offen" Then
ListBox3.AddItem .Cells(i, 3)
anz = ListBox3.ListCount - 1
For sp = 1 To 6
ListBox3.List(anz, 1) = .Cells(i, 1).Value 'ID
ListBox3.List(anz, 2) = .Cells(i, 2).Value 'Träger
ListBox3.List(anz, 3) = .Cells(i, 3).Value  'Ort
ListBox3.List(anz, 4) = .Cells(i, 4).Value  'Träger-Nr
ListBox3.List(anz, 5) = .Cells(i, 5).Value  'Maßn-Nr
ListBox3.List(anz, 6) = .Cells(i, 6).Value  'SteA-Nr
Next sp
End If
Next i
End With
End Sub

Ich habe jetzt eine Listbox mit 7 Spalten genommen.
Je nach Listbox-Eigenschaft "BoundColumn" wird mit .AddItem in der betr. Spalte der Wert eingefügt. Du müsstest das ganze also noch etwas anpassen, es reichen ja 6 Spalten.
Der Code macht auch nicht alle, was deine ComboBox13_Change()-Prozedur macht (Label.Caption usw.), das musst du halt noch ergänzen.
Gruß Matthias
Anzeige
AW: ListBox füllen nach Auswahlkriterium
09.08.2005 10:04:23
Andreas.R
Hallo Matthias
Echt super schnell und fuktioniert genau wie ich es wollte.
Das andere passe ich mir noch selber an. Melde mich vielleicht nochmal wenns Probleme gibt.
Gruß Andreas.R
Ps.VBA zu lernen mit diesem Forum macht echt Spaß

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige