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

VBA - Mit mehreren Bedingungen Matrix durchsuchen

VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 15:15:21
Sebastian
Hallo an alle,
ich suche nach einem VBA - Code um eine Matrix (bzw. Datenbank) nach mehreren, zuvor vom Benutzer in einem Userform eingegebenen Daten zu durchsuchen.
Die Datenbank ist folgendermaßen aufgebaut:
Belegnummer Datum Zahlungsempfänger Kostenstelle Betrag Verwendungszweck
XXXXXXXX XXXX XXXXXXXXXXXXXX XXXXXXXXX XXX,XX XXXXXXXXXXXX
Der Benutzer soll nun die Möglichkeit haben in einem separaten Eingabefeld nach den Suchkriterien Belegnummer, Datum, Zahlungsempfänger, etc. zu suchen. Auch eine Mehrfachselektion soll möglich sein (z.B. Suche nach Datum und Kostenstelle).
Klickt der Benutzer auf "Suche starten" sollen nun die Suchergebnisse in einer Listbox dargestellt werden (z.b. die Belegnummern, welche auf die Suchkriterien zutreffen).
Mit einem Suchkriterium und einer Programmschleife funktioniert das alles wunderbar, ich verstehe nur nicht wie es mit mehreren Bedingungen funktionieren soll.
Ich bin um jeden Tipp dankbar :)
Grüße,
Sebastian

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 16:11:58
onur
Hi Sebastian,
Wieso nimmst du nicht einfach die "Filtern"-Funktion, anstatt sie mit VBA zu simulieren?
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 16:44:05
Sebastian
Hallo Onur,
ich möchte dem Benutzer den Zugriff auf die Datenbank nicht ermöglichen damit keine Daten versehentlich abhanden kommen. Daher soll alles mit Hilfe eines Userforms erfolgen. Die Registerkarte mit der Datenbank sieht der Anwender gar nicht.
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 17:01:28
onur
Hi Sebastian,
Kannst du die Datei evtl. posten?
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 17:34:28
Sebastian
Userbild
Userbild
Userbild
Ich habs versucht, leider kann ich keine Dateien auf den Server hochladen...
Ich hoffe die Screenshots helfen auch weiter..
Die Registerkarte DB-Auszahlung soll die Datenbank darstellen.
Im VB Editor kann man die zwei Userforms sehen die mit dieser Datenbank zusammenarbeiten sollen.
Das Userform "Belegsuche" soll dem User zum selektieren der Suchkriterien dienen. Nach klicken auf Suchen sollen die Treffer innerhalb der Listbox des Userforms "Belegsuche2" angezeigt werden (einfach nur die Belegnummer z.B.)
Anzeige
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 17:40:09
onur
Kannst du mir die datei schicken?
Sonst müsste ich mir alles selber aufbauen, es wäre sehr umständlich.
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 17:56:12
Sebastian
wenn ich wüsste wie das in diesem Forum geht gerne :)
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 18:10:40
onur
per mail:
oengin22@mailbox.org
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 20:03:54
onur
Das in ein MODUL:
Public Empf, DatBis, DatVon, KstBis, KstVon, BelNr As Variant
Und das in die Userform (mußt noch deine Textboxen und den Button umbenennen):
Private Sub Suchen_Click()
Dim found(100) As Variant
Dim nr As Integer
If DatumVon  "" Then
If Not IsDate(DatumVon.Text) Then
MsgBox ("`Datum von`  ist kein gültiges Datum!")
Exit Sub
Else
DatVon = CDate(DatumVon.Text)
End If
End If
If DatumBis  "" Then
If Not IsDate(DatumBis.Text) Then
MsgBox ("`Datum bis`  ist kein gültiges Datum!")
Exit Sub
Else
DatVon = CDate(DatumBis.Text)
End If
End If
If DatumVon.Text = "" And DatumBis.Text = "" And KostenstelleVon.Text = "" And KostenstelleBis. _
Text = "" And Empfaenger.Text = "" And BelegNummer.Text = "" Then
Exit Sub
End If
For Z = 2 To 1500
If Tabelle2.Cells(Z, 1)  "" Then
If BelNr = "" Or Tabelle2.Cells(Z, 1).Value = BelNr Then
If Empf = "" Or UCase(Tabelle2.Cells(Z, 3)) = UCase(Empf) Then
If KstVon = "" Or Tabelle2.Cells(Z, 4) >= KstVon Then
If KstBis = "" Or Tabelle2.Cells(Z, 4) = DatVon Then
If DatBis = "" Or Tabelle2.Cells(Z, 2) 
Private Sub DatumBis_Change()
End Sub
Private Sub DatumVon_Change()
End Sub
Private Sub KostenstelleBis_Change()
KstBis = Val(KostenstelleBis.Text)
End Sub
Private Sub KostenstelleVon_Change()
KstVon = Val(KostenstelleVon.Text)
End Sub
Private Sub BelegNummer_Change()
BelNr = Val(BelegNummer.Text)
End Sub
Private Sub Empfaenger_Change()
Empf = Empfaenger.Text
End Sub

Anzeige
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 20:15:07
onur
Das Ergebnis ist im array found().
Wenn found(0)=0 - Dann nichts gefunden.
Wenn found(xy)=0 letztes Element überschritten
(d.h bei match für zeile 1,3,5 ist found(0)=1;found(1)=3,found(2)=5, found(3-100)=0)
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 20:26:18
Sebastian
Das ist der Hammer!
Ich probiere den Code gleich heute Abend aus und benachrichtige dich ob alles funktioniert :)
Danke für deine Zeit und Hilfe!!
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 20:39:28
onur
P.S.: found solltest du auch im modul als public deklarieren statt in der Userform
Dim found(100) As Variant
Im Modul (zusammen mit den anderen):
public found(100) As Variant
dann kannst du das array übnerall benutzen.
Wenn 100 matches nicht reichen, einfach erhöhen.
Anzeige
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 20:47:30
onur
PPS: Statt "Tabelle2" musst du den Namen des Sheets eingeben, auf dem die Daten sind.
AW: VBA - Mit mehreren Bedingungen Matrix durchsuchen
23.01.2017 21:45:16
Sebastian
Dein Code funktioniert einwandfrei :)
Ich muss es jetzt nur noch mit dem weiteren Userform verbinden und die genaue Ausgabe der Suchkriterien in der Listbox definieren!
Danke nochmals für deine Hilfe!

360 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige