Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1792to1796
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
Inhaltsverzeichnis

Listbox mit Fixzeile

Listbox mit Fixzeile
24.11.2020 10:25:40
Kerstin
Hallo,
Ausgangssituation
Ich möchte meine gefundenen Daten von Tabelle2 in der Listbox ausgeben. Soweit so gut, das klappt. Jedoch sollte das Array Out in Zeile 2 der Listbox beginnen. Da ich in der ersten Zeile fixe Werte habe, die ich beim Öffnen in der Listbox anzeige. Mein Problem ist, dass mir das jetzige Array Out die erste Zeile überschreibt.
Deshalb meine Frage: Wie kann ich ein Array Out in die zweite Zeile der Listbox schreiben ?
Mein Code :

Private Sub cmdSuchenDecke_click()
Dim i As Long, k As Long, m As Long
Dim arr As Variant
Dim arrOut() As Variant
Dim blnGefunden As Boolean
If cmbDeckeGeschoss.Value = "" Then Exit Sub
With Worksheets("Tabelle2")
arr = Sheets("Tabelle4").Range("A2:Q200")
ListBox2.List = arr
End With
UserForm1.ListBox2.Clear
UserForm1.ListBox2.ColumnCount = UBound(arr, 2)
For i = 1 To UBound(arr)
For k = 1 To UBound(arr, 2)
If InStr(arr(i, k), cmbDeckeGeschoss.Value) > 0 Then
blnGefunden = True
Exit For
End If
Next k
If blnGefunden Then
m = m + 1
ReDim Preserve arrOut(1 To UBound(arr, 2), 1 To m)
For k = 1 To UBound(arr, 2)
arrOut(k, m) = arr(i, k)
Next
blnGefunden = False
End If
Next i
If m  0 Then ListBox2.Column = arrOut
End Sub

Danke für die Hilfe

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit Fixzeile
24.11.2020 10:41:20
Nepumuk
Hallo Kerstin,
schreib die erste Zeile mit in das Array.
Gruß
Nepumuk
AW: Listbox mit Fixzeile
24.11.2020 13:13:38
Kerstin
Hallo Neupumuk,
Danke dir.
Aber wie schreibe ich das als Code
merci für deine Hilfe
AW: Listbox mit Fixzeile
24.11.2020 13:23:52
Nepumuk
Hallo Kerstin,
ich kann in deinem Code nicht erkennen woher eine Überschriftenzeile kommen soll.
Erst füllst du die ListBox mit dem kompletten Bereich "A2:Q200" den du dann sofort wieder löschst um dann eine Auswahl bestimmter Datensätze anzuzeigen. Macht irgendwie keinen Sinn.
Gruß
Nepumuk
AW: Listbox mit Fixzeile
24.11.2020 15:53:02
Kerstin
Hallo
Beim Öffnen steht folgendes in der Listbox (Userform_initalize)
1. Teil
With Worksheets("Tabelle2")
arr = Sheets("Tabelle2").Range("A2:Q5")
ListBox2.List = arr
End With
2. Teil
Ausgabe in Listbox nach Suche eines bestimmten Wertes in Spalte A
Private Sub CommandButton2_Click()
Dim i As Long, k As Long, m As Long
Dim arr As Variant
Dim arrOut() As Variant
Dim blnGefunden As Boolean
If cmbGeschoss.Value = "" Then Exit Sub
With Worksheets("Tabelle2")
arr = Sheets("Tabelle2").Range("A2:Q5")
ListBox2.List = arr
End With
UserForm1.ListBox2.ColumnCount = UBound(arr, 2)
For i = 1 To UBound(arr)
For k = 1 To UBound(arr, 2)
If InStr(arr(i, k), cmbGeschoss.Value) > 0 Then
blnGefunden = True
Exit For
End If
Next k
If blnGefunden Then
m = m + 1
ReDim Preserve arrOut(1 To UBound(arr, 2), 1 To m)
For k = 1 To UBound(arr, 2)
arrOut(k, m) = arr(i, k)
Next
blnGefunden = False
End If
Next i
If m + 1  0 Then ListBox2.Column = arrOut
End Sub
Jetzt wird meine Zeile in der Listbox überschrieben. Hier ist der Haken. Ich möchte die erste Zeile behalten und das Suchresultat in der zweiten Zeile anzeigen
Anzeige
AW: Listbox mit Fixzeile
24.11.2020 16:16:52
Nepumuk
Hallo Kerstin,
teste mal:
Private Sub CommandButton2_Click()
    Dim i As Long, k As Long, m As Long
    Dim arr As Variant
    Dim arrOut() As Variant
    Dim blnGefunden As Boolean
    
    If cmbGeschoss.Value <> "" Then
        
        arr = Worksheets("Tabelle2").Range("A2:Q5")
        
        Redim Preserve arrOut(1 To UBound(arr, 2), 1 To 4)
        
        For i = 1 To UBound(arr, 1)
            For k = 1 To UBound(arr, 2)
                arrOut(k, i) = arr(i, k)
            Next
        Next
        
        m = 4
        
        arr = Worksheets("Tabelle4").Range("A2:Q200")
        
        ListBox2.ColumnCount = UBound(arr, 2)
        
        For i = 1 To UBound(arr, 1)
            
            For k = 1 To UBound(arr, 2)
                
                If InStr(arr(i, k), cmbGeschoss.Value) > 0 Then
                    blnGefunden = True
                    Exit For
                End If
            Next k
            
            If blnGefunden Then
                m = m + 1
                Redim Preserve arrOut(1 To UBound(arr, 2), 1 To m)
                For k = 1 To UBound(arr, 2)
                    arrOut(k, m) = arr(i, k)
                Next
                blnGefunden = False
            End If
        Next i
        
        ListBox2.Column = arrOut
        
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Listbox mit Fixzeile
24.11.2020 16:22:46
Kerstin
Danke schon mal
Funktioniert nicht. Erste Zeile wird immer noch überschrieben. Rest läuft auch nicht..
AW: Listbox mit Fixzeile
24.11.2020 16:30:44
Nepumuk
Hallo Kerstin,
kann ich nicht nachvollziehen. In meiner Testmappe funktioniert es. Von dir habe ich keine bekommen.
https://www.herber.de/bbs/user/141821.xlsm
Gruß
Nepumuk
AW: Listbox mit Fixzeile
25.11.2020 06:24:37
Kerstin
Hallo,
Super mit dem Excel. Ich habe den Code dort angepasst. Leider kann ich das File nicht laden. Weiss nicht weshalb.
Dann halt so:
Tabelle 2 enthält in Zeile 1 Titel1.....A-Q
Die Titel aus Tabelle2 sollen beim Button_Click bestehen bleiben. Das wäre schon alles.
Ich hoffe, dass es nun verständlich ist, was ich wollte.
Private Sub UserForm_Initialize() Dim arr cmbGeschoss.Value = "x" UserForm1.ListBox2.Clear ListBox2.ColumnCount = 17 If cmbGeschoss.Value = "" Then Exit Sub With Worksheets("Tabelle2") arr = Sheets("Tabelle2").Range("A1:Q1") ListBox2.List = arr End With End Sub
Danke
Anzeige
AW: Listbox mit Fixzeile
25.11.2020 10:26:34
Nepumuk
Hallo Kerstin,
dann so:
Private Sub CommandButton2_Click()
    
    Dim i As Long, k As Long, m As Long
    Dim arr As Variant
    Dim arrOut() As Variant
    Dim blnGefunden As Boolean
    
    If cmbGeschoss.ListIndex > -1 Then
        
        Redim arrOut(1 To 17, 1 To 1)
        
        For i = 1 To 17
            arrOut(i, 1) = ListBox2.List(0, i - 1)
        Next
        
        m = 1
        
        arr = Worksheets("Tabelle4").Range("A2:Q200")
        
        For i = 1 To UBound(arr, 1)
            
            For k = 1 To UBound(arr, 2)
                
                If InStr(arr(i, k), cmbGeschoss.Value) > 0 Then
                    
                    blnGefunden = True
                    Exit For
                    
                End If
            Next k
            
            If blnGefunden Then
                
                m = m + 1
                Redim Preserve arrOut(1 To UBound(arr, 2), 1 To m)
                
                For k = 1 To UBound(arr, 2)
                    
                    arrOut(k, m) = arr(i, k)
                    
                Next
                
                blnGefunden = False
                
            End If
        Next i
        
        ListBox2.Column = arrOut
        
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Listbox mit Fixzeile
25.11.2020 10:32:21
Kerstin
Hallo Nepumuk,
Sensationell - Funktioniert super. Bin dir sehr dankbar. Mal ein Bier 😂
Gruss Kerstin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige