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

Such "Maschine"

Such "Maschine"
02.03.2008 14:41:07
Cordt-Erik
Hallo liebe Excel Freunde,
ich habe eine kleine Suchmaschine mit folgendem Makro gebastelt:

Private Sub CommandButton1_Click()
With UserForm1
.ListBox1.Clear
Sheets("CAT search").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 1).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
e = e + 1
Else
End If
Next i
End With
End Sub



Private Sub CommandButton2_Click()
UserForm1.ListBox1.Clear
End Sub



Private Sub Image1_Click()
Unload Me
End Sub



Private Sub TextBox2_Change()
End Sub



Private Sub UserForm_Initialize()
With UserForm1.ListBox1
.ColumnCount = 1
.ColumnWidths = "40"
End With
End Sub


In TextBox1 soll ein Name eingebeben werden,
In ListBox1 sollen die Namensauswahl erscheinen (In Tabellenblatt Spalte A),
In TextBox2 sollte dann das dazugehörige Gebutsdatim erscheinen (zu finden in Tabellenblatt Spalte B)
Genau an der Textbox2 wo nach Selektion des Namens, das dazugehörige Geb.Dat. erscheinen soll, scheitert es bei mir.
Hat jemand eine Idee? Habe zur Verständlichkeit ein Beispiel upgeloaded:
https://www.herber.de/bbs/user/50356.xls
Vielen Dank & Grüsse,
Erik

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Such "Maschine"
02.03.2008 14:53:00
Daniel
Hi
du brauchst noch dieses Makro

Private Sub ListBox1_Click()
TextBox2.Text = Columns(1).Find(what:=ListBox1.Value).Offset(0, 1).Text
End Sub


allerdings sollten die Namen eindeutig sein, bei mehrfach vorkommenden wird immer nur der erste gefunden.
wenn das vorkommen kann, müsstest du mit einer Mehrspaltigen Listbox arbeiten, das sähe dann so aus:


Private Sub CommandButton1_Click()
With UserForm1
.ListBox1.Clear
Sheets("CAT search").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 1).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
 .ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(i, 2).Text
e = e + 1
Else
End If
Next i
End With
End Sub



Private Sub ListBox1_Click()
TextBox2.Text = ListBox1.List(ListBox1.ListIndex, 1)
End Sub


Gruß, Daniel

Anzeige
AW: Such "Maschine"
02.03.2008 15:54:37
Cordt-Erik
Daniel, DANKE !!!
Genau so sollte es aussehen. Auch Thanks für den Tip mit den mehrspaltigen ListBoxes. Damit habe ich mir sicherlich den nächsten Eintrag in's Forum gespart.
Grüsse & schoenen Sonntag noch,
Erik

AW: Such "Maschine"
02.03.2008 15:01:44
Josef
Hallo Erik,
ersetzte deinen Code des UF durch diesen.
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Private Sub CommandButton1_Click()
Dim rng As Range, strFirst As String

TextBox2 = ""

With ListBox1
    .Clear
    
    Set rng = Sheets("CAT search").Range("A:A").Find(What:=TextBox1, lookAt:=xlPart)
    
    If Not rng Is Nothing Then
        strFirst = rng.Address
        
        Do
            .AddItem rng.Text
            .List(.ListCount - 1, 1) = rng.Offset(0, 1).Text
            
            Set rng = Sheets("CAT search").Range("A:A").FindNext(rng)
        Loop While Not rng Is Nothing And strFirst <> rng.Address
        
    End If
    
    If .ListCount = 0 Then .AddItem "Nichts gefunden!"
    .ListIndex = 0
End With

End Sub
Private Sub CommandButton2_Click()
ListBox1.Clear
TextBox2 = ""
End Sub
Private Sub Image1_Click()
Unload Me
End Sub

Private Sub ListBox1_Click()
With ListBox1
    TextBox2 = .List(.ListIndex, 1)
End With
End Sub

Private Sub UserForm_Initialize()
With UserForm1.ListBox1
    .ColumnCount = 2
    .ColumnWidths = "40;0"
End With
End Sub


Gruß Sepp



Anzeige
AW: Such "Maschine"
02.03.2008 15:58:00
Cordt-Erik
Auch Dir vielen dank Josef.
Funktioniert hervovorragend. Die "Nichts gefunden" Funktion gefällt mir !!
Viele Grüsse,
Eriik

AW: Such "Maschine"
02.03.2008 15:12:00
ransi
Hallo Erik
Teste mal diesen Code:
Option Explicit

Private Sub UserForm_Initialize()
With UserForm1.ListBox1
    .ColumnCount = 2
    .ColumnWidths = "40;0"
    .BoundColumn = 0
End With
CommandButton1_Click
End Sub

Private Sub CommandButton1_Click()
Dim liste
With Sheets("Cat search")
    liste = .Range(.Cells(2, 1), .Cells(.Range("a65536").End(xlUp).Row, 2))
End With
ListBox1.List = liste
End Sub

Private Sub CommandButton2_Click()
UserForm1.ListBox1.Clear
End Sub

Private Sub Image1_Click()
Unload Me
End Sub

Private Sub ListBox1_Click()
TextBox2.Text = ListBox1.List(ListBox1.ListIndex, 1)
End Sub


Private Sub TextBox1_Change()
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.List(i, 0) = TextBox1.Text Then
        TextBox2.Text = ListBox1.List(i, 1)
        Exit For
    End If
Next
End Sub


ransi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige