Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel vba: Suchmechanismus
#31
*bröckelhust*

(19.04.2017, 14: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, 14: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, 14: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 ...
Antworten Top
#32
Hallo Erich,

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?

mfg Gast 123
Antworten Top
#33
Hallo zusammen,

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.


Angehängte Dateien
.xlsm   SuchenTest_V2.xlsm (Größe: 17,95 KB / Downloads: 4)
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#34
Hallo Erich,

Du schreibst:
(19.04.2017, 18: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.
Antworten Top
#35
Hallo zusammen,

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

End Sub


Das Datum wird in Spalte G geschrieben.
Gruß Atilla
Antworten Top
#36
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 ... ;)
Antworten Top
#37
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.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#38
Hallo Erich,

Du schreibst:
(19.04.2017, 21: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:

.xlsx   SuchenTest_V4.xlsx (Größe: 10,18 KB / Downloads: 3)

In die Datei habe ich in Spalte A extra zwei Fehler eingebaut.

War das Dein Ziel, Dein Wunsch?



Gruß Carsten
Antworten Top
#39
Hallo Carsten,

nein, nein.....so nicht...

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!
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#40
(19.04.2017, 23: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?


Gruß Carsten
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste