Anzeige
Archiv - Navigation
760to764
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
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox anhand Suchbegriff (InputBox) befüllen

ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 14:15:10
reiner
Hallo Leute,
Eine umfangreiche Tabelle enthält Angaben über Kontobewegungen. Über eine InputBox will ich Textteile als Suchbegriff eingeben und diese Angaben in der Tabelle suchen lassen, anschließend soll/en der/die zugehörige/n Datensatz/-sätze in der LB aufgeführt werden.
Spalteninhalte:
Konto-Bez. SpalteA
Konto Spalte B
Datum Spalte C
Beleg-Nr. Spalte D
Buchungstext Spalte E
Betrag Spalte F
Suchbegriff = InputBox("Suchbegriff:", "Suchen")
With frmKonten
.lstKonten.ColumnCount = 5
.lstKonten.ColumnWidths = "30;58;55;156;50"
.lstKonten.Clear
.lstKonten.Width = 355
Zeile = 2
Range("A2").Select
Do Until ActiveCell.Value = ""
If InStr(ActiveCell.Value, Suchbegriff) &gt 0 Then~f~
.lstKonten.AddItem ActiveCell.Value
.lstKonten.Column(0, Zeile) = ActiveCell.Offset(0, 1).Value 'Konto--Spalte B
.lstKonten.Column(1, Zeile) = ActiveCell.Offset(0, 2).Value 'Datum--Spalte C
.lstKonten.Column(2, Zeile) = ActiveCell.Offset(0, 3).Value 'Beleg-Nr.--Spalte D
.lstKonten.Column(3, Zeile) = ActiveCell.Offset(0, 4).Text 'Buchungstext--Spalte E
.lstKonten.Column(4, Zeile) = ActiveCell.Offset(0, 5).Text 'Betrag--Spalte F
End If
Zeile = Zeile + 1
ActiveCell.Offset(1, 0).Select
Loop
End With
Bis zur Codezeile: ~f~„If InStr(ActiveCell.Value, Suchbegriff) &gt 0 Then”
läuft die Suche problemlos, bei Übereinstimmung der Begriffe: „ActiveCell.Value, Suchbegriff“ ändert „InStr“ seinen Wert von 0 auf 1.
Anstatt die ListBox zu befüllen erhalte ich immer wieder den „Laufzeitfehler 381“ angezeigt:
Eigenschaft Column konnte nicht angezeigt werden. Index des Eigenschaftsfelds ungültig
An anderer Stelle im Programmcode wird die gleiche ListBox in Abhängigkeit eines CB-Eintrags mit den Datensätzen jeweils einer Konto-Bez. (Spalte A) befüllt.
Warum lässt sich die LB nicht anhand des Suchbegriffes befüllen, wo liegt der Fehler?
mfg
reiner

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 14:52:53
reiner
hier noch ein Nachtrag,
ich glaube das Problem ist leichter anhand der Beispieltabelle nachzuvollziehen.
Eine zusätzliche Frage: Warum muss der Eintrag der InputBox exakt der Schreibweise in der Tabelle entsprechen (Groß- und Kleinschreibung), lässt es sich erreichen, das unabhängig von der Groß- und Kleinschreibung nach Begriffen gesucht wird?
https://www.herber.de/bbs/user/33630.xls
mfg
reiner
AW: ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 15:40:06
Josef
Hallo Reiner!
Ohne auf deinen Programierstil näher eingehen zu wollen;-))
das geht z.B. so!
Private Sub cmdSuchen_Click()
Dim rng As Range, rngF As Range
Dim strFirst As String

cboKonten.Clear

Suchbegriff = InputBox("Suchbegriff:", "Suchen")
If Suchbegriff = "" Then Exit Sub
Gesamtbetrag = 0
With lstKonten
  .ColumnCount = 5
  .ColumnWidths = "30;58;55;156;50"
  .Clear
  .Width = 355
  Set rng = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  Set rngF = rng.Find(Suchbegriff)
  
  If Not rngF Is Nothing Then
    strFirst = rngF.Address
    Do
      .AddItem rngF.Offset(0, 1).Value 'Konto
      .List(.ListCount - 1, 1) = rngF.Offset(0, 2).Value 'Datum
      .List(.ListCount - 1, 2) = rngF.Offset(0, 3).Value 'Beleg-Nr.
      .List(.ListCount - 1, 3) = rngF.Offset(0, 4).Text 'Buchungstext
      .List(.ListCount - 1, 4) = rngF.Offset(0, 5).Text 'Betrag
      Einzelbetrag = rngF.Offset(0, 5).Value
      Gesamtbetrag = Gesamtbetrag + Einzelbetrag
      Set rngF = rng.FindNext(rngF)
    Loop While Not rngF Is Nothing And strFirst <> rngF.Address
  End If
  lblGesamtbetrag.Caption = "Kontenumsatz: " & Format(Gesamtbetrag, "##,##0.00") & " €"
  lblAnzBuchungen.Caption = .ListCount & " Buchungen"
End With
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 19:16:22
reiner
hallo Sepp,
danke für den Vorschlag;
könnte es sein dass Du die vorgefundene Programmierung unprofessionell empfandest?
Ich betrachte mich als Anfänger im Hinblick auf VBA-Programmierung, bin aber dennoch ein klein bisschen stolz besonders dann wenn mal etwas wie gewünscht funktioniert - was durchaus vorkommt; selbst wenn ein Profi milde lächelt und elegantere Lösungen verwendet hätte;-))
mfg
reiner
AW: ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 21:02:46
reiner
hallo Sepp,
ich habe noch eine Frage zu Deinem Vorschlag:
Wenn der zu suchende Text bereits in der 2.Zeile steht wird diese Zeile dennoch erst als letzter Eintrag in der LB aufgeführt! Warum ist das so?
Set rng = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Set rngF = rng.Find(Suchbegriff)
If Not rngF Is Nothing Then
strFirst = rngF.Address
Warum enthält die Variable strFirst die Zelladresse „A$3$“ obwohl der erste zu berücksichtigende Text in Zelladresse „A$2$“ steht?
mfg
reiner
Anzeige
AW: ListBox anhand Suchbegriff (InputBox) befüllen
14.05.2006 21:58:53
Josef
Hallo Reiner!
Das lässt sich so beheben.

Set rng = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Set rngF = rng.Find(Suchbegriff, After:=rng.Cells(rng.Count, 1))

'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
danke
14.05.2006 22:52:28
reiner
danke Sepp

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige