Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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

Suche über VBA

Suche über VBA
06.02.2016 15:24:17
Daniel
Hallo alle zusammen,
ich habe eine Tabelle mit Kontaktdaten. Spalten von a bis i.
Nun möchte ich anhand von 2 Werten die Zeile ausgegeben bekommen in der beide Suchwerte vorkommen. Es kann auch sein das nur ein Feld ausgefüllt ist.
Die Suchwerte gebe ich in die Zellen A1 und B1 ein. Groß und Kleinschreibung muss ignoriert werden.
Ich habe schon gesucht, aber nichts gefunden, oder wenn es sowas schon gibt wohl überlesen.
Könnt Ihr mir da helfen?
Ich danke schon mal im voraus.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nachgefragt
06.02.2016 15:38:42
Michael
Hi Daniel K.,
bitte präzisiere mal:
1. A1+B1 für Suchbegriffe; ok, gibt es noch eine Überschrift? Oder anders formuliert: in welcher Zeile beginnen die zu durchsuchenden Daten?
2. soll in allen Spalten gesucht werden? Oder nur jeweils ein Begriff in einer, der andere in einer anderen? Also z.B. Meier in Köln oder so?
3. soll der Begriff allein in der gefunden Zelle stehen oder kann noch was anderes drinstehen?
Am einfachsten geht es immer mit einer kleinen (anonymisierten) Beispieldatei...
Schöne Grüße,
Michael

AW: nachgefragt
06.02.2016 15:53:06
Daniel
So sieht die Liste aus. Sie ist dann mit ca. 800 Adressen gefüllt.
Nun kann es sein das ich eine Kundennummer suche, die ja eindeutig ist.
Oder ich suche, wie du schon geschrieben hast, Meier in Köln. Ich benötige dann die Zeilennummer.
Die Kundennummer kann ja nur in einer Zeile vorkommen, wobei die Kombination Meier in Köln natürlich mehrmals vorkommen kann.
Wenn ich die Zeilennummer habe, lese ich alle Daten der zum weiterverarbeiten ein.

Anzeige
AW: nachgefragt
06.02.2016 16:01:30
Daniel
Hi
filtere doch einfach mit dem Autofilter.
Gruß Daniel

AW: nachgefragt
06.02.2016 16:14:20
Daniel
Das wäre auch möglich, wenn nur ich damit arbeiten würde.
Die Daten werden dann in ein Userform eingelesen werden und dann auf diverse Dokumente verteilt werden. Dieses läuft schon alles, leider nur mit einem Suchbegriff. Die Zeit hat nun aber gezeigt,dass ein Suchbegriff nicht reicht.
Mit dem Filtern wäre es meiner Meinung nach nicht so optimal.

AW: nachgefragt
06.02.2016 16:39:21
Daniel
naja, auch den Autofilter kann und darf man in VBA verwenden.
wie suchst du den bisher?
vielleichte lässt sich deine Suchmethode ja relativ einfach erweitern.
Gruß Daniel

Anzeige
AW: nachgefragt
06.02.2016 16:46:28
Daniel
So suche ich nach der Kundennummer. Wie gesagt, ich muss auch mal nach 2 Werten suchen.
Private Sub CommandButton2_Click()
Dim rngC As Variant, strTitel As String, strZelle As String, i As Byte, Nrtextbox As Byte
strTitel = TextBox30  'suchwert
'suchbefehl
For Each rngC In ActiveSheet.UsedRange
If rngC = strTitel Then
strZelle = rngC.Row
'daten werden eingelesen
i = 1
Nrtextbox = 31
For i = 1 To 13
Me.Controls("Textbox" & Nrtextbox) = Sheets("Kundenliste").Cells(strZelle, i + 1).Value
Nrtextbox = Nrtextbox + 1
Next
Else
End If
Next
'nichts gefunden
If strZelle = "" Then
MsgBox "Kundennummer nicht vorhanden"
TextBox30.Text = vbNullString
Exit Sub
End If
End Sub

Anzeige
AW: nachgefragt
06.02.2016 16:55:07
Daniel
Hi
bei einer UND-Verknüpfung der beiden Suchbedingungen vielleicht so:
For Each rngC In ActiveSheet.UsedRange
If rngC = strTitel Then
If Worksheetfunction.CountIf(rngC.EntireRow, strZweiterSuchbegriff) > 0 Then
strZelle = rngC.Row

Gruß Daniel
btw eine Zeilennummer (.Row) ist eine Zahl, kein Text.

AW: nachgefragt
06.02.2016 17:37:07
Daniel
Super, funktioniert. Ich dachte nun kommt ein ellenlanger Code ;-)
Wie muss der Code geändert werden, um
1: die groß und Kleinschreibung nicht zu beachten
2: oder wenn mehrere Zeilen mit den Suchergebnissen vorhanden sind. Meier in Köln gibt es oft.
er nimmt nun immer die Zeile mit dem letzten ergebnis.

Anzeige
AW: nachgefragt
06.02.2016 17:57:20
Daniel
Hi
1. LCase(rngC) = lCase(strTitel)
2. da musst du mal deinen Code durchgehen.
das Problem dürfte sein, dass die Aktionen zwar bei jedem Treffer ausgelöst werden, aber immer wieder in die selben Ziele geschrieben werden.
du müsstest also bei jedem Treffer einen Zähler erhöhen und somit jedes Ergebnis in eine neue Zeile schreiben.
Gruß Daniel

Hier mal ein Versuch
06.02.2016 18:08:17
Michael
Hi zusammen,
hier mal mit DropDown zur Spaltenauswahl
die Datei: https://www.herber.de/bbs/user/103330.xlsm
Schöne Grüße,
Michael

Anzeige
AW: Hier mal ein Versuch
06.02.2016 19:19:38
Daniel
Werde es Morgen mal alles in ruhe testen.

AW: Suche über VBA
06.02.2016 15:41:41
Daniel
Hi
am Ende deiner Tabelle in zwei Hilfspalten folgende Formel eingeben,
ich gehe mal davon aus, dass die Werte in der selben Tabelle ab Zeile 2 stehen, dann folgende Formel in
J2: =ZählenWenn(A2:I2;"*"&$A$1&"*")
K2: =ZählenWenn(A2:I2;"*"&$B1$&"*")
beide Formeln bis ans Tabellenende einfügen
dann filterst du in beiden Spalten (J und K) mit dem Autofilter nach "ungleich 0"
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige