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

Listebox nach Suchkriterium schreiben

Listebox nach Suchkriterium schreiben
24.01.2008 21:27:00
Nico
Hallo zusammen,
habe schon viele Seiten aus dem Forum besucht und nicht gefunden was mir helfen könnte.
Wenn Ihr mir weiterhelfen könntet, würde ich mich sehr freuen.
Ich möchte nach Auswahl, einer der gefilterten Anzeigetexte in der Listbox, die dazugehörenden Daten der originalen Tabelle in einem anderen Tabellenblatt in eine freie wählbare Zelle schreiben. Eine weitere Auswahl soll in die darauf folgende Zelle geschrieben werden usw.
Hoffe das geht so wie ich mir das denke und das Ihr mir helfen könnt.
Gruß Nico
Option Explicit

Private Sub CommandButton1_Click() ' soll bei click die zugehörigen Tabellenwerte in neue Mappe  _
schreiben.
If ListBox1.ListIndex = -1 Then
MsgBox "Es wurde keine Auswahl getroffen."
Exit Sub
End If
End Sub



Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Objekt" 'Filterauswahl
End Sub



Private Sub ComboBox1_Click()
Application.ScreenUpdating = False
Dim i As Integer
Dim lngArr As Integer
Dim SuchZelle As String
SuchZelle = ComboBox1.Value
With Worksheets("Tabelle1")
lngArr = Application.WorksheetFunction.CountIf(.Range("D1:D35"), SuchZelle) ' vielleicht geht  _
das ja auch etwas einfacher mit "[Objekt]"
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 35
If .Cells(i, 4) = 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
Application.ScreenUpdating = True
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Listebox nach Suchkriterium schreiben
24.01.2008 22:13:00
Peter
Hallo Nico,
so könnte es gehen, wenn es sich um eine 1-spaltige ListBox handelt:
'
' soll bei click die zugehörigen Tabellenwerte in neue Mappe schreiben.
'

Private Sub CommandButton1_Click()
If ListBox1.ListIndex = -1 Then
MsgBox "Es wurde keine Auswahl getroffen - Abbruch!", _
48, "   Hinweis für " & Application.UserName
Exit Sub
Else
Worksheets("Tabelle1").Range("b" & Cells(Rows.Count, 2).End(xlUp).Row + 1).Value = _
Me.ListBox1.Value
End If
End Sub


Gruß Peter

AW: Listebox nach Suchkriterium schreiben
24.01.2008 23:19:27
Nico
Hallo Peter,
vielen Dank für deine Hilfe und für eine Liste mit einer Spalte ist's i.O. funktioniert . . . Thanks a lot!!
Bye Bye Nico

Anzeige
AW: Listebox nach Suchkriterium schreiben
25.01.2008 16:22:00
Peter
Hallo Nico,
aus fünf ListBox-Spalten sollte es so gehen:


Private Sub CommandButton1_Click()
Dim lLetzte  As Long
    If ListBox1.ListIndex = -1 Then
       MsgBox "Es wurde keine Auswahl getroffen - Abbruch!", _
          48, "   Hinweis für " & Application.UserName
       Exit Sub
     Else
       lLetzte = Worksheets("Tabelle2").Cells(Rows.Count, 2).End(xlUp).Row + 1
       Worksheets("Tabelle2").Range("A" & lLetzte).Value = _
          Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
       Worksheets("Tabelle2").Range("B" & lLetzte).Value = _
          Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
       Worksheets("Tabelle2").Range("C" & lLetzte).Value = _
          Me.ListBox1.List(Me.ListBox1.ListIndex, 2)
       Worksheets("Tabelle2").Range("D" & lLetzte).Value = _
          Me.ListBox1.List(Me.ListBox1.ListIndex, 3)
       Worksheets("Tabelle2").Range("E" & lLetzte).Value = _
          Me.ListBox1.List(Me.ListBox1.ListIndex, 4)
    End If
 End Sub 


Gruß Peter

Anzeige
AW: Listebox nach Suchkriterium schreiben
25.01.2008 16:48:15
Peter
Hallo Nico,
etwas kürzer in der Schreibweise:


Option Explicit
Private Sub CommandButton1_Click()
Dim WkSh_Z   As Worksheet  ' das Ziel-Tabellenblatt - die Ausgabetabelle
Dim lFreie   As Long       ' die erste freie Zeile im Ziel-Tabellenblatt
Dim iSpalte  As Integer    ' For/Next Schleifen-Index der zu übertragenden Spalten
    If ListBox1.ListIndex = -1 Then
       MsgBox "Es wurde keine Auswahl getroffen - Abbruch!", _
          48, "   Hinweis für " & Application.UserName
       Exit Sub
     Else
       Set WkSh_Z = Worksheets("Tabelle2") ' <== Tabellenblattnamen ggf. anpassen !!!
'        die nächste freie Zeile in Spalte 1 = A feststellen
       lFreie = WkSh_Z.Cells(Rows.Count, 1).End(xlUp).Row + 1
'        gemäß der Spaltenanzahl der ListBox iterieren und übertragen
       For iSpalte = 1 To ListBox1.ColumnCount
          WkSh_Z.Cells(lFreie, iSpalte).Value = _
             Me.ListBox1.List(Me.ListBox1.ListIndex, iSpalte - 1)
       Next iSpalte
    End If
 End Sub 


Gruß Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige