Suchfunktion in Excel 2007

orion01

Cadet 1st Year
Registriert
Juli 2013
Beiträge
14
Hallo

Wie bekomme ich das hin ? :

In einer Firma (Kfz-Betrieb) soll eine Möglichkeit geschaffen werden, Kompletträder von Kunden einzulagern. Dazu wurde
ein Regalsystem, welches pro Regal vier Etagen aufweist, angeschafft. Die Regalreihen wurden mit den Buchstaben A bis G bezeichnet. Anschließend wurde eine Excell-Tabelle erstellt, in der die Spalten mit A1, A2, A3 und A4 (entsprechend den Etagen) usw bezeichnet wurden. Nun lässt sich in den Zeilen (immer vier) die Einlagerungsnummer eintragen und die
entsprechenden Zellen farbig markieren.

Nun wünsche ich mir, dass irgendwo eine Eingabemaske vorhanden ist, in die ich die Einlagerungsnummer eingebe und dann die Spalte und Zeile ausgeworfen bekomme, in der ich den eingelagerten Radsatz finde, ähnlich wie mit Strg-F

Versucht hab ich es schon mal hiermit (aus einem anderen Forum) :
____________________________
Sub suchen()

Dim rngFind As Range
Dim strTitel As String
'suchdialog kreieren
strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5)
'zu durchsuchenden spaltenumfang angeben
Set rngFind = Columns("A:AC").Find(strTitel, LookIn:=xlFormulas)
'zur stelle springen oder message ausgeben
If Not rngFind Is Nothing Then
rngFind.Select
Else
MsgBox "Es wurde nichts gefunden"
End If

End Sub
________________________________________


aber damit springt er lediglich zu der angeforderten Zelle, ich hätte aber gern eine Ausgabe von Zeile uns Apalte im gleichen Fenster, in dem ich auch die Eingabe mache.

Optimal wäre ein Ein- Ausgabefenster unter der Tabelle im Spaltenbereich B bis D, aber das kann man wohl beliebig verschieben? Leider kann man in diesem Forum keine xlsx-Dateien anhängen, sonst hätte ichs getan. Leider bin ich nicht der Typ, der sich mit den Office-Programmen gut auskennt, deshalb brauche ich eine Step by Step Erklärung, sonst wird das wieder nichts. Ach ja -- die Zellen, in die ich die Einlagerungsnummer eingebe, werden farbig markiert und das muss in die Suchfunktion integriert sein, da jedesmal, wenn Räder im Halbjahr neu eingelagert werden, eine andere Farbe vergeben wird. Daraus kann resultieren, dass zweimal die gleiche Zahl, aber eine andere Farbe vergeben ist.

Verwendetes BS = Windows XP professional und Windows 7 (jeweils ohne Netzzugang) mit Excel 2007


mit freundlichem Gruß ---Günter Roschkowski---
 
Zuletzt bearbeitet:
Rein theoretisch müsste man die ja sagen, dass da die Tabellenkalkulation Excel als Datenbank missbraucht wird und jede Datenbank (und sei es BASE aus OpenOffice) das aus dem Ärmel schütteln könnte.

Das zu Lösen - spontan natürlich eine Userform die das Makro ausführt… Oder mehr eines das sich bemüht nicht das Ziel zu finden sondern dessen Koordinaten ermittelt.
Im Prinzip würde auch die InputBox, per Button ausgelöst, genügen.

Anderer Idee, aber (siehe Einleitung, nicht mein Metier) da müssten Formelexperten ran: man könnte in eine Zelle einen Vergleichswert eingeben und ein weiteres Zellenpaar müsste Zeile wie Spalte angeben können (ist das ab Zeile 4 angelegt zieht man eben eine 3 ab…) Vielleicht brauchts dazu eine Hilfszeile und eine Hilfsspalte? So zu suchen ist mein Ding nicht…

Vorweg: wenn du Name, Vorname in Zwei Spalten hast müsste man das uns eine Eingabeweise anpassen (ich sag ja, dafür ist XL nicht gemacht, du erfindest das Rad neu).
Code:
Sub Vergleichssuche()
Dim I As Integer
Dim J As Integer
Dim Eingabe As String
 Eingabe = InputBox("Kunde", "Reifenlager")
 For I = 4 To 9
  For J = 1 To 5
   If InStr(Cells(I, J), Eingabe) > 0 Then
    MsgBox "Fach " & I - 3 & "|" & J & " (" & Cells(I, J) & ")"
    Exit Sub
   End If
 Next
End Sub
Das wäre man ein Muster. Die Zählmargen kannst du anpassen, und wenn nötig gestaltet man die sogar dynamisch. (Sehe gerade - auf eine Nicht-Teffer-Meldung habe ich verzichtet…)
Meine Prüfung mit INSTR ist gefährlich! Wenn du Müller suchst und vorher gibt es unseren Herrn Müller-Lüdenscheid dann kommt der richtige Müller nicht dran. Man müsste die MSGBOX so ausstaffieren, dass die sei ein Weitersuchen und Aussteigen anbietet, das wäre aber nur Kosmetik.
(Merkst du was? Das Dumrum ist schlimmer als das eigentliche Suche..!)

CN8
 
Zuletzt bearbeitet: (Keines Mistgeschick…)
Hallo Günter,

vom Prinzip her gebe ich CN8 Recht, was die Sache mit der Datenbank betrifft. Aber bei den paar Datensätzen mag dein System noch hinnehmbar sein.

Allerdings gibt es da so einiges, was ich nicht so ganz verstehe. Z.B.
Code:
Set rngFind = Columns("A:AC").Find(strTitel, LookIn:=xlFormulas)
sagt etwas anderes als deine Anmerkung
Die Regalreihen wurden mit den Buchstaben A bis G bezeichnet.
Und die Sache mit den Farben ist mir auch nicht so ganz klar. In einem Fach können doch nur ENTWEDER Winter- oder Sommerreifen liegen, ODER?

Wie dem auch sei, da du ja auch Windows 7 hast, kannst du die *.xlsx als *.zip packen und dann hier einstellen.

Und wenn dein Code soweit wie beschrieben läuft, dann hilft vielleicht dieses:
Code:
 If Not rngFind Is Nothing Then
   rngFind.Select
   MsgBox "Zeile " & ActiveCell.Row & vbCrLf _
      & "Spalte " & ActiveCell.Column
Else
   MsgBox "Es wurde nichts gefunden"
End If
Damit wird dir die Fund-Position in einer Messagebox ausgegeben.
 
Hallo GMG-CC

Erstmal herzlichen Dank für die Antwort
Wenn du die Regalreihen A - G mit 4 multiplizierst (A1,A2,A3 und A4 und entsprechend weiter) und am Anfang der Tabelle mit Spalte A beginnst, kommst du am Ende bei Spalte AC an. Dabei habe ich noch keine Leerspalten zwischen A und B eingefügt, was ich ursprünglich tun wollte, damit eine klare, auch optische Trennung zwischen den Regalen vorhanden ist. Und mit den Reifen hast du natürlich auch nicht unrecht, wenn du sagst, dass in einem Fach nur Sommer- oder Winterreifen lagern können. Allerdings ist es so; und ich werde jetzt konkret; dass wir im Herbst 2012 die Farbe blau vergeben haben, von der heute noch 8 Radsätze im Lager liegen und zwar mit den damals vergebenen Nummern. Im Frühjahr 2013 war rot dran, nummeriert nach zufälligem Eingang. Und jetzt, im Herbst 2013 ist gelb dran, ebenso durchnummeriert. Wenn ich also jetzt nach der Nummer (z.B.) 27 suche, kann es sein, dass ich drei Radsätze ausgeworfen bekomme. Wenn ich aber konkret nach 27 blau suchen könnte, wäre das nur einer.
Frage1: den Code, den du mir geschickt hast, kann ich den einfach an den vorhandenen anhängen?
Frage2: ich hab noch nie eine Datei gepackt und "zip" find ich nicht - wie geht das?
 
Hallo (fast) Namensvetter Günter,

zur Frage 1: Nein, du sollst nur den entsprechenden Code-Block ersetzen. Der Einfachheit halber aber hier noch einmal der komplette Code:
Code:
Sub suchen()
   Dim rngFind As Range
   Dim strTitel As String
   
   'suchdialog kreieren  '
   strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5)
   'zu durchsuchenden spaltenumfang angeben  '
   Set rngFind = Columns("A:AC").Find(strTitel, LookIn:=xlFormulas)
   'zur stelle springen oder message ausgeben  '
   If Not rngFind Is Nothing Then
      rngFind.Select
      MsgBox "Zeile " & ActiveCell.Row & vbCrLf _
         & "Spalte " & ActiveCell.Column
    Else
         MsgBox "Es wurde nichts gefunden"
   End If
End Sub
Zu Frage 2: Da ich kein unberührtes System mehr habe, GLAUBE ich es geht so: Im Windows-Explorer, (vermutlich Eigene Dateien) Rechtsklick auf die gespeicherte Datei und dann Senden an > Zip-komprimierter Ordner. Dann wird die Zip-Datei generiert.

Und was die Farben angeht: Da bin ich im Moment zu müde und verwirrt, um klar zu sehen. Vielleicht bringt die Musterdatei mehr ...
 
Hallo Günther

Ja -- wir sind fast Namensvettern. Nachdem ich Deine letzte Antwort gelesen habe, dachte ich: Was ist das denn da unten? (mein Credo) Ich hab da mal draufgeklickt -- und ja!!!!! Endlich mal jemand, der so tickt wie ich auch.

So - ich versuche nun, eine "zip"-Datei anzuhängen und hoffe, dass das auch so funktioniert, wie ich mir das vorstelle. Außerdem nehme ich mir die Freiheit, Dir und Deiner Familie (sofern vorhanden) noch einen angenehmen Rest vom Wochenende zu wünschen.

mit einem freundlichen Gruß aus Iserlohn ---Günter---

P.S. die von Dir vorgeschlagene Änderung ist noch nicht in die Datei integriert worden.
 

Anhänge

Hallo Günter,

das mit der *.zip hat geklappt. Und ich sehe nun etwas klarer. Schau dir einfach einmal die Datei im Anhang an, vielleicht kommt die dem Wunschergebnis ja schon näher …

Und "Danke für die Blumen" in Sachen "Mein Credo".
 

Anhänge

Herzlichen Dank - das sieht toll aus. Gibt es da wohl noch die Möglichkeit, die farbliche Formatierung mit einzubinden? 'Und was müsste ich tun, um dieses Suchfenster nach unten zu bringen? Möglichst in den Bereich BCD 100. Aber bitte tu dir die Ruhe an, ich möchte nicht, dass du dir deswegen die Nacht um die Ohren schlägst. Es brennt nichts an und es reicht, wenn ich bis Mitte der kommenden Woche etwas von dir höre oder lese.

mit freundlichem Gruß aus Iserlohn ---Günter---
 
orion01 schrieb:
Gibt es da wohl noch die Möglichkeit, die farbliche Formatierung mit einzubinden?
Möglich ist so manches ... Aber ich verstehe nicht, WIE du die Farbliche Hinterlegung "einbinden" willst. Willst du abfragen: "Suche mir die Nummer 99 mit der Hintergrundfarbe Blau"?

Und was müsste ich tun, um dieses Suchfenster nach unten zu bringen? Möglichst in den Bereich BCD 100.
Ähm... Suchfenster = InputBox? Falls ja, dann würde ich beim Öffnen der Datei gleich auf BCD 100 positionieren, dann könnte es hinkommen.

Es brennt nichts an und es reicht, wenn ich bis Mitte der kommenden Woche etwas von dir höre oder lese.
Nun ja, etwas liest du ja jetzt schon von mir. Aaaber ... Die Woche über bin ich ziemlich eingespannt, du kennst das gewiss (ich denke, du bist auch selbstständig). Sollte meine Vermutung mit den Farben stimmen, dann wäre eine UserForm wohl die beste Möglichkeit. DerAufruf könnte dann bei einem Doppelklick in Spalte_A erfolgen oder natürlich über den Button. Mach dir doch da mal ein paar Gedanken. Und wenn es wirklich bis Mitte der Woche sein soll, es gibt hier ja noch viele Helferlein im Forum ;).

So in 1 Stunde geht es nun wirklich ab in's Bettchen!
 
GMG-CC schrieb:
Möglich ist so manches ... Aber ich verstehe nicht, WIE du die Farbliche Hinterlegung "einbinden" willst. Willst du abfragen: "Suche mir die Nummer 99 mit der Hintergrundfarbe Blau"?

Ja - so ähnlich hatte ich mir das vorgestellt, aber wahrscheinlich reicht auch die Möglichkeit mit "weitersuchen", ich weiß nur nicht, wie ich das hinbringen soll. Vielleicht kannst du mir da ja noch einmal behilflich sein. Die Zeitangabe "bis Mittwoch" war einfach nur willkürlich gewählt. Wie ich schon angemerkt habe, es brennt nichts an und mit der bisher von dir gelieferten Lösung komme ich ganz gut zurecht; und da du mir bisher prima geholfen hast, würde ich es auch begrüßen, wenn wir in dieser Sache weiterhin in Kontakt bleiben könnten. Außerdem ist Zeit ist für einen Selbstständigen natürlich unbezahlbar, da habe ich volles Verständnis für. Deshalb kann ich es auch nicht hoch genug anrechnen, dass du an den Wochenenden für viele andere die Hilfestellung bist.

mit freundlichem Gruß aus Iserlohn ---Günter---

Nachsatz: Ich bin zu der Überzeugung gelangt, dass eine Funktion "weitersuchen" für meine Zwecke optimal wäre ohne Berücksichtigung der hinterlegten Farbe in den einzelnen Zellen.
 
Zuletzt bearbeitet:
Hallo Günter,

also … so 100%ig verstehe ich immer noch nicht, was du willst. Ich schieße mal ins Blaue: Du willst eine Messagebox wo drinnen steht:
Die Reifen von Kunde 99 liegen in:

Rega7, Fach 3
--------------------
Regal 12, Fach1
--------------------
Regal 2 Fach 9
oder soll es (unbedingt) nacheinander angezeigt werden? Ein "Weitersuchen" ist bei einer Datenbank super einfach realisierbar, bei Excel machbar aber mit mehr Aufwand.
 
Hallo Günther

Schön, dich hier wieder zu treffen. Also - ich fange mal wieder ganz von vorne an: Das, was du mir bisher übermittelt hast, ist in Ordnung und hilft mir auch. In der MB bekomme ich eine Regalreihe und ein Fach genannt. Nun wäre es schön, wenn in der gleichen MB ein weiterer Button vorhanden wäre, der "weitersuchen" heißt.
Das sollte dann einfach so aussehen, dass nacheinander alle Lagerorte mit der gleichen Nummer abgerufen werden können ohne Rücksicht auf die Einfärbung des Hintergrundes. Wenn alle Lagerorte abgearbeitet wurden, sollte dort stehen "nichts gefunden". (oder ähnlich) Das hat für mich noch einen weiteren Vorteil: Räder gibt es in unterschiedlichen Breiten und es wird mit ziemlicher Sicherheit so ausgehen, dass ich zum Beispiel in einem Fach nur drei Räder mit gleicher Breite unterbringen kann, aber daneben hat dann wohl noch ein schmaleres Rad Platz.
Das alles sollte auch möglichst mit Excel realisierbar sein. Ich möchte dann nämlich an die entsprechenden Zellen Kommentare anhängen, die Auskunft geben über die technischen Daten der Räder, den Grad der Abnutzung, das Einlagerungsdatum usw.
Ich gehe mal davon aus, dass sich das auf dem von dir bereits übermittelten Modell aufbauen lässt.

LG von MK nach RZ ---Günter---
 
Hallo Günter,

ich bin dabei … Schau aber bitte einmal in dein Postfach, da liegt etwas in einer anderen Sache ;)

ps: strengt es auch dich jedes Mal an, den Vornamen anders zu schreiben als gewohnt? (sprich mit/ohne "h")
 
GMG-CC schrieb:
ps: strengt es auch dich jedes Mal an, den Vornamen anders zu schreiben als gewohnt? (sprich mit/ohne "h")

nö ----- das macht mir nichts aus. Ich habe auf deine PN geantwortet - kannst ja mal nach schauen.

LG ---Günter---
 
Guten Morgen Günter,

erst einmal danke für die Antwort in der PN. Das bestätigt meine Einschätzung.

So, auf der Basis deiner Muster-Tabelle haut erst einmal wohl alles so hin, wie gewollt. Liegt ein Kunde (beispielsweise 27) in mehreren Fächern und Regalen, dann wird so lange eine Messagebox aufgerufen, wie noch Fundstellen vorhanden sind. Wird nach den letzten [OK] nichts mehr angezeigt, wird auch nichts mehr gefunden. Es wäre noch möglich, eine MsgBox mit [OK]+[Abbruch] zu verwenden und entsprechend auszuwerten. Das sollte dir keine Probleme bereiten.

Jetzt kommt das große ABER… Der Aufbau deiner Tabelle ist insbesondere wegen der verbundenen Zellen in Spalte_A so, dass es problematisch wird, wenn verschiedene Kunden in 1 Fach liegen. Das geht dann schon stark in Richtung Datenbank. Mit Excel ist das zwar auch möglich, aber das bedeutet bei einer "sauberen" Lösung einen Aufwand, den ich im Rahmen der Forenhilfe nicht bringen kann. Da wären dann andere Mitstreiter gefragt. - Relativ einfach wäre zwar, wenn jedes Fach für jeden einzelnen Reifen eine MsgBox anzeigt, also beispielsweise 27 | 99 | 99 | 99 (je 1 MsgBox mit der Regal- Fachbezeichnung) was ja einem "echten" FindNext entspräche; aber das empfinde ich als unsauber …

Ich wünsche dir noch ein schönes Rest-Wochenende!
 

Anhänge

Danke --- das ist toll und auch durchaus ausreichend. Allerdings hab ich da noch eine Frage zu: Was muss ich tun, damit in der MB bei Eingabe von z.B "125" die Ausgabe SO ausssieht ? (Regal C3 Fach3) Oder kannst du das noch einmal fix ändern?

Zu der anderen Sache -- was wurde dir denn berechnet? (PN)

Gruß nach RZ ---Günter---
 
Hallo Günter,

ja, hätte ich sehen sollen ...

ersetze oder ändere bitte diese Zeile
Code:
If Cells(Ze, 1) > 0 Then MsgBox "Regal " & Cells(Ze, 1) & "  |  Fach " & Cells(2, Sp)
durch diesen Code:
Code:
If Cells(Ze, 1) > 0 Then MsgBox "Regal " & Cells(2, Sp) & "  |  Fach " & Cells(Ze, 1)
oder ohne Trennstrich dazwischen:
Code:
If Cells(Ze, 1) > 0 Then MsgBox "Regal " & Cells(2, Sp) & " Fach " & Cells(Ze, 1)
und ich melde mich in Kürze per PN! -> Geschehen.
 
Zuletzt bearbeitet: (Ergänzung)
Zurück
Oben