19.04.2017, 10:48
Excel vba: Suchmechanismus
|
19.04.2017, 10:53
19.04.2017, 11:03
Hallo Attila,
vielen Dank für den vba-code. Funktioniert im Prinzip schon mal ganz gut - aber noch nicht so ganz wie ich mir das vorstelle. Beim ersten Durchlauf passt alles. Es wird die Stelle gefunden wo sich der Sucheintrag von Zelle "C1" abbildet und "status1" wird in die benachbarte Zelle eingetragen. In Zelle "D1" steht jetzt die Zeilennummer der letzten Zeile + 1 des gesamten Datenblocks in Spalte "A". Will ich nach anderen Wertepaaren suchen und trage in "C1" einen anderen Suchbegriff ein, passiert nichts. - erst wenn ich die eingetragene Zeilennummer in "D1" wieder lösche bringt das Makro ein Ergebnis. ABER - die Markierung "status1" aus dem vorhergehenden Suchergebnis wird nun wieder gelöscht und an die neue Fundstelle gesetzt. Genau das soll aber nicht geschehen, denn ich will mir ja alle Fundstellen merken und markiert lassen. Ich will also alle Suchergebnisse sammeln. Attila, schön wäre auch noch wenn ich ev. in Zelle "E1" den strgAusgabeText frei wählen könnte. So kann ich mir verschiedene Varianten von Suchergebnisse zusammensammeln. Und ganz wichtig ist, dass nicht immer die ganze Spalte "A" durchsucht wird sondern ab einer wählbaren Beginnzeile bis zur letzten Zeile. Eine feste Startzeile könnte in Zelle "F1" deklariert werden. Wäre schön wenn Du zu all dem Genannten noch einen Lösungsvorschlag hättest!! Zum Thema alle mit Formeln oder doch mit vba-code: Mit der Datei arbeiten mehrere Leute die noch weniger von Formeln usw. verstehen als ich. Also sollte das alles automatisch ablaufen. Mir ist schon bewusst dass es manchmal einfachere Methoden gibt - aber wie gesagt - es soll für alle anwendbar sein und wenn ein guter vba-Geist im Hintergrund werkelt ist das doch auch nicht verkehrt - oder?
19.04.2017, 11:17
Hallo Erich,
da mittlerweile moniert wird, dass wir uns so ins Zeug legen, ein Vorschlag zur Güte : Stell bitte eine Beispielmappe ein, in der die zu berücksichtigenden Zellen sichtbar sind. Zeile 1 Überschrift, darunter der Eintrag. Und benenne die Zelle, die den Code starten soll.
Gruß Atilla
Hallo Erich,
also doch Handbedienung? - Dann habe ich Dich komplett falsch verstanden. Noch ein Tipp für unterschiedliche Markierung, hier wird der Status hochgezählt: Code: =WENN(ZÄHLENWENN(A$1:A1;"*" & LINKS(RECHTS(A1;4);2) & "??")>1;"Status " & ZÄHLENWENN(A$1:A1;"*" & LINKS(RECHTS(A1;4);2) & "??");"") Ansonsten überlasse ich Dich nun Atilla, da müssen nicht mehr zwei drin herum murksen. ;) Viel Spaß noch ... :D Gruß Carsten
So hier die kleine Beispielmappe:
19.04.2017, 13:00
Hallo Erich,
im Grund braucht am Code nicht viel geändert werden. Satt: Code: strgAusgabeText = "status1" nimmst Du: Code: strgAusgabeText = Range("E2") und folgende Zeile löschst Du: Code: .Range(.Cells(lngBeginn, 2), .Cells(lngLetzte + 1, 2)).ClearContents 'neuen Bereich zum Schreiben leeren
Gruß Atilla
19.04.2017, 15:11
Hallo Attila,
werde heute Abend mal testen. Dir vielen Dank und natürlich auch allen anderen die versucht haben mich auf den richtigen Weg zu bringen!
19.04.2017, 15:19
*hust* :)
SuchenTest_V3.xlsm (Größe: 19,47 KB / Downloads: 5) Vorteil ist die entfallende händische Suche ... Könnte man noch beliebig um-/ausbauen ...
19.04.2017, 15:41
*Keuchhust* [img]
Dateiupload bitte im Forum! So geht es: Klick mich! ] statt >1 sollte >=1 oder nicht? Möchte Erich den zu suchenden String nicht vorgeben? Aber ich hatte etwas anderes noch angedacht, dass man die Suchvorgänge in einer weiteren Spalte Beispielsweise speichert. Zum Nachvollziehen, welchen Murks man veranstaltet hat.
Gruß Atilla
|
|
Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste