9.1k Aufrufe
Gefragt in Tabellenkalkulation von knutschi10 Mitglied (135 Punkte)
Ein freundliches Hallo

Wieder einmal habe ich ein Problem, das ich allein nicht lösen kann.
Wie kann ich ein Suchergebniss mit Strg + F farblich(gelb) hervor heben?
Dabei sollte aber anschließend die ursprüngliche Zellfarbe (weiß) wieder hergestellt werden.

Ich habe gehört das dies schon im Excel mit Background Color gehen soll.
Kennt jemand die dazu gehörige Formel ??

Oder muss das wieder über VBA gemacht werden.


Vielen Dank im Voraus
Sven

44 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

www.supportnet.de/threads/1132096

dort wird das Problem behandelt, ich hoffe es hilft weiter

Gruß

Helmut
0 Punkte
Beantwortet von knutschi10 Mitglied (135 Punkte)
Hi Helmut

bei den vorschlägen die du mir gemacht hast is nich wirklich was dabei.

Ich wollte das die Zelle wo das gesuchte Kennzeichen drinn ist gelb gekennzeichnet wird und sobald ein neues Kennzeichen gesucht und gefunden iss die vorherige zelle die gelb war wieder weiß ist und die gefundene neue jetzt gelb.
So müsste ich nich immer über den Bildschirm suchen und hätte das Kenneichen das ich gesucht hab immer im blick.

vielen dank für deinen Ratschlag.

viele grüße Sven
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Sven,

angenommen Du suchst in der Spalte A, dann müsste folgender Code
funktionieren.

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Selection, Range("A:A")) Is Nothing Then
Range("A:A").Interior.ColorIndex = xlNone
Selection.Interior.ColorIndex = 6
End If
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Sven,
hab dir mal eine Musterdatei Suchen erstellt.

Gruß
fedjo
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ging vielleicht auch mit "bedingter Formatierung", mit

"Zellwert ist" "gleich" A1

und dann mit Muster die Farbe, hier gelb, festlegen. In A1 steht dein Suchwert.

Gruß

Helmut
0 Punkte
Beantwortet von knutschi10 Mitglied (135 Punkte)
Ein freundliches Hallo

Vielen Dank für die guten Ratschläge und im Grundegenommen funzt alles super.
Aber ich kann nun mein Arbeitsblatt über Extras -> Schutz -> Blattschutz
nicht mehr mit einem Passwort schützen.
Es erscheinen zwei Fehlermeldungen

1.Laufzeitfehler 1004

NumberFormat - Eigenschaft des Range - Objektes kann nicht festgelegt werden.

und 2. Laufzeitfehler 1004

Die ColorIndex - Eigenschaft des Range - Objektes kann nicht festgelegt werden.

Meine Tabelle 1 sieht wie folgt aus:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C:C")) Is Nothing Then

If Target.Value = "" Then
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = ""
End With

Else
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With


End If
End If


End Sub




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Selection, Range("C:C")) Is Nothing Then
Range("C:C").Interior.ColorIndex = xlNone
Selection.Interior.ColorIndex = 5
End If
End Sub


Was muss ich ändern so das ich mein Arbeitsblatt wieder schützen kann.
Ich vergaß das Spalte C nicht geschützt ist, da dort die kennzeichen hinein kommen.

und gibt es eine Möglichkeit das nach der Funktion " suchen in C " die Ausfahrzeiten in Spalte G eintragen zu lassen?
Kann ich dazu das obere Makro so ändern das dies in Spalte G eingetragen wird ?

Ich danke allen noch mals für die Unterstützung und Ratschläge die mir sehr geholfen haben mein Projekt wahr werden zu lassen.

Für weitere hilfe bin ich sehr Dankbar
Mit freundlichem Gruß
Sven
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Sven,

Das mit dem Passwort kann man lösen. Tuasche Deinen VBA-Code gegen den folgenden aus.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Const strPasswort = "Hier das Passwort eintragen"

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C:C")) Is Nothing Then
ActiveSheet.Unprotect strPasswort
If Target.Value = "" Then
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = ""
End With
Else
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With
End If
ActiveSheet.Protect strPasswort
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Selection, Range("C:C")) Is Nothing Then
ActiveSheet.Unprotect strPasswort
Range("C:C").Interior.ColorIndex = xlNone
Selection.Interior.ColorIndex = 5
ActiveSheet.Protect strPasswort
End If
End Sub

In der Zeile

Const strPasswort = "Hier das Passwort eintragen"musst Du anstelle des Textes "Hier das Passwort eintragen" Dein Passwort eintragen. Achtung! Datei nicht die Anführungszeichen löschen, dass Passwort gehört dazwischen.

Zu Deiner 2. Frage kann ich im Moment leider nichts sagen, da ich die Frage irgendwie (noch) nicht verstanden habe.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von knutschi10 Mitglied (135 Punkte)
Hi Oliver,

danke erst ma für den Tipp, werde ihn dann gleich ausprobieren..

Die zweite Sache ist folgende. Ich habe eine KFZ - Einfahrtsliste.

In Spalte C wird das Kennzeichen Eingetragen und Excel sucht mir über SVerweiß die Firma und die Gebäudenummer und über das erste Makro die Einfahrtszeit.

Nun dachte ich mir das man das mit der Ausfahrzeit genau so machen könnte. Das heißt wenn ich Strg + F drücke und das Kennzeichen eingebe Exel das in Tabelle 1 sucht und in Spalte F (Ausfahrtszeit) die aktuelle Systemzeit einträgt.
So ähnlich wie bei dem Makro für die einfahrt.

kann mann so etwas realisieren? Ich denke schon,weiß aber leider nich wie.


lieben Gruß
Sven
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Sven,

irgendwie stehe ich auf dem Schlauch. Wo bitte ist das "erste Makro", dass Dir die Einfahrzeit sucht? Ich sehe das nirgends. Ich sehe nur einen VBA-Code, der in Spalte C die Hintergrundfarbe ändert. Meinst DU das?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von knutschi10 Mitglied (135 Punkte)
Hi Oliver,

erst mal vielen Dank für die Hilfe, funzt wunderbar und es kann mir keiner mehr etwas aus der Tabelle löschen. Klasse.

Folgende Zeilen liefern mir die Zeit in Spalte F :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C:C")) Is Nothing Then

If Target.Value = "" Then
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = ""
End With

Else
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With


End If
End If


End Sub

Wenn mann das eventuell abändern könnte das die Zeit nach dem Strg + F ( Suchergebniss ) durch Enter bestätigt wurde in Spalte F angezeigt wird
...