19.04.2017, 16:11 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2017, 16:11 von DbSam.)
*bröckelhust*
(19.04.2017, 15:41)atilla schrieb: statt >1 sollte >=1 oder nicht?
Nö, aber es kommt halt darauf an, was man wie zählen will. Hier wird im Moment wie bei Dir das erste Vorkommen auch markiert, mit '(1)'. - Also diejenigen, deren Vorkommen insgesamt > 1 sind. Schau mal nach, in der IIF-Formel sind beide ZählenWenn-Formeln unterschiedlich.
(19.04.2017, 15:41)atilla schrieb: Möchte Erich den zu suchenden String nicht vorgeben?
Keine Ahnung, ich habe das mal so und mal so gelesen/ausgelegt. Mit dieser Formel geht das nicht ganz so selektiv wie mit VBA - Die alten Ergebnisse unterhalb der Startzeile würden nicht erhalten bleiben.
Ich stelle es mir halt anstrengend und fehleranfällig vor, den ganzen Murks per Hand abzugrasen ... So werden alle Duplikate markiert.
(19.04.2017, 15:41)atilla schrieb: 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.
Ja, mein Murks ist auch ausbaufähig. Zumindest erscheint mir eine zusätzliche 'Bis-Zeilen-Variable' unbedingt notwendig, um nachträglich nicht immer bis zur letzten Zeile zu prüfen. (So wie die V3 jetzt nach dem Öffnen ausschaut geht das nur, wenn man brav nach jedem Import nur die neuen Daten prüft ...) Man könnte auch noch ... und auch ...
Aber wie gesagt, so richtig verstehe ich die Anforderung immer noch nicht.
Gruß Carsten
Edit zum Suchbegriff: Man könnte den wieder einbauen und zusätzlich noch eine Weiche: Wenn Suchbegriff gefüllt, dann nur nach diesem Begriff suchen, wenn leer, dann alle Duplikate. Problem: die alte Suche bleibt nicht bestehen.
Man müsste in zwei Spalten ausgeben: allgemeine Duplikatssuche per Formel, spezielle Suche in der anderen Spalte. Also ein Mix aus beiden ...
ich war bis jetzt nicht am Thread beteiligt, gibt es noch Lösungsbedarf??
Ich habe die Beispieldatei 2 geladen und meine dazu, wenn man nach dem 1. Suchlauf weitersuchen muss kann man den naechsten Suchwerte in Zelle C3 abwaerts laden, ebenso die Startzeile und den AusgabeText. Das könnte man automatisieren.
Dazu müsste ich nur genau wissen was du suchen willst und waran ich erkenne aber welcher neuen Zeile du mit dem naechsten Scuhlauf anfaengst?? Wenn in "PR" noch weiteres gesucht werden muss, Text oder Zahlen, kann man das evtl. alles in einem Rutsch machen. Mit dem normalen Suchlauf kannst du nicht in einer Zelle 2 Werte suchen, mit Vba ist das kein Problem. Da "haeckelt" man sich den Suchlauf so wie man es will, nach "Strickmuster".
Ich müsste dazu konkrete Infos haben wie du jetzt suchst, und wonach du genau suchst?
Attila, Dein vba-code, mit den nachträglich kleinen Änderungen, funktioniert gut. Carsten, auch Deine Version mit den Formeln hat einen gewissen Charme.
Ich versuche mein Vorhaben nochmal vereinfacht zu beschreiben - basierend auf der eingestellten Version V2. Alle Datenstrings sind in Spalte "A" abwärts aufgelistet. Die Datenstrings sind immer gleich aufgebaut - enthalten aber auch Datumselemente - die pro erhaltenem Datensatz unterschiedlich sind. Die Suchstelle kommt pro Datensatz in einem String bei gleichem Datum immer nur einmal vor. Die Suchstelle kann aber doch mehrfach vorkommen (Widerspruch NEIN!) aber nur wenn das Datum im String eines Datensatzes unterschiedlich ist! Und genau das ist der Grund warum ich ab einer bestimmten Startzeile abwärts suchen will. Ich gebe nämlich die Zeile an ab der das enthaltene Datum im String wechselt. Ist unschön, ich weiß, weil manuelle Eingabe - hab da aber noch keinen Plan - denn sonst müsste man den String noch mehr zerlegen und eventuell auch noch eine Eingabe zum Datum machen.
Und ja, ich gebe das Suchkriterium jedesmal manuell ein. Hab noch keine Möglichkeit gefunden die Information die mein Auge von einem beschrifteten Gegenstand erfasst direkt in den PC zu übertragen. :s
Hoffe die Verwirrung nicht noch verschlimmert zu haben!
Beispieldatei mit den kleinen Änderungen ist nachmals angehängt.
19.04.2017, 20:52 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2017, 20:52 von DbSam.)
Hallo Erich,
Du schreibst:
(19.04.2017, 19:51)sharky51 schrieb: Die Datenstrings sind immer gleich aufgebaut ... Die Suchstelle kommt pro Datensatz in einem String bei gleichem Datum immer nur einmal vor. Die Suchstelle kann aber doch mehrfach vorkommen (Widerspruch NEIN!) aber nur wenn das Datum im String eines Datensatzes unterschiedlich ist! Und genau das ist der Grund warum ich ab einer bestimmten Startzeile abwärts suchen will. Ich gebe nämlich die Zeile an ab der das enthaltene Datum im String wechselt.
Also zuerst einmal: Wenn alle Strings identisch aufgebaut sind, dann kann man den Datumsstring gut identifizieren und zur Suche nutzen. Ebenso beim Suchstring.
Was mir immer noch nicht klar ist und aus Deiner Beispieldatei auch nicht hervor geht: Welche Datensätze sollen denn nun im Beispiel markiert werden?
Im Beispiel alle grünen Sätze oder gar keiner?
Oder könnte es doch einen Fehler geben und der Suchstring kommt pro Datum zweimal vor und nur diese beiden sollen markiert werden?
Soll ausgehend von den neuen Sätzen von ganz oben in den alten Strings gesucht werden, aber nur die Markierung bei den neuen Sätzen pro Datum und Suchstring gesetzt werden?
Was sieht Dein Auge? ;) Und was machen dann Deine Hände?
Wenn nicht alle grünen Strings falsch sind, könntest Du mal einen solchen zu suchenden Fall posten?
Mit etwas ratlosen Grüßen Carsten
PS: Wenn ich mich recht erinnere, dann hatte ich schon nach einem Datum gefragt. Du hattest verneint und jetzt gibt es doch eins.
nur um die Wartezeit auf die Reaktion von Erich zu verkürzen: :19:
Code:
Sub datum_extrahieren()
Dim i As Long Dim lngLetzte As Long
With Sheets("Tabelle1") lngLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(2, 7), .Cells(lngLetzte + 1, 7)).ClearContents 'neuen Bereich zum Schreiben leeren For i = 1 To lngLetzte On Error Resume Next .Cells(i, 7) = CDate(Right(Split(.Cells(i, 1), ".")(0), 2) & "." & Split(.Cells(i, 1), ".")(1) & "." & Left(Split(.Cells(i, 1), ".")(2), 2)) On Error GoTo 0 Next i End With
19.04.2017, 22:06 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2017, 22:06 von DbSam.)
Du wieder ... :D
Anstatt Dir zu überlegen was wir nun genau suchen und markieren sollen, machst Du wieder nur Spielerei ... :26: Nee, nee, so werden wir niemals fertsch ...
Gruß Carsten :D
PS: Ich habe so die leise Ahnung, dass sich noch ein zu suchender Wert klammheimlich in den Strings versteckt ... ;)
19.04.2017, 22:58 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2017, 22:58 von sharky51.)
Also meine Herren, Ihr gebt ja richtig Gas.
Carsten Du schreibst:
Zitat:Was mir immer noch nicht klar ist und aus Deiner Beispieldatei auch nicht hervor geht: Welche Datensätze sollen denn nun im Beispiel markiert werden? Im Beispiel alle grünen Sätze oder gar keiner? Oder könnte es doch einen Fehler geben und der Suchstring kommt pro Datum zweimal vor und nur diese beiden sollen markiert werden? Soll ausgehend von den neuen Sätzen von ganz oben in den alten Strings gesucht werden, aber nur die Markierung bei den neuen Sätzen pro Datum und Suchstring gesetzt werden?
In meiner Beispieldatei habe ich die Blöcke farblich markiert die ein gleiches Datum im String haben - dies um zu zeigen dass ein Suchwert auch doppelt vorkommen kann, aber zu einem anderen Datensatz gehört. Das bedeutet der Suchstring kommt pro Datum nur einmal vor. Um nicht in den alten Datensätzen zu suchen war meine Idee erst ab Beginn des neuen Datensatzes zu suchen - in meinem Beispiel ab Zeile 8. Deine Idee alles von oben zu durchsuchen und nur die Markierung bei den neuen Datensätzen pro Datum und Suchstring zu setzen wäre natürlich anstrebenswert - aber dazu muss man ja das Datum als weiteres Kriterium angeben.
Mein Auge sieht auf einem Etikett eine Codierung die letztendlich auch diese Suchwerte enthält. Meine Hände geben dann die Suchwerte in die Tabelle ein und ich erwarte dann ein Suchergebnis das dann markiert werden soll. Wie das aussehen soll ist ja bereits in dem Beispiel abgebildet.
19.04.2017, 23:51 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2017, 23:52 von DbSam.
Bearbeitungsgrund: V4 hinzugefügt
)
Hallo Erich,
Du schreibst:
(19.04.2017, 22:58)sharky51 schrieb: In meiner Beispieldatei habe ich die Blöcke farblich markiert die ein gleiches Datum im String haben - dies um zu zeigen dass ein Suchwert auch doppelt vorkommen kann, aber zu einem anderen Datensatz gehört. Das bedeutet der Suchstring kommt pro Datum nur einmal vor.
Ich versuche das zusammen zu fassen: Wenn der Suchstring pro Datum nur einmal vorkommt, dann ist alles in Ordnung und es muss nichts markiert werden. Es könnte aber vielleicht passieren, dass ein Suchstring pro Datum zweimal vorkommt und nur diese beiden Strings müssen gefunden und markiert werden. So habe ich Dich jetzt verstanden und das gewünschte Ergebnis sieht so aus:
Der Suchstring kommt pro Datum nur einmal vor ... muss aber trotzdem markiert werden!
Warum? Aus der Fülle der ankommenden Datenstrings, oft bekomme ich mehrere hundert dieser Strings zur Bearbeitung. Daraus muss ich nach bestimmten Vorgaben eine Untermenge zusammensuchen. Also aus einem bunten Strauß soll ich einige Blümchen herauspicken und zu einem neuen Strauß (Datensatz) zusammenfügen. Deshalb müssen die Markierungen sein und zum herausfiltern auch gleichlautend sein.
Aber Dein Vorschlag ist auch super...den kann ich sicher an anderer Stelle gut gebrauchen!
(20.04.2017, 00:11)sharky51 schrieb: Daraus muss ich nach bestimmten Vorgaben eine Untermenge zusammensuchen. Also aus einem bunten Strauß soll ich einige Blümchen herauspicken und zu einem neuen Strauß (Datensatz) zusammenfügen. Deshalb müssen die Markierungen sein und zum herausfiltern auch gleichlautend sein.
Gut, verstanden. Sicherlich kannst Du diese "bestimmten Vorgaben" näher erläutern?