Herbers Excel-Forum - das Archiv

Nochmal Listbox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox UserForm
Bild

Betrifft: Nochmal Listbox
von: AxelW
Geschrieben am: 22.09.2003 19:35:49
Hallo Chris,

danke für Deine Idee von eben, aber ich bekomme eine Fehlermeldung (Laufzeitfehler: 13 "Typen unverträglich").
Die VBA-Zeile "lngArr = Application.WorksheetFunction.CountIf(.Range("A1:A200"), SuchZelle)" scheint diesen Fehler zu verursachen.
Leider schaffe ich es nicht diesen String zu zerlegen.
Ich habe den Code in das Initialize-Ereignis der Userform gelegt. Ist doch richtig, oder ???

Hast Du noch einen Tipp?
Gruß, Axel

Bild

Betrifft: AW: Nochmal Listbox
von: andre
Geschrieben am: 22.09.2003 19:47:55
hallo axel,
kann es auch eins drüber sein? - die zeile, nicht der kopf. also suchzelle wird als long dimensioniert - also numerisch - und dann mit ..="x" belegt.
gruss andre
Bild

Betrifft: AW: Nochmal Listbox
von: AxelW
Geschrieben am: 22.09.2003 20:07:08
Hallo Andre,

Naja, "SuchZelle" ist ja als LONG dimensioniert.
Hier nochmal der gesamte Code von Chris. Ich verstehe Leider nicht alle Zeilen. Die Verarbeitung in einem ARRAY ja, aber die "Suchfunktion" leider nicht ganz.
Diesen Code habe ich im INITIALIZE-Ereignis der Userform verwendet.

Gruss, Axel

Sub suchen()
Dim i As Integer
Dim lngArr As Integer
Dim SuchZelle As Long
Application.ScreenUpdating = False
SuchZelle = "x"
With Worksheets("Tabelle1")
lngArr = Application.WorksheetFunction.CountIf(.Range("A1:A200"), SuchZelle)
If lngArr = 0 Then
MsgBox "Keine Einträge gemäss den ausgewählten Kriterien"
Exit Sub
End If
ReDim MyArray(1 To lngArr, 0 To 3)
lngArr = 0
For i = 1 To 200
If .Cells(i, 1) = SuchZelle Then
lngArr = lngArr + 1
MyArray(lngArr, 0) = .Cells(i, 2)
MyArray(lngArr, 1) = .Cells(i, 3)
MyArray(lngArr, 2) = .Cells(i, 4)
MyArray(lngArr, 3) = .Cells(i, 5)
MyArray(lngArr, 4) = .Cells(i, 6)
End If
Next i
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.List = MyArray
End With
End Sub

Bild

Betrifft: AW: Nochmal Listbox
von: ChrisL
Geschrieben am: 22.09.2003 21:01:13
https://www.herber.de/forum/messages/313421.html

Hi Axel

Die Variable-Deklaration muss wie folgt lauten...
Dim SuchZelle As String

Aber wie im alten Beitrag beschrieben, habe ich noch einen anderen Fehler entdeckt, sorry. Dafür hab ich es inzwischen getestet und gemäss nachstehendem Code sollte es funktionieren.

Gruss
Chris

Option Explicit

Sub suchen()
Dim i As Integer
Dim lngArr As Integer
Dim SuchZelle As String
Application.ScreenUpdating = False
SuchZelle = "x"
With Worksheets("Tabelle1")
lngArr = Application.WorksheetFunction.CountIf(.Range("A1:A200"), SuchZelle)
If lngArr = 0 Then
MsgBox "Keine Einträge gemäss den ausgewählten Kriterien"
Exit Sub
End If
ReDim MyArray(1 To lngArr, 0 To 4)
lngArr = 0
For i = 1 To 200
If .Cells(i, 1) = SuchZelle Then
lngArr = lngArr + 1
MyArray(lngArr, 0) = .Cells(i, 2)
MyArray(lngArr, 1) = .Cells(i, 3)
MyArray(lngArr, 2) = .Cells(i, 4)
MyArray(lngArr, 3) = .Cells(i, 5)
MyArray(lngArr, 4) = .Cells(i, 6)
End If
Next i
UserForm1.ListBox1.ColumnCount = 5
UserForm1.ListBox1.List = MyArray
End With
End Sub

Bild

Betrifft: AW: Nochmal Listbox
von: AxelW
Geschrieben am: 22.09.2003 21:06:55
Hallo Chris,

Danke Dir fürs dranbleiben.
Wahnsinn, hab`s probiert und klappt super.

Noch einmal vielen Dank,

Gruss, Axel :)
 Bild
Excel-Beispiele zum Thema " Nochmal Listbox"
Mehrfachauswahl aus ListBox auslesen Gefilterte Daten in eine ListBox einlesen
Dateien aus Listbox auslesen und öffnen Listbox-Eintrag durch Mausbewegung markieren
ListBox-Einträge auswechseln Horizontal angeordnete Elemente in eine ListBox übernehmen
Tabellenblattnamen in eine ListBox einlesen ListBox bei Eintrag erweitern