Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchergebnisse

Suchergebnisse
15.12.2006 13:50:48
Dunrell
Hallo,
habe schon versucht, etwas in alten Beiträgen zu finden. Leider ohne Erfolg.
Hier die Frage:
Die Zelle, in der ein Suchbegriff gefunden wird, soll farbig unterlegt werden.
Beispiel: Suche nach "Hallo". Gefunden in Zelle C743. Zelle wird farbig unterlegt, um sie hervorzuheben. Bei Weitersuchen wird Markierung wieder aufgehoben und die neue Zelle wird farbig unterlegt und so weiter...
Mit welchem Makro erreiche ich das?
Dafür reichen meine VBA-Kenntnisse nämlich leider nicht. ;)
Danke für die Hilfe.
Ciao

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchergebnisse
15.12.2006 14:01:45
EtoPHG
Hallo Dunrell,
Woher kommt den Dein Suchbegriff.
Wenn er in einer Zelle stehen würde, brauchst Du kein Makro dazu, sondern kannst es mit Bedingter Formatierung machen.
Gruss Hansueli
AW: Suchergebnisse
15.12.2006 14:14:45
Dunrell
Hallo Hansueli,
es wird in einer bestimmten Tabelle mit sehr vielen Einträgen gesucht. Irgendein Suchwort. Die Zelle, in der das Wort gefunden wird, soll farbig markiert werden. Ist das Wort noch mal vorhanden, beginnt das Spiel von vorne. Aber eben so, daß die zuvor markierte Zelle wieder "entfärbt" wird.
So stelle ich mir das zumindest vor...
;-)
Ciao
AW: Suchergebnisse
15.12.2006 14:12:44
Heiko
Hallo Dunrell,
z.B. damit:

Sub findenT()
Dim rngC As Range
Dim strFind As String, strOld As String
Dim lngOldColor As Long
strFind = InputBox("Bitte geben Sie den Suchbegriff ein !", " Suchbegriff", "Suchbegriff")
If strFind = "" Then Exit Sub
With ActiveSheet.UsedRange
Set rngC = .Find(strFind, LookIn:=xlValues)
If Not rngC Is Nothing Then
strOld = rngC.Address
Do
lngOldColor = rngC.Interior.ColorIndex
rngC.Interior.ColorIndex = 3
If MsgBox(" Weitersuchen ?", vbYesNo + vbQuestion) = vbNo Then
rngC.Interior.ColorIndex = lngOldColor
Exit Sub
End If
rngC.Interior.ColorIndex = lngOldColor
Set rngC = .FindNext(rngC)
Loop While Not rngC Is Nothing And rngC.Address <> strOld
End If
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Suchergebnisse
15.12.2006 14:53:16
Dunrell
Hey Heiko,
soweit sehr gut. Allerdings soll die Markierung, wenn man "Nein" gesagt hat, bestehen bleiben. Also die letzte gefundene Übereinstimmung soll markiert bleiben.
Schon mal vielen Dank bis hier her!
;-)
Ciao
AW: Suchergebnisse
15.12.2006 14:58:31
Heiko
Hallo,
VBA GUT ?!

Sub findenT()
Dim rngC As Range
Dim strFind As String, strOld As String
Dim lngOldColor As Long
strFind = InputBox("Bitte geben Sie den Suchbegriff ein !", " Suchbegriff", "Suchbegriff")
If strFind = "" Then Exit Sub
With ActiveSheet.UsedRange
Set rngC = .Find(strFind, LookIn:=xlValues)
If Not rngC Is Nothing Then
strOld = rngC.Address
Do
lngOldColor = rngC.Interior.ColorIndex
rngC.Interior.ColorIndex = 3
If MsgBox(" Weitersuchen ?", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
rngC.Interior.ColorIndex = lngOldColor
Set rngC = .FindNext(rngC)
Loop While Not rngC Is Nothing And rngC.Address <> strOld
End If
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Suchergebnisse
15.12.2006 15:07:18
Dunrell
Hallo,
ich kann mich erinnern geschrieben zu haben, das meine VBA-Kenntnisse nicht alles umfassen.
Okay. So geht es. Danke dir.
;-)
Ciao
AW: Suchergebnisse
18.12.2006 19:09:08
Dunrell
Hey Heiko, eine Sache hätte ich noch... Und zwar, da die Tabelle recht lang ist, soll die farbig markierte Zelle dann angezeigt, sprich aktiviert werden. Ich habe es mit dem Vergleich der Variablen versucht (siehe das etwas veränderte Makro von Dir - die Zeile, welche für sich alleine steht):
Range("B4:L219").Select
Selection.Interior.ColorIndex = xlNone
Range("A1").Select
Dim Zelle As Range
Dim SuchenNeu As String, SuchenAlt As String
Dim Farbe As Long
SuchenNeu = InputBox("Suchbegriff", " Suchbegriff", "")
If SuchenNeu = "" Then Exit Sub
Range("B1").Value = SuchenNeu
With ActiveSheet.UsedRange
Set Zelle = .Find(SuchenNeu, LookIn:=xlValues)
If Not Zelle Is Nothing Then
SuchenAlt = Zelle.Address
Do
Farbe = Zelle.Interior.ColorIndex
Zelle.Interior.ColorIndex = 3
If Range("B1").Value = SuchenNeu Then Zelle = ActiveCell
If MsgBox(" Weitersuchen?", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
Zelle.Interior.ColorIndex = Farbe
Set Zelle = .FindNext(Zelle)
Loop While Not Zelle Is Nothing And Zelle.Address SuchenAlt
End If
End With
Allerdings wird dann nur die farbig unterlegte Zelle, bzw. der Wert in ihr gelöscht. Eine andere Methode habe ich bis jetzt noch nicht gefunden. Weder Show noch sonstiges zeigt das gewünschte Resultat.
Für eine kleine Anregung wäre ich Dir dankbar.
;-)
Anzeige
AW: Suchergebnisse
18.12.2006 19:11:42
Dunrell
...
AW: Suchergebnisse
19.12.2006 07:39:34
Heiko
Hallo Dunrell,
kannst du mal genauer erklären was du möchtest, der Satz ist irgendwie unvollständig.
"Und zwar, da die Tabelle recht lang ist, soll die farbig markierte Zelle dann angezeigt, sprich aktiviert werden"
Wann denn ?!
Gruß Heiko
AW: Suchergebnisse
19.12.2006 20:08:55
Dunrell
Hey Heiko,
sorry, komme erst jetzt wieder dazu, hier reinzuschauen. Die Sache hat sich soweit (dank der Hilfe eines weiteren netten "Äxel-Ekschpärten"!) erledigt.
Ô_Ô
Was ich wollte, war, daß die Zelle, die gefunden wird (der Wert liegt der Variablen SuchenNeu zugrunde) dann auch aktiviert sprich quasi automatisch angeklickt wird. Damit also die betreffende Zelle auch gleich in der Tabelle angezeigt wird. Sollte diese nämlich weiter unten in einem Tabellenteil liegen, der nicht im momentanen Fensterausschnitt zu sehen ist, hätte man immer noch scrollen müssen, um die markierte Zelle zu finden. Das hat sich aber jetzt - wie gesagt - erledigt.
Falls Du aber dennoch etwas behilflich sein möchtest - hier wäre noch `ne Frage. Muß aber nicht unbedingt sein. Geht ja eigentlich jetzt auch so. Am Ende stelle ich dann noch mal den gesamten Code, wie er jetzt aussieht, ein. Dann kannst Du sehen, was ich meine.
Nun aber zu der noch offenen Frage. Wenn die Zelle markiert und als aktiv gekennzeichet (angeklickt) wurde, sehe ich diese ja im Ausschnitt. Was aber muß ich statt einer Zellaktivierung an Code eingeben, das die ganze ZEILE, in der die Zelle sich befindet angeklickt, also aktiviert wird? Sowas hatte ich bis heute noch nicht zu programmieren. Vielleicht weißt Du da ja noch mal Rat.
Ich danke Dir - auch falls jetzt nichts mehr von Dir kommt.
;-)
Ciao
P.S.:
Hier der Code

Private Sub CommandButton1_Click()
ActiveWindow.ScrollRow = 1
Range("A1").Select
Range("B1").Value = ""
Range("B8:L245").Interior.ColorIndex = xlNone
Dim Zelle As Range
Dim SuchenNeu As String, SuchenAlt As String
Dim Farbe As Long
SuchenNeu = InputBox("Suchbegriff", " Suchbegriff", "")
If SuchenNeu = "" Then Exit Sub
Range("B1").Value = SuchenNeu
With ActiveSheet.UsedRange
Set Zelle = .Find(SuchenNeu, LookIn:=xlValues)
If Not Zelle Is Nothing Then
SuchenAlt = Zelle.Address
Do
Farbe = Zelle.Interior.ColorIndex
Zelle.Interior.ColorIndex = 3
If Range("B1").Value = SuchenNeu Then Zelle.Activate
If MsgBox(" Weitersuchen?", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
Zelle.Interior.ColorIndex = Farbe
Set Zelle = .FindNext(Zelle)
Loop While Not Zelle Is Nothing And Zelle.Address <> SuchenAlt
End If
End With
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige