Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchfunktion

Forumthread: Suchfunktion

Suchfunktion
16.04.2006 23:35:15
Hasan
Hallo alle zusammen,
gibt es jmd. der mir beim folgenden Problem weiterhelfen kann.
Habe auf eine excel-datei mit 4 spalten (Land,Postleitzahl,Produkt, e-mai).
Wie schaffe ich es, dass nach Auswahl der ersten 3 Kriterien (also: Land, Postleitzahl, Produkt) aus 3 Listboxen in einem Textbox die betreffende e-mail-Adresse notiert wird.
Der Code soll also die 3 Kriterien durch die Exceltabelle durchlaufen und wenn er die Eingabe gefunden hat, soll er mir auf Spalte 4 (e-mail) die E-mail adresse in ein Textbox auf einem Formular kopieren.
Gruss,
Hasan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion
17.04.2006 04:17:48
Heinz
Hallo Hassan
Hier ein Code der Deinen Vorstellungen am nächsten kommt.
Auswahl aus gesamten Daten der Spalte A (Land), dann Auswahl
der gefilterten Daten aus Spalte B (Plz) und Anzeige nach Auswahl (Prod)
ebenfalls gefilter aus Spalte C.
Dim strLand, strPlz, strProd, strAdr As String

Private Sub UserForm_Activate()
'Füllt die Boxen beim Starten der UF mit allen Daten
'-----------Liste in ListBox1,2,3 hinzufügen--------
For Zähler = 0 To ListBox1.ListCount
If ListBox1.ListCount >= 1 Then
If ListBox1.ListIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount - 1
End If
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
Next Zähler
For Zähler = 0 To ListBox2.ListCount
If ListBox2.ListCount >= 1 Then
If ListBox2.ListIndex = -1 Then
ListBox2.ListIndex = ListBox2.ListCount - 1
End If
ListBox2.RemoveItem (ListBox2.ListIndex)
End If
Next Zähler
For Zähler = 0 To ListBox3.ListCount
If ListBox3.ListCount >= 1 Then
If ListBox3.ListIndex = -1 Then
ListBox3.ListIndex = ListBox3.ListCount - 1
End If
ListBox3.RemoveItem (ListBox3.ListIndex)
End If
Next Zähler
Set aktuelleZelle = Worksheets(2).Range("A2")
Do While Not IsEmpty(aktuelleZelle)
Set nächsteZelle = aktuelleZelle.Offset(1, 0)
ListBox1.AddItem aktuelleZelle.Offset(0, 0)
ListBox2.AddItem aktuelleZelle.Offset(0, 1)
ListBox3.AddItem aktuelleZelle.Offset(0, 2)
Set aktuelleZelle = nächsteZelle
Loop
TextBox1.Locked = True
End Sub


Private Sub ListBox1_Click()
'Füllt die Box2 mit allen Daten nach Auswahl aus Box1
'-----------Liste in ListBox2 hinzufügen-------------
strLand = ListBox1.Text
For Zähler = 0 To ListBox2.ListCount
If ListBox2.ListCount >= 1 Then
If ListBox2.ListIndex = -1 Then
ListBox2.ListIndex = ListBox2.ListCount - 1
End If
ListBox2.RemoveItem (ListBox2.ListIndex)
End If
Next Zähler
For Zähler = 0 To ListBox3.ListCount
If ListBox3.ListCount >= 1 Then
If ListBox3.ListIndex = -1 Then
ListBox3.ListIndex = ListBox3.ListCount - 1
End If
ListBox3.RemoveItem (ListBox3.ListIndex)
End If
Next Zähler
Set aktuelleZelle = Worksheets(2).Range("A2")
Do While Not IsEmpty(aktuelleZelle)
Set nächsteZelle = aktuelleZelle.Offset(1, 0)
If aktuelleZelle = strLand Then
ListBox2.AddItem aktuelleZelle.Offset(0, 1)
ListBox3.AddItem aktuelleZelle.Offset(0, 2)
End If
Set aktuelleZelle = nächsteZelle
Loop
TextBox1.Text = ""
End Sub


Private Sub ListBox2_Click()
'Füllt die Box3 mit allen Daten nach Auswahl aus Box2
'-----------Liste in ListBox3 hinzufügen-------------
strPlz = ListBox2.Text
TextBox1.Text = ""
For Zähler = 0 To ListBox3.ListCount
If ListBox3.ListCount >= 1 Then
If ListBox3.ListIndex = -1 Then
ListBox3.ListIndex = ListBox3.ListCount - 1
End If
ListBox3.RemoveItem (ListBox3.ListIndex)
End If
Next Zähler
Set aktuelleZelle = Worksheets(2).Range("A2")
Do While Not IsEmpty(aktuelleZelle)
Set nächsteZelle = aktuelleZelle.Offset(1, 0)
If aktuelleZelle.Offset(0, 1) = CStr(strPlz) Then
ListBox3.AddItem aktuelleZelle.Offset(0, 2)
End If
Set aktuelleZelle = nächsteZelle
Loop
TextBox1.Text = ""
End Sub


Private Sub ListBox3_Click()
'Füllt die TextBox1 mit Text nach Auswahl aus Box3
'-----------Liste in ListBox3 hinzufügen----------
strProd = ListBox3.Text
Set aktuelleZelle = Worksheets(2).Range("A2")
Do While Not IsEmpty(aktuelleZelle)
Set nächsteZelle = aktuelleZelle.Offset(1, 0)
If aktuelleZelle.Offset(0, 2) = strProd Then
strAdr = aktuelleZelle.Offset(0, 3)
End If
Set aktuelleZelle = nächsteZelle
Loop
TextBox1.Text = strAdr
End Sub

Wünsch' Dir noch schöne Ostern und mir ev. Rückmeldung
lg.
Heinz
Anzeige
AW: Suchfunktion
17.04.2006 13:27:13
hasan
hallo heinz,
ich werde dir um einen besseren Überblick zu haben, das von mir vorbereitete Formular mit der Exceldatei uploaden.
gruss,
hasan
AW: Suchfunktion
17.04.2006 13:41:25
Hasan
https://www.herber.de/bbs/user/32929.xls,
hi heinz,
oben findest du den Link zu der Excel-Tabelle mit den Rohdaten und dem Makro+Formular
für die kleine Anwendung zur Suche von e-mail-Adressen.
Die Rohdaten sind nur ein fiktives Beispiel, die nicht der Realität entprechen.
Beschreibung des Problems:
Was ich schon habe: 3 Listboxen(Land, Postleitzahl, Produkt) und drei Textboxen, die den Inhalt der Listboxen ein 2.Mal einfach nur abbilden.
Was ich benötige: Einen Code, der nach Auswahl von Land, Postleitzahl, Produkt, die entsprechende e-mail-adresse findet. Die Reihenfolge der Spalten 1, 2, 3, 4 bilden Land, Postleitzahl, Produkt und E-mailadresse ab.
Der Code muss also, die gewählten ersten 3 Such-Kriterien nehmen und diese in meiner Excelliste wiederfinden und dann in genau dieser Zeile auf Spalte 4 die zugehörige e-mail-Adresse in meiner Textbox.1 auf dem Formularblatt wiedergeben.
That´s it.
Da ich ich mich nicht besonders auskenne, komm ich einfach hier nicht weiter.
Heinz, habe ich dir das Problem jetzt besser veranschaulicht?
Gruss,
Hasan
Anzeige
AW: Suchfunktion
18.04.2006 11:04:19
Susanne
Hallo Hasan,
weiss zwar nicht ob ich dein Problem richtig verstanden habe, aber probiere es mal damit:
du fügst ganz an den Anfang der Tabelle eine Spalte ein (die kannst du ja später mit Format-Spalte-ausblenden unsichtbar machen). Dann sagst du dort : =A&B&C
Damit zieht der dir Land, Poztleitzahl und Produkt zu einem Begriff zusammen.
Das Gleiche machst du in der Tabelle wo die Mail-Adressen stehen. Und nun suchst du mit dem S-Verweis über den Schlüssel den du dir erzeugt hast die mail-Adresse.
LG
Susanne
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige