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

Zellsuche anhand von 3 Bedingungen

Zellsuche anhand von 3 Bedingungen
10.08.2020 22:55:24
3
Hallo zusammen,
bin leider aktuell noch blutiger Anfänger in Sachen VBA und schreibe gerade an meinem ersten größeren Makro. Bisher hat mir das Forum hier (passiv) prima geholfen, habe sehr viele Ansätze für diverseste Problemstellungen gefunden, angepasst und verwendet, aber nun komme ich leider nicht weiter. Habe schon einiges versucht abzuwandeln, das funktionierte aber leider nicht, dazu fehlt mir definitiv noch das richtige Handwerkszeug ( =Wissen)....
Habe mal eine Datei hier angefügt, die komplett entfremdet ist, aber anhand derer man das gut veranschaulichen kann, was für den Teil des Makros fehlt.
https://www.herber.de/bbs/user/139568.xlsx
Ich möchte in einer Tabelle (hier "TabelleSLF") eine Zelle suchen anhand von 3 Bedingungen.
Wenn ich zum Beispiel eine Stadt mit erstem Buchstaben B und zweitem Buchstaben I haben möchte, soll das Makro die Spalte A nach dem Buchstaben "B", die Spalte B nach dem Buchstaben "I" und anschließend die Zeile 1 nach "Stadt" durchsuchen.
Das Makro soll also eine Zelle finden, auf die alle drei Bedingungen zutreffen und den darin enthaltenen Wert kopieren.
Hatte hierfür schon diverse Versionen von If-And-Then-Else etc ausprobiert, aber das wollte alles nicht so, wie ich das wollte... Ähnliche Makros, die ich zum Ansatz nehmen wollte, haben z.B. nur nach ganzen Spalten/Zeilen gesucht, u.a. auch mit weniger Bedingungen...
Den kopierten Wert soll das Makro auf einem zweiten Tabellenblatt "Ausgabe" in einer ähnlichen Tabelle (die auch schon andere Werte enthalten kann) richtig einsortieren, also auch hier muss sich das Makro Spalte A, Spalte B und Zeile 1 "ansehen". An der Stelle dürfte der Code ja nahezu gleich aufgebaut sein wie die vorangegangene Suche, nur eben mit anderem Folgebefehl zum Einfügen statt Kopieren...?
Hat hier evtl jemand schonmal ein derartiges Suchmakro mit drei Bedingungen zur Lokalisierung der Zelle geschrieben und könnte mir weiterhelfen?
Viele Grüße
Nephty

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

Betreff
Datum
Anwender
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 00:12:52
3
Hallo,
z.B. mit dem Autofilter:
Public Sub aaa()
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Ausgabe")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
Worksheets("TabelleSLF").Range("$A$1").AutoFilter Field:=1, Criteria1:=.Cells(i, "A")
Worksheets("TabelleSLF").Range("$A$1").AutoFilter Field:=2, Criteria1:=.Cells(i, "B")
If Worksheets("TabelleSLF").AutoFilter.Range.Columns(1) _
.SpecialCells(xlCellTypeVisible).Cells.Count = 2 Then
With Worksheets("TabelleSLF").AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns("C:E").Copy
End With
.Cells(i, "C").PasteSpecial Paste:=xlPasteValues
End If
Next i
If Worksheets("TabelleSLF").AutoFilterMode Then
Worksheets("TabelleSLF").AutoFilterMode = False
End If
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 07:43:55
3
Hallo Werner,
vielen Dank für deine schnelle Antwort!
Zum kompletten Ausfüllen funktioniert der Autofilter sehr gut, allerdings würde ich in meinem Makro gerne vorgeben, wonach er suchen soll. Also wirklich nur eine einzelne Zelle ausfindig machen und rüberkopieren, nicht alle vorhandenen Zellen.
Der zu suchende Wert kann auch direkt in den Code und muss nicht beim Durchlauf abgefragt werden.
In meinem Beispiel soll es nach dem Wert "B" in Spalte A suchen, nach dem Wert "I" in Spalte B und anschließend nach dem Wert "Stadt" in Zeile 1...
Sodass es dann nur den Zelleninhalt kopiert, der eine "Stadt" mit erstem Buchstaben "B" und zweitem Buchstaben "I" enthält. - In dem Beispiel wäre der zu kopierende Wert der gefundenen Zelle dann "Bingen". Und nur das soll dann an der richtigen Stelle im Tabellenblatt "Ausgabe" einsortiert werden.
Kann man den Autofilter da irgendwie erweitern, sodass es einzelne Werte sucht, oder braucht das einen komplett anderen Codeansatz?
Viele Grüße
Nephty
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 10:23:13
3
Eine Anmerkung meinerseits fehlte oben leider noch:
Das gesuchte Makro muss zusätzlich auch funktionieren, wenn Start und Zieltabelle teils unterschiedliche Spalten und Zeilen haben. Die zu kopierenden Spalten/Zeilen sind jedoch auf jeden Fall in beiden Tabellen vorhanden, das ist sichergestellt.
Die Ausgabetabelle hat z.B. zusätzliche Spalten "Tier" und "Baum", sowie zusätzliche Zeilen mit weiteren Buchstabenkombinationen.
Hier die ergänzte Beispieldatei:
https://www.herber.de/bbs/user/139573.xls
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 10:30:52
3
Hallo,
würdest du mal erklären, was du eigentlich vor hast. Ich nehme mal nicht an, dass du hier Stadt Land Fluß spielen willst.
Was machst du, wenn du mehrfache Treffer hast?
Beispiel:
Eingabe von C und O, gesucht Stadt - vorhanden sind Coesfeld und Cottbus - was nun?
Gruß Werner
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 11:00:15
3
Hallo Werner,
nein, es geht natürlich nicht um Stadt-Land-Fluß, das war nur ein Beispiel, damit es etwas einfacher zu händeln ist und die echten Daten hier nicht im Netz identifizierbar sind. :-)
Es geht um etwas umfangreichere Tabellen, bei denen Daten (in Form von Zahlen) bestimmten Identifizierungsmerkmalen zugeordnet sind. Ein paar der Zahlen werden erst im Nachhinein "nachgeliefert" und sollen im großen Datentabellenblatt dann richtig zugeordnet werden.
Mehrfachtreffer sind von vornherein ausgeschlossen, da anhand der beiden Spalten in den Bedingungen (im Beispiel die Spalten A und B) eine eindeutige Zuordnung getroffen werden kann, die wiederholen sich hier definitiv nicht.
Das Beispiel Stadt-Land-Fluß lässt hier theoretisch die Mehrfachtreffer zu, da muss ich dir zustimmen. Aber das dann ausnahmsweise ignorieren, dieser Fall wird definitiv nicht vorkommen. :-)
Viele Grüße
Nephty
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 11:34:36
3
Noch eine Ergänzung:
Es wird ein externes Makro zur Bearbeitung von immer neuen, einzelnen Dateien.
Diese Dateien sind an sich nahezu gleich aufgebaut, enthalten aber natürlich jeweils andere Zahlen/Daten.
Im Code können die gesuchten Bedingungen tatsächlich genau festgeschrieben werden (also "suche nach Zelle, auf die "B", "I" und "Stadt" zutrifft") und benötigen keine extra auftauchende Abfrage mit MsgBox oder dergleichen.
Die gesuchten Bedingungen "B", "I" und "Stadt" sind in den einzelnen Dateien immer gleich benannt, da die nachgelieferten Zahlen immer den selben Identifizierungsmerkmalen entsprechen. Nur die Position kann sich ändern, daher muss wirklich nach "B", "I" und "Stadt" gesucht werden und es kann nicht einfach mit Column und Row gelöst werden.
Ich hoffe, das ist einigermaßen verständlich formuliert. Es ist nicht einfach, so um den "heißen Brei" herumzureden :D Aber zu den Daten, um die es fern von Stadt-Land-Fluß geht, kann ich nicht allzu viel erzählen.
Hoffe, dass es trotzdem mit meinem Stadt-Land-Fluß-Beispiel weitergehen kann. Wie oben beschrieben, geht es also wirklich rein um die Suche anhand von 3 Bedingungen und das kopieren der gefundenen Werte in eine gleichermaßen ermittelte Position.
Viele Grüße
Nephty
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 12:56:28
3
Hallo,
du suchst also immer nach den festen 3 Kriterien B / I / Stadt?
Im Blatt "TabelleSLF" und im Blatt "Ausgabe" gibt es jeweils nur einen Treffern auf den alle drei Bedingungen zutreffen?
Gruß Werner
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 13:31:08
3
Genau, so ist es gedacht, ja :-) Eine einzelne Zelle suchen, den Wert darin kopieren und in das passende Feld mit den vorgegebenen Kriterien einfügen.
Bei dem Beispiel wäre es wie gehabt: Aus dem Tabellenblatt "TabelleSLF" den Wert der Zelle, auf welche die drei festen Kriterien zutreffen
"B" in Spalte A
"I" in Spalte B
"Stadt" in Zeile 1
in das Tabellenblatt "Ausgabe", in die Zelle mit den ebenfalls 3 festgesetzten Kriterien, hineinkopieren.
Das ganze würde ich noch entsprechend für die anderen wenigen nachgelieferten Zahlen/Daten wiederholen, aber da wäre der Code ja dann der selbe, nur beispielsweise dann mit "A", "R", "Land".
Somit wäre der Ablauf im Makro beispielsweise
- .........
- Tabellenblatt TabelleSLF - Suche Zelle mit Kriterien: B, I, Stadt
- Kopiere Wert
- Tabellenblatt Ausgabe - Suche Zelle mit Kriterien: B, I, Stadt
- Füge Wert ein
- Tabellenblatt TabelleSLF - Suche Zelle mit Kriterien: A, R, Land
- Kopiere Wert
- Tabellenblatt Ausgabe - Suche Zelle mit Kriterien: A, R, Land
- Füge Wert ein
- .......
Viele Grüße
Nephty
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 13:57:15
3
Hallo,
nein, dann ist es eben nicht so. Es handelt sich nicht immer um die gleichen Kriterien. Dann müsste je jedesmal der Code angepasst werden.
Was glaubst du eigentlich warum ich immer nach den festen 3 Kriterien geschrieben habe.
Es handelt sich doch wohl um mehrere verschiedene Datensätze die da "nachgeliefert" werden.
Und was bitte bedeutet denn "nachgeliefert". Am Anfang hatte ich einen Code mit einer Schleife gepostet - aber das wolltest du nicht. Willst du denn ernsthaft bei z.B. 10 verschiedenen Datensätzen 10 mal das Makro mit unterschiedlichen Kriterien anstoßen?
Es ist lästig, wenn man ständig wegen Infos nachbohren muss.
Wie wäre es denn, wenn du endlich mal Schritt für Schritt beschreiben würdest, was da nacheinander ablaufen soll.
-wie kommen die "nachgelieferten" Daten?
-so sind die "nachgelieferten" Daten denn dann in deiner Datei?
-um wieviele Datensätze kann es sich dabei handeln?
-wie sieht denn so ein "nachgelieferter" Datensatz anhand deines Stadt/Land/Fluß Beispiels aus?
Das ist jetzt mein letzter Versuch.
Gruß Werner
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 17:14:39
3
Ich würde wirklich gerne eine hintereinander geschaltete Suche ohne Schleife einbauen, da die Daten jedes Mal anders sortiert sein können und nicht in der Tabelle zusammenhängen. Es sind auch immer mal Daten dazwischen, die nicht kopiert werden sollen.
Es sind nur vereinzelte Daten/Zahlen (gehen wir mal hier im Beispiel von 3 aus) die übernommen werden sollen, das Makro müsste definitiv nicht 100 mal in Folge nach 3 Kriterien suchen.
Erster Teil-Code mit B, I und Stadt ab-arbeiten, dann der gleiche Code nochmal, nur setze ich statt B, I und Stadt dann eben z.B. A, R und Land als Kriterien ein. Dann das gleiche mit dem dritten Teil-Code. Damit wäre ich vollkommen zufrieden und das wäre in meinem Fall mEn auch am wenigsten fehleranfällig.
Die nachgelieferten Daten kommen immer als komplette Datei, nicht häppchenweise.
Gehen wir der Einfachheit halber mal davon aus, dass ich das folgendermaßen gestalte:
- Makro öffnet Auswahlfenster
- User soll den Pfad der Datei mit den nachgelieferten Zahlen/Daten auswählen
- Makro öffnet nachgelieferte Datei
- Makro kopiert das Tabellenblatt aus dieser nachgelieferten Datei in die Hauptdatei (gedacht als temporäres Tabellenblatt)
- Makro schließt die nachgelieferte Datei
- Makro sucht in kopiertem Tabellenblatt nach Zelle mit 3 Kriterien (1)
- Makro kopiert Wert (1)
- Makro sucht in Ziel-Tabellenblatt nach Zelle mit 3 Kriterien (1)
- Makro fügt Wert ein (1)
- Makro sucht in kopiertem Tabellenblatt nach Zelle mit 3 Kriterien (2)
- Makro kopiert Wert (2)
- Makro sucht in Ziel-Tabellenblatt nach Zelle mit 3 Kriterien (2)
- Makro fügt Wert ein (2)
- Makro sucht in kopiertem Tabellenblatt nach Zelle mit 3 Kriterien (3)
- Makro kopiert Wert (3)
- Makro sucht in Ziel-Tabellenblatt nach Zelle mit 3 Kriterien (3)
- Makro fügt Wert ein (3)
- Makro löscht temporäres, kopiertes Tabellenblatt mit nachgelieferten Daten
Mir fehlt nur der Ansatz für den Such/Kopier/Such/Einfüge-Code, um den es hier im Thread geht. Alles andere bekomm ich hin, da ich an anderer Stelle schonmal etwas ähnliches gebastelt habe.
Habe jetzt versucht, das möglichst gut und trotzdem übersichtlich darzustellen:
https://www.herber.de/bbs/user/139581.xls
Vielen Dank für Deine Mühe! Ich versuche schon, es so genau wie möglich zu beschreiben, aber ich bin eben absoluter Neuling und bitte daher um ein wenig Nachsicht, wenn etwas nicht direkt zu 100% genau beschrieben ist. :-)
Viele Grüße
Nephty
Anzeige
AW: Zellsuche anhand von 3 Bedingungen
11.08.2020 18:39:53
3
Hallo,
und wieder Änderungen. Seither waren die Spalten im Blatt "Tabelle1SFZ" immer gleich, jetzt nicht mehr.
Ok, dann hier deine Datei mit Makro. Die passende Spalten im Blatt "TabelleSFZ" und im Blatt "Ausgabe" sucht sich der Code.
https://www.herber.de/bbs/user/139583.xlsm
Gruß Werner
AW: Zellsuche anhand von 3 Bedingungen
12.08.2020 06:35:29
3
Es funktioniert perfekt, juhu! :-)
Vielen, vielen Dank für deine Geduld und Mühe!
Viele Grüße
Nephty
Gerne u. Danke für die Rückmeldung. o.w.T.
12.08.2020 08:53:17
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige