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

Mehrere Werte einer Suche ausgeben - VBA

Mehrere Werte einer Suche ausgeben - VBA
23.02.2024 14:27:44
XYZ_Excel
Guten Tag,

ich habe schon seit längerem ein Problem mit einer Suche. Und zwar habe ich verschiedene Nummern, die mit 70 anfangen (ca. 200, Blatt "70"). Diese können verschiedenen Endteilenummern zugeordnet werden. Diese Zuordnung erfolgt im Blatt "Kalk". Es ist so, dass die 70er Nummer in der Spalte Ressource gesucht werden kann und dann in Spalte A entweder verschiedene 14-stellige Endteilenummern auftauchen oder weitere 70er Nummern. Falls nochmals eine 70er Nummer auftaucht muss erneut gesucht werden, bis die Endteilenummer vorhanden ist. Die Ausgabe soll in einem neuen Blatt, wie im Blatt "Final" dargestellt, erfolgen. Dabei wird pro gefundener 14 stelliger Teilenummer eine neue Zeile erzeugt und die zugehörige 70er Nummer davorgeschrieben.

Ich habe schon verschiedene Runden mit find-Funktionen in VBA gedreht aber leider ohne Erfolg. Ich hoffe, dass mir hier schnellstmöglich geholfen werden kann.
Die Beispieldatei habe ich hochgeladen (siehe Link).

Danke und viele Grüße,
XYZ_Excel


https://www.herber.de/bbs/user/167271.xlsx 

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Werte einer Suche ausgeben - VBA
23.02.2024 14:40:50
Fennek
Hallo,

als erster Ansatz:


Sub T_1()
Sheets("Kalk").Activate
With Sheets("70 final")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Left(Cells(i, "K"), 2) = "70" Then
.Cells(i, 5) = Cells(i, "K")
.Cells(i, 6) = Cells(i, 1)
End If
Next i
End With
End Sub


mfg
AW: Mehrere Werte einer Suche ausgeben - VBA
23.02.2024 14:53:07
XYZ_Excel
Guten Tag,

Danke für die schnelle Hilfe! Jedoch wird jetzt kein neues Blatt erzeugt und die Ergebnisse landen nicht in Spalte A und B bzw. die 70er Nummern sind nicht mehr in der gleichen Reihenfolge sortiert. Zur letzten 70er Nummer entsteht ein großer Leerbereich, wie kann ich das noch beheben?

Danke!

Anzeige
AW: Mehrere Werte einer Suche ausgeben - VBA
23.02.2024 15:06:33
RPP63
Moin!
Du könntest natürlich auch eine simple Formellösung nehmen.
Die einzige Formelzelle ist M2.
 MN
1RESSOURCENummer
27000066000193312KS0030
37000066000193210EZ9999
47000066100193210EZ9999
57000066000193212KE0001
67000066100193212KE0001
77000066000193212KS0030
87000066100193212KS0030
97001834503839100EZ0000
107001834503839102KE0001
117001834503839102KS0015
127001834503839102KS0030
137000066005750510EZ9999
147000066105750510EZ9999
157000066005750512KE0001
167000066105750512KS0030
177000230470018845
187001884500558752KS0400
19  

ZelleFormel
M2=SPALTENWAHL(FILTER(A2:K25;LINKS(K2:K25;2)="70");11;1)


Gruß Ralf
Anzeige
AW: Mehrere Werte einer Suche ausgeben - VBA
23.02.2024 15:30:45
XYZ_Excel
Hallo Ralf,

danke für die Hilfe, jedoch funktioniert das nur in dem Minimalbeispiel. In der richtigen Datei gibt es auch 70er Nummern, die ich nicht möchte. Das heißt es soll nur zu vorgegebenen 70er Nummern die Endteilenummer gezogen werden, deshalb funktioniert, m.E. eine einfache Formel nicht.

Danke und viele Grüße,
XYZ_Excel
Eine Antwort …
23.02.2024 15:35:49
RPP63
… kann immer nur so gut wie die Frage sein.
Selbstverständlich kennt FILTER() nahezu beliebig viele ODER- und UND-Kriterien.
Aber das wirst Du sicherlich wissen.
AW: Eine Antwort …
23.02.2024 15:39:13
XYZ_Excel
Das stimmt, in dem Fall war meine Frage schwammig formuliert.
Ziel ist es zu bestimmten 70er Nummern, die in einem Blatt stehen die zugehörigen Endteilenummern sortiert untereinander in ein neues Blatt zu kopieren, so dass nachher eine Stückzahlbeziehung anhand der 14-stelligen Teilenummern hergestellt werden kann. Laut meines Wissens funktioniert das mit dem Filter nicht und ich brauche eine VBA-Programmierung. Würde mich aber ansonsten gerne auch eines besseren belehren lassen..

Anzeige
AW: Eine Antwort …
23.02.2024 15:44:38
RPP63
Dann stelle doch einfach ein aussagekräftiges Beispiel ein.
Excel kennt mittlerweile SORTIEREN und SORTIERENNACH
Das Ganze in eine strukturierte LET und selbst komplizierte Algorithmen lassen sich ohne VBA auswerten.
Ich bin jetzt allerdings erst mal offline.
Gruß Ralf
AW: Eine Antwort …
23.02.2024 16:01:38
XYZ_Excel
Anbei das neue, komplette, Beispiel.
Sorry aber ich verstehe den Plan dahinter irgendwie nicht. Meine Erfahrungen mit "Sortieren" sind aber doch auch recht beschränkt.

https://www.herber.de/bbs/user/167278.xlsm
Anzeige
AW: Eine Antwort …
23.02.2024 17:34:08
RPP63
Es reicht doch, um meine Formel ein SORTIEREN() zu wickeln:
 MN
1RESSOURCENummer
27000066000193312KS0030
37000066000193210EZ9999
47000066000193212KE0001
57000066000193212KS0030
67000066005750510EZ9999
77000066005750512KE0001
87000066100193210EZ9999
97000066100193212KE0001
107000066100193212KS0030
117000066105750510EZ9999
127000066105750512KS0030
137000230470018845
147001834503839100EZ0000
157001834503839102KE0001
167001834503839102KS0015
177001834503839102KS0030
187001884500558752KS0400
19  

ZelleFormel
M2=SORTIEREN(SPALTENWAHL(FILTER(A2:K25;LINKS(K2:K25;2)="70");11;1))

Oder habe ich da wieder etwas missverstanden?
Denn schließlich habe ich 5 Treffer mehr (rechts ist meine Formellösung:
 ABCDE
1     
27000066000193312KS0030 7000066000193312KS0030
37000066000193210EZ9999 7000066000193210EZ9999
47000066000193212KE0001 7000066000193212KE0001
57000066000193212KS0030 7000066000193212KS0030
67000066005750510EZ9999 7000066005750510EZ9999
77000066005750512KE0001 7000066005750512KE0001
87000066100193210EZ9999 7000066100193210EZ9999
97000066100193212KE0001 7000066100193212KE0001
107000066100193212KS0030 7000066100193212KS0030
117000066105750510EZ9999 7000066105750510EZ9999
127000230470018845 7000066105750512KS0030
137001834503839100EZ0000 7000230470018845
14   7001834503839100EZ0000
15   7001834503839102KE0001
16   7001834503839102KS0015
17   7001834503839102KS0030
18   7001884500558752KS0400


Gruß Ralf
Anzeige
AW: Eine Antwort …
26.02.2024 08:22:27
XYZ_Excel
Hallo Ralf,

ich habe deine Formel ausprobiert und bei mir kommt da ein Überlauf-Fehler, wenn ich es in der richtigen Datei probiere. Was bedeutet denn genau die 11 und die 2 am Ende der Formel? Und warum schreibst du die Formel in M2, wo doch eigentlich die 70er Nummern stehen? Dann überschreibe ich diese ja?

Du hast mehr Ergebnisse, da es eigentlich so sein sollte, dass aufgrund der 70002304 die 7018845 gefunden wird. Da diese Nummer noch keine 14 Stellen hat soll das VBA weitersuchen und dann findet es die 70018845, die dann zur 0389100EZ0000 gehört. Die 70018345 ist nicht Teil des gesuchten Nummernkreises. Da besteht ein Tippfehler in der händischen Auswertung. Aber wenn du nach den Nummern mit deiner Formel im Blatt "70" suchst, was eigentlich die Aufgabe wäre, dann dürftest du gar nicht auf die 70018345 kommen, da hier nur nach 70000660, 70000661 und 70002304 gesucht wird.

Danke und viele Grüße,
XYZ_Excel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige