Excel vba: Suchmechanismus
#71
Hallo Erich,

was ich damit meinte?
Naja, dass da aus meiner Sicht für eine sichere und einfache Bedienung des Konstrukts noch einige Dinge fehlen.
Zum Beispiel würde ich mir als User die gefundenen Artikel pro Kdn-/Bestell-Nr. gern noch in die Zwischenablage kopieren wollen ...
Und noch mehr solche Dinge ...
Aber da müsste man noch mehr um die Hintergründe Bescheid wissen.

Also ich meine, wenn man schon so einen Aufwand treibt, dann muss dabei für den Anwender 'mehr um die Ecke' kommen.


Könntest Du bitte Deinen Zwischenstand hochladen, damit ich meinen Pfusch noch etwas verschlimmbessern kann?
Ich habe nämlich nächste Woche nicht viel Zeit für das Forum, da ich unterwegs bin.


Gruß Carsten
Top
#72
Hallo Carsten,

sorry - leider konnte ich erst jetzt reagieren.
Ich habe mal als Zwischenstand meine Bemühungen und Deine Ausarbeitung zusammengeführt und Deine Änderungen noch eingepflegt.

Btw. die Headder vor jedem Datensatz sollten bleiben.


Angehängte Dateien
.xlsm   ErichsSuche_V5_Work.xlsm (Größe: 74,31 KB / Downloads: 2)
Top
#73
Hallo Erich,


habe schnell noch ein paar Änderungen eingebaut, sollte jetzt so laufen.

Du kannst jetzt beim Start des Forms alle nötigen Einstellungen übergeben.
Im Formular habe ich alle direkten Bezüge ersetzt. (Hoffe ich jedenfalls. Habe auf die Schnelle keinen Fehler bemerkt)
D.h., die Tabelle ist jetzt im Code nicht mehr fest definiert, Du kannst Spalten hinzufügen und dann den Aufruf entsprechend anpassen.
Ebenfalls ist die Spalte 'A' nicht mehr in Stein gemeiselt.
   

Vom Prinzip her kann man nun dieses 'frmSuche' von jedem Sheet aus mit anderen Einstellungen aufrufen, ohne etwas programmieren zu müssen.
Natürlich ist nicht alles flexibel, es kann nur 3 Offsetspalten geben. Dies variabel zu bauen war nicht gefordert.


Habe im Form auch noch Zeugs hinzugefügt.
Das Zeilen-Control ist jetzt beim Start auch leer, Du kannst was reinschreiben oder auch nicht.

Die Suche wurde angepasst:
Beispiel: "?#*06.03.17*RB??"
Die Suche geht also grundsätzlich davon aus, dass das zweite Zeichen immer ein '#' ist. Damit werden die Headerzeilen nicht aus Versehen in die Suche einbezogen.
Du kannst auch im Suchtext mit '*' suchen und auch Deine Nummer setzen, also '*B' oder 'R*'. Dieses Sternchen wird in der Suche durch ein Fragezeichen ersetzt.


Disclaimer:
Dieses Coding erhebt keinen Anspruch auf Genialität und dient auch nicht unbedingt zu Lehrzwecken, dafür hatte ich keine Zeit.
Ich habe es auch versucht so zu schreiben, dass Du beim Lesen und/oder Debuggen weitestgehend alles verstehen kannst/solltest. Ich habe also alles etwas 'länglich' geschrieben. Dass man es besser schreiben kann, das ist mir bewusst. Aber Du musst es halt auch noch lesen/verstehen/erweitern können - ohne unsere Hilfe.

Schau mal rein und teste bitte:

.xlsm   ErichsSuche_V6_Work.xlsm (Größe: 90,69 KB / Downloads: 4)

Mit Deinen Farbmarkierungen in Deinem Userform1 konnte ich nichts anfangen.
Die habe ich auch nicht weiter beachtet, da ich nur die paar Minuten Zeit hatte.



Gruß Carsten

PS:
Aus meiner Sicht habe ich Deinen Wunsch nun abgefertigt, mehr konnte ich nicht erkennen/erahnen.
Und verstanden habe ich auch nicht alles. Erst recht nicht Offset 1,2 und 3. :)



PPS:
Wieder 40 Min. meines Lebens für Erich 'verkokelt' ...
Unbezahlbar. :)
Top
#74
Hallo Carsten,

zuerst - Du hast wirklich schon mehr als erwartet für mich getan - und hast mich abgefertigt - DU bist mein Held und  Angel Ehrlich!!!!

Na ja, Offset 1,2 und 3 ist einfach die Möglichkeit etwas ist Spalte B, C oder D reinzuschreiben. Manchmal benötige ich einfach Zusatzinformationen die ich der Suche dann mitgebe.
Genauso verhält es sich mit den Farbmarkierungen die die dann Suchergebnisse optisch trennen.

Ich wünsche Dir eine schöne Woche und weitere freie Minuten die Du für andere Hilfesuchende verwenden kannst:

VIELEN DANK!
Top
#75
Hallo Erich,

bitte, gern geschehen. :)

(24.04.2017, 12:12)sharky51 schrieb: Na ja, Offset 1,2 und 3 ist einfach die Möglichkeit etwas ist Spalte B, C oder D reinzuschreiben. Manchmal benötige ich einfach Zusatzinformationen die ich der Suche dann mitgebe.
Das habe ich anhand der Bezeichnungsspalten nicht erkennen können. Hätte dort statt 'Offset2' z.Bsp.  'Bemerkung1' gestanden ...

Also so:

.xlsm   ErichsSuche_V7_Work.xlsm (Größe: 90,96 KB / Downloads: 2)

Hinweis:
Wenn ein Eintrag mit 'Suche & Kennzeichnen' gefunden und der entsprechende Eintrag in Offset1 getätigt wurde, dann werden im Moment evtl. vorhandene Texte in Offset2 und Offset3 kommentarlos überschrieben. Bei Bedarf musst Du Dir dort eine Bremse einbauen.

Suchen kannst Du in beiden Spalten per Hand mit dem gesetzten Autofilter, das sollte kein Problem darstellen.


Nun hast Du zwei Versionen zur Auswahl.


Frohes basteln ...
Gruß Carsten
Top
#76
Hallo Carsten,

nochmals vielen Dank!

Eines ist mir aber aufgefallen.
Wenn ich in Spalte "B" den Filter auf einen Wert setze dann erwarte ich dass ich Spalte "F" genau die Anzahl/Menge der ausgewählten Zeilen sehe.
Leider werden immer und unterschiedlich viele in Spalte "F" gezeigt - ich finde leider nicht die Ursache dafür.
Top
#77
Hallo Carsten,

habs gefunden.

Ich weiß zwar nicht warum, aber wenn man die letzte Spalte für den Autofilter aud "F" setzt dann tritt das oben beschriebene Problem auf.

Code:
           'die letzte Spalte des Datenbereichs:
           .MyLastColumn = "F"

Wenn ich die letzte Spalte auf "D" setze - dann stimmt das Filterergebnis.  Huh
Top
#78
Hallo Erich,

zuerst:
Spalte E und F sind Deine Baustelle, die Dinger habe ich nicht einmal mit dem kleinen Finger berührt.  ;)

Schau mal bitte in Deinen alten Versionen in Spalte E, dort in Zeile 75 und 77.
Da gibt es abweichende Formeln. (Hier in 7.1 bereinigt, hat aber wahrscheinlich nichts damit zu tun.)


Ja, es gibt Probleme, wenn der Autofilterbereich bis Spalte F erweitert wird.
Selbst wenn man die unnützen leeren Zeilen (nur E und F gefüllt) aus der Tabelle heraus löscht, gibt es diese Probleme mit dem AutoFilter.
Es ist dabei egal ob man den Filter per Hand oder per Code erstellt, filtert oder sonstwas macht. Da scheinen die Formeln in Spalte E und/oder F irgendwie dazwischen zu fummeln.
Ich habe aber jetzt keine Muße diesen Rödel zu bereinigen, vor allem, da ich den Sinn nicht kenne/erraten kann.

Daher habe ich im Formularaufruf 'MyLastColumn' auf D gesetzt, nun funktioniert alles wieder bestens.
Habe ansonsten noch zwei, drei Zeilen Code verschlimmbessert, anbei die neue Version:

.xlsm   ErichsSuche_V7.1_Work.xlsm (Größe: 91,49 KB / Downloads: 4)



Gruß Carsten

Edit:
Habe Deinen Post eben erst gelesen ...
Top
#79
Hallo Carsten,

(24.04.2017, 15:34)DbSam schrieb: Ich habe aber jetzt keine Muße diesen Rödel zu bereinigen, vor allem, da ich den Sinn nicht kenne/erraten kann.

Es ist ganz einfach, die Spalte "E" gibt einfach die Zeilennummer wieder in der der gesuchte Datenstring steht und...
Spalte "F" zeigt die Anzahl der in einer Filterauswahl aufgelisteten Datenstrings.
Ich benötige das einfach um zu prüfen wie viele Suchstellen bereits ausgewertet wurden - ist ein Cross-Check.

Ich denke ich sollte Dich jetzt ein wenig in Ruhe lassen.
Top
#80
(24.04.2017, 19:18)sharky51 schrieb: Ich denke ich sollte Dich jetzt ein wenig in Ruhe lassen.

Hallo zusammen,

dann mache ich jetzt weiter. :19:

Carsten, was meiner Meinung nach noch unbedingt rein muss, da Du ja schon die halbe Arbeit gemacht hast mit der Auflistung der Suche in der Listbox,
bei doppelklick in diese und wenn Fund, dann Auswahl der Fundstelle.

Dann kann man bei Bedarf im Nachhinein noch einmal zu den Fundstellen navigieren. 
Wenn das eine blöde Idee ist, dann behalte ich sie für mich und ihr habt nichts gelesen. :19:
Gruß Atilla
Top


Gehe zu:


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