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 coros Experte (4k Punkte)
Hallo Sven,

sorry, aber ich verstehe ehrlich gesagt nur Bahnhof. Den VBA-Code, den Du hier immer aufführst, kannst Du nicht mit einer Tastenkombination aufrufen. Der Code wird nur ausgeführt, wenn ein bestimmtes Ereignis eintritt.
Der Code gehört in das VBA-Projekt des Tabellenblatts, in dem er wirken soll.

Du willst nun, dass der Code nicht ausgeführt wird, wenn das Ereignis eintritt, sondern wenn Du ein Makro über die Tastenkombination Strg F startest. Sehe ich das richtig?

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)
Hallo Oliver,

Im ersten Teil Hast du recht, denn der Code trägt die aktuelle Uhrzeit in Spalte F ein sobald ich in Spalte C ein KFZ - Zeichen eingegeben habe.

Jetzt stell dir vor, in Tabelle 1 sind ca. 200 KFZ - Kennzeichen die ich Uhrzeitmäßig aus der Liste austragen muss.
Diese einzelnen Kennzeichen suche ich mit Strg + F.

Nun zu meinem Problem:

Da es ja mit der Einfahrtszeit auch klappt dachte ich mir warum nicht auch mit der Ausfahrzeit. Das heißt wenn in Tabelle 1 in Spalte C das gesuchte KFZ - Kennzeichen gefunden wurde soll Excel die aktuelle Uhrzeit automatisch in Spalte G eintragen. geht das zu machen??

vielen Dank für deine Hilfe

mit freundlichen Gruß an alle

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

und woran soll beim Suchen ausgemacht werden, ob es sich bei dem gefunden Kennzeichen um eine Einfahrzeit oder eine Ausfahrzeit handelt?

Man kann das was dort im Moment für die Einfahrzeit gemacht wurde auch für die Ausfahrzeit realisieren. Allerdings würde dann immer, wenn in Spalte C ein Suchbegriff gefunden wurde, sowohl die Einfahr- als auch die Ausfahrzeit eingetragen, da ja nicht bekannt ist, um welche Zeit es sich handelt.
Oder soll die Ausfahrzeit nur eingetragen werden, wenn in Spalte F eine Einfahrzeit steht?

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)
Hallo Oliver,

ja so in etwa habe ich gedacht.
Mit der Einfahrtszeit gibt es ja kein Problem weil er die ja nur schreibt wenn ich in eine leere " C " Zelle etwas schreibe. Aber das Problem iss ja das dann schon etwas in C steht wenn ich den Befehl abfrage. Wenn ich jetzt die ausfahrzeit eintragen möchte genau bei dem Kennzeichen was ich gesucht habe steht da ja auch ne Einfahrtszeit.also könnte sich diese auf die Ausfahrzeit beziehen.

Irgend wie muss das doch zu machen sein.

viele Grüße an alle
Sven
0 Punkte
Beantwortet von knutschi10 Mitglied (135 Punkte)
Hi Oliver

Ich vergaß noch zu sagen das die Ausfahrzeit in Spalte "G" kommt.
da iss dann doch schon ein Unterschied und mann kann eine Bedingung machen das die Zeit nur geschrieben wird wenn in F eine Zeit steht.

Also so wie du es vorgeschlagen hast.

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

nachfolgend mal ein Versuch. Ich hoffe, ich habe es halbwegs verstanden und nach Deinen Wünschen umgesetzt.

Tausche den Code gegen Deinen alten Code aus.
Teste den Code aber bitte erst in einer Testdatei und nicht gleich in Deiner Originaldatei.

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
If Target.Offset(0, 3) <> "" Then
'Ausfahrzeit in Spalte G
With Target.Offset(0, 4)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With
Else
'Einfahrzeit in Spalte F
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With
End If
End If
End If
End Sub

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,

veilen dank für deine Hilfe.
Es funzt fast perfekt.Nur wird die Ausfahrzeit erst nach einem Doppelklick in die Zelle und danach bestätigen,erst dann erscheint die Zeit.
Kann mann nicht darauf verzichten??
Ich meine wenn das Kennzeichen gefunden wurde nur bestätigen und die Zeit steht in Spalte F ??

Und was muss ich dazu fügen so das beim löschen des Kennzeichens auch die Zeit wieder verschwindet.


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

kannst Du mal etwas deutlicher schrieben, was genau Du nun möchtest. Du schreibst

Ich meine wenn das Kennzeichen gefunden wurde nur bestätigen und die Zeit steht in Spalte F ??


Was genau soll denn betätigt werden, damit das Datum in Spalte G eingetragen wird. Du postest hier einen Ereigniscode, der ausgeführt wird, sobald in Spalte C eine Änderung eintritt. Diesen Code habe ich erweitert. Somit muss in Spalte C eben eine Änderung eintreten, bevor in Spalte F oder G etwas eigetragen wird. Was willst Du nun anders haben?

Damit auch nach dem Löschen des Kennzeichen die Zeit in Spalte G verschwindet, musst Du Deinen Code erweitern. Der sieht dann 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
Target.Offset(0, 4).Value = ""
Else
If Target.Offset(0, 3) <> "" Then
'Ausfahrzeit in Spalte G
With Target.Offset(0, 4)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With
Else
'Einfahrzeit in Spalte F
With Target.Offset(0, 3)
.NumberFormat = "hh:mm:ss"
.Value = Time
End With
End If
End If
End If
End Sub


Den Teil der dazu gekommen ist, habe ich unterstrichen.

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)
Hallo Oliver,

sorry das ich nerve und mich unverständlich ausgedrückt habe.
Es tut mir sehr leid.

Es soll praktisch so sein wie in Spalte " F ". Ich gebe ein Kennzeichen ein und in Spalte " F " erscheint die Einfahrtszeit nach drücken von "Enter". Wenn jetzt ein Auto wieder raus fährt, sollte es so sein, das ich mit Strg + F das Kennzeichen suche , und die aktuelle Zeit in Spalte "F" angezeigt wird. Dieses war mein Grundgedanke.

sei bitte nicht sauer auf mich.

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

ich bin nicht sauer. Allerdings nun etwas verwundert. In Deinen anderen Beiträgen sollte die Ausfahrzeit in Spalte G erscheinen. Nun nach Deinem letzten Beitrag bin ich da aber nicht mehr so sicher, weil Du schreibst:

Wenn jetzt ein Auto wieder raus fährt, sollte es so sein, das ich mit Strg + F das Kennzeichen suche , und die aktuelle Zeit in Spalte "F" angezeigt wird.


Wo soll denn nun die Zeit erscheinen? in Spalte F oder G?

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]
...