Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1404to1408
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 Suchergebnis in die mitte setzen

Listbox Suchergebnis in die mitte setzen
02.02.2015 18:08:34
Tom
Hallo,
in einer Listbox liste ich Artikel auf. Durch TextBox suche ich nach Begriffen in der 1.Spalte. Das funktioniert, doch das Suchergebnis erscheint immer am unteren Rand. Eigentlich sollte das in die Mitte. Die TextBox sollte danach wieder leer sein, klappt auch nicht so richtig. Kann mir da jemand helfen ?
Private Sub SuchenButton_Click()
Dim i As Integer
For i = 0 To lstArtikel.ListCount - 1
If Not InStr(lstArtikel.List(i), TextBox1.Text) = 0 Then
lstArtikel.Selected(i) = True
'TextBox1.Value = ""
End If
Next
End Sub

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

Betreff
Datum
Anwender
Anzeige
Stichwort "TopIndex"
02.02.2015 20:30:17
Martin
Hallo Tom,
mit TopIndex legst du fest, welcher Eintrag ganz oben in der ListBox angezeigt werden soll. Nun weiß ich nicht auf wieviele anzuzeigende Zeilen ("ListRows") deine ListBox eingerichtet ist (Standard ist 8). Probiere es mal mit:
ListBox1.TopIndex = ListBox1.ListIndex - 4
...natürlich solltest du den Fall abfangen, dass der TopIndex nicht auf unter 0 festgelegt wird.
Viele Grüße
Martin

Super, haut hin. zwei weitere Fragen!
04.02.2015 19:06:12
Tom
Hallo Martin,
funktioniert super. Das konnte ich so lösen. Ich habe noch zwei weitere Fragen, die mich nicht weiterkommen lassen.
1. ich möchte die gesamte Userform die beim öffen fixiert bleibt, mehr nach rechts positionieren, da sie mir den Eingabebereich des Formulars verdeckt. Da gibt es sicher eine einfache Möglichkeit, nur finde ich die nicht :-(
2. bei einer anderen Listbox (Adressensuche) suche ich nach Namen oder sonst was im gesamten Formular.
Eigentlich klappt das auch, doch wenn ich eine grössere Liste ins Fo. einfüge, bekomme ich Fehler. Wahrscheinlich ist mein Code etwas zu einfach zusammengebastelt.
Fehler:
Laufzeitfehler'-2147352571(80020005)':
Eigenschaft List konnte nicht gesetzt werden. Typkonflikt.
' Userform nach rechts verschieben.
Private Sub SuchenButton_Click()
Dim i As Integer
For i = 0 To lstArtikel.ListCount - 1
If Not InStr(lstArtikel.List(i), TextBox1.Text) = 0 Then
lstArtikel.Selected(i) = True
lstArtikel.TopIndex = lstArtikel.ListIndex - 0
End If
Next
End Sub

Private Sub lstArtikel_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Hide
wahlindex = frmAuswahl.lstArtikel.ListIndex
ActiveCell.Value = Worksheets("Artikel").Cells(wahlindex + 2, 2).Value                '    _
Artikel
ActiveCell.Offset(0, -1).Value = Worksheets("Artikel").Cells(wahlindex + 2, 1).Value  '    _
Positionsnummer
ActiveCell.Offset(0, 1).Value = Worksheets("Artikel").Cells(wahlindex + 2, 3).Value   '    _
Menge1
ActiveCell.Offset(0, 2).Value = Worksheets("Artikel").Cells(wahlindex + 2, 4).Value   '   Sub1
ActiveCell.Offset(0, 3).Value = Worksheets("Artikel").Cells(wahlindex + 2, 5).Value   '   Sub2
ActiveCell.Offset(0, 4).Value = Worksheets("Artikel").Cells(wahlindex + 2, 6).Value   '    _
Menge2
ActiveCell.Offset(0, 6).Value = Worksheets("Artikel").Cells(wahlindex + 2, 8).Value   '    _
Einheit
ActiveCell.Offset(0, 7).Value = Worksheets("Artikel").Cells(wahlindex + 2, 9).Value   '    _
Menge3
ActiveCell.Offset(0, 8).Value = Worksheets("Artikel").Cells(wahlindex + 2, 10).Value  '    _
Rabatt
ActiveCell.Offset(0, 9).Value = Worksheets("Artikel").Cells(wahlindex + 2, 11).Value  '    _
Preis
ActiveCell.Offset(0, 14).Value = Worksheets("Artikel").Cells(wahlindex + 2, 11).Value '    _
Preis
Cancel = True
ActiveCell.Offset(1, 0).Select
'Unload frmAuswahl
Me.Show vbModeless
End Sub
Sub UserForm_Initialize()
j = Sheets("Artikel").Cells(Rows.Count, 2).End(xlUp).Row
lstArtikel.ColumnCount = 11
lstArtikel.ColumnWidths = "37;184;25;25;25;25;25;25;25;25;37"
lstArtikel.List = Worksheets("Artikel").Range("A2:K" & j).Value
End Sub
' bringt die genannten Fehler
Sub UserForm_Initialize()
Dim wks As Worksheet
Dim ii As Integer
Set wks = Sheets("Adressen")
With wks
For ii = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
lstAdressen.ColumnCount = 10
If Not IsEmpty(.Cells(ii, 1)) Then
lstAdressen.AddItem Cells(ii, 1).Value
lstAdressen.List(lstAdressen.ListCount - 1, 0) = .Cells(ii, 1).Value
lstAdressen.List(lstAdressen.ListCount - 1, 1) = .Cells(ii, 2).Value
lstAdressen.List(lstAdressen.ListCount - 1, 2) = .Cells(ii, 3).Value
lstAdressen.List(lstAdressen.ListCount - 1, 3) = .Cells(ii, 4).Value
lstAdressen.List(lstAdressen.ListCount - 1, 4) = .Cells(ii, 5).Value
lstAdressen.List(lstAdressen.ListCount - 1, 5) = .Cells(ii, 6).Value
lstAdressen.List(lstAdressen.ListCount - 1, 6) = .Cells(ii, 7).Value
lstAdressen.List(lstAdressen.ListCount - 1, 7) = .Cells(ii, 8).Value
lstAdressen.List(lstAdressen.ListCount - 1, 8) = .Cells(ii, 9).Value
lstAdressen.List(lstAdressen.ListCount - 1, 9) = .Cells(ii, 10).Value
End If
Next ii
End With
End Sub

Anzeige
AW: nur noch eine weitere Frage
04.02.2015 20:03:34
Tom
Punkt 1 habe ich gelöst. Aber Punkt 2 (Laufzeitfehler) ist noch offen

keine weiteren Fragen mehr, gelöst.
04.02.2015 20:19:48
Tom
Danke allen, Problem gelöst.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige