gesuchte zellen automatisch in excel markieren
eine frage an die excel experten hier:
ich habe eine Tabelle mit ca. 1000 Bestellnummern in der Spalte. Um diese abzugleichen, klicke ich auf Menü Bearbeiten -- Suchen -- gebe die entsprechende Nummer ein und er springt in die richtige Zelle. Dann markiere ich die Zelle mit Füllfarbe, damit ich weiss, dass die Zelle bereits gefunden worden ist. So weit so gut. Aber gibt es eine Möglichkeit, vielleicht ein VBA Script, mit dem die gesuchten Zellen automatisch farblich markiert werden? Das heisst: beispielsweise: Bestellnummer in A5 gefunbden grün markieren, dann 2. Bestellnummer in A10 gefunden und auch automatisch markieren. Die Zellen in diesem Fall a5 und a10 sollen auch nach der nächsten Suchanfrage markiert bleiben. Hat jemand dafür eine Lösung?
4 Antworten
Ganz automatisch finde ich das schwierig. Du kannst zwar mit:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Interior.ColorIndex = 4
End Sub
das Selection Change abfangen und die ausgewählte Zelle so einfärben, aber das würde dann immer passieren, wenn Du in den Bereich klickst. Ich wüsste jetzt nicht, wie ich die Suchabfrage VORHER in einem Code erkennen könnte.
MEIN Vorschlag wäre, sich das auf einen CommandButton zu legen:
Private Sub CommandButton1_Click()
ActiveCell.Interior.ColorIndex = 4
End Sub
Dann musst Du zwar immer einmal klicken, aber .....
Du kannst das Ganze natürlich auch als Sub in ein Modul packen, und dem Makro dann einen Shortcut zuweisen.
Dann kannst Du die aktive Zelle immer mit z.B.: STRG & j (oder so) einfärben.
Das wäre TOP! Genau das suche ich. Kannst du mir so ein Script schreiben?
Ok. Habe schon gebastelt.
Kopiere mal das hier in das Modul des Tabellenblattes (Rechtsklick auf den Tabellenreiter (ganz unten, wo z.B. Tabelle1 steht) und dann "Code anzeigen".
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Dim rngSuchen As Range
Set rngSuchen = Range("A2:A1000"). _
Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns)
If rngSuchen Is Nothing Then
Target.Select
MsgBox ("Nicht gefunden")
Exit Sub
End If
rngSuchen.Interior.ColorIndex = 4
Target.Select
'rngSuchen.Select
End If
End Sub
Das gilt jetzt für das Eingabefeld A1 und den Suchbereich A2:A1000. Das kannst du ganz einfach anpassen.
Ich habe es jetzt so geschrieben, dass der Focus immer auf dem Feld A1 bleibt, Du also eine Nummer nach der anderen Eingeben kannst.
Wenn Du lieber möchtest, dass die gefundene Zelle selektiert wird, dann einfach das Hochkomma vor:
'rngSuchen.Select
löschen.
Wenn Du andere Farben willst, einfach die 4 ändern, in einen Wert zwischen 1 und 56 und dann ausprobieren.
Kommst Du klar?
TOP!!!! DANKEEEEE!!! Sowas hab ich gesucht!!!
Das geht auch ohne VBA, dafür gibt es z.B. Bedingte Formatierungen.
Versuch folgendes: in A1 schreibst du die Zahl, die du suchst. Nun gehst du auf die erste Bestellnummer in deiner Liste, gehst auf Beabreiten -> Bedingte Formatierung gibst dort ein: "=$A$1" (die $ sind wichtig) und stellst das Format auf "grüner Hintergrund".
Dann benutzt du den "Format übertragen"-Pinsel (in der Symbolleiste) und markierst damit dann alle anderen Bestellnummern. Siehe da - alle Bestellnummern, die gleich der in A1 sind, werden grün!
Aber verschwindet nicht nach jeder Suche die Formatierung wieder? Vielleicht habe ich das falsch beschrieben. Also folgende SItuation:
A1 = 1 A2 = 2 A3 = 3
ich gehe nun auf das such fenster excel und gebe 1, dann springt er in zelle a1 un diese soll er in grün markieren. Ich gehe wieder in das Suchfenster und suche 2. Er springt in zelle a2 und diese soll er auch in grün markieren. die markierung soll auch nach jeder suche bestehen bleiben.
Stimmt, bei jeder neuen Suche gehen die Markierungen wieder weg. Ich dachte, du wolltest nur kurzfristig herausfinden, welche Zellen gleich sind. Für etwas permanentes brauchst du wohl in der Tat VBA.
Wenn er die nächste Nummer eingibt werden sie aber wieder neutral!
GENAU ! Das ist eben das Problem und gibt es dafür ein Script, so dass die Markierungen nach jeder Suche farblich markiert bleiben.
Unter Nummer verstehst du jetzt die Nummern der Bestellungen (also zB 6253946)?
Oder wie sind die Bestellnummern aufgebaut?
Also Script hab ich jetzt keins zur Hand. Aber sortier die Tabelle doch einfach nach Bestellnummern. Dann liegen die Bestellnummern in sortierter Reihenfolge (aufsteigend oder absteigend) vor. Dann musst du zwar immer noch suchen, aber es ist dann doch erheblich einfacher. So würde ich das machen.
es gäbe eine einfachere lösung,
würde das für dich gehen:
du tippst deine liste von nummern die du hast unter die bestehende liste , wenn du fertig bist, dann machst du etwas und alle einträge die zweimal gefunden wurden (weil du sie ja nochmal druntergetippt hast 2 mal vorhanden) werden grün markiert?
http://www.pctipp.ch/praxishilfe/kummerkasten/office/21717/duplikateanzeigenexcel.html
excel soll einfach nach jeder Suche mit dem Suchfenster (Bearbeiten- Suchen) die gefundene Zellen markieren und markiert lassen. Ich hab schon gegooglet aber ich finde einfach nichts passendes
P.S.:
Ich könnte Dir höchstens noch etwas zusammenbasteln, sodass Du in eine bestimmte Zelle, z.B. A1, den zu suchenden Wert schreibst, und dann der gefundene Wert gefärbt wird. Sobald Du den nächsten Wert in A1 schreibt wird dieser dann zusätzlich gefärbt.
DAS ist vielleicht da sinnvollste!?