Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein

Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein
03.06.2024 15:29:48
Dieter(Drummer)
Guten Tag an alle.

Im Zellbereich A8:A20 soll per Zelldoppelklick, 2te Zelle rechts markieren und dort das aktuelle Datum eingefügt werden.

Was ist an meinem Code falsch und wie muss er berichtigt werden?

Mit Gruß,
Dieter(Drummer)

Mein jetziger Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

'Doppelklick im Zellen, Zellbereich A7:A20
'2 Zellen nach rechts
ActiveCell.Offset(0, 2).Select
'aktuelle Urzeit eintragen
ActiveCell.Value = Format(Time, "hh:mm")
End Sub

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein
03.06.2024 15:46:54
Heli
Hi,
versuch's mal so:
ActiveCell.Offset(0, 2).Value = Format(Now, "hh:mm")


Servus, Heli
AW: Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein
03.06.2024 16:25:34
GerdL
Hallo Dieter,

noch ein Gedicht.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


If Not Intersect(Target, Range("A8:A20")) Is Nothing Then
Cancel = True
Target.Offset(0, 2) = Format(Time, "HH:MM")
Target.Offset(0, 2).Select
End If

End Sub

Gruß Gerd
Anzeige
AW: Danke Gerd für Rückmeldung und geht natürlich ...
03.06.2024 16:53:22
Dieter(Drummer)
Hallo Gerd,

... jetzt klappt es ja.

Gruß, Dieter(Drummer)
AW: Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein
03.06.2024 16:31:33
daniel
Hallo Dieter
an deinem Code sind zwei Dinge richtig:
- das gewählte Eventmakro
- das Offset
alles andere ist grottenfalsch.
  • zum einen solltest du inzwischen wissen, dass man Befehle direkt an eine Zellreferenz anhängt, ohne diese vorher zu selektieren oder aktiveren. Du bist jetzt lang genug in Excelforen aktiv um das irgendwie mitbekommen zu haben.

  • Und wenn du in der Aufgabe schreibst, dass du das Datum haben möchtest und dann im Code TIME (also Uhrzeit) steht, dann fragt man sich schon, was so zwischen deinen Ohren passiert, wenn du den Code schreibst, spätestens wenn du ihn nach dem Schreiben nochmal liest, sollte das bei dir irgendeine Reaktion auslösen, die was mit "da passt was nicht" zu tun hat.
    und nein, das hat nichts mit VBA-Wissen und Programmierkönnen zu tun, sondern mehr mit gesundem Menschenverstand und die Bereitschaft, diesen auch mal einzusetzen.

  • was mal vollständig fehlt, ist die Abfrage auf den Zellbereich.

  • nächster Fehler ist, dass du die ActiveCell verwendest, obwohl dir doch das Event mit TARGET die angeklickte Zelle in einer Variablen zur Verfügung stellt

  • zwar nicht grundlegend falsch, aber unsinnig ist es, einen Wert in einen Text zu wandeln und dann den Text in die Zelle zu schreiben. wenn diese dann den Text wieder in den Wert wandeln soll. das ist nicht notwendig und ein Fehler kann dann passieren, wenn die Textumwandlung dir den deutschen Text liefert, VBA aber an dieser Stelle länderunabhängig immer die amerikanische Schreibweise erfordert (betroffen wären hier Dezimalzahlen und Datumswerte)
    Eine sinnvolle Anwendung wäre, wenn du den Zeitwert, den das System liefert, um die Sekunden bereinigen willst und nur ganze Minuten benötigst. Dann wäre der Weg Format(Time, "hh:mm") eine einfache Lösung für diese Aufgabe.


  • damit wäre jetzt beantwortet, was an deinem Code alles falsch ist.
    hier jetzt eine Möglichkeit, wie es besser geht.

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    if not intersect(Range("A7:A20"), Target) is nothing then 'Doppelklick im Zellen, Zellbereich A7:A20
    target.Offset(0, 2).value = Date
    end if
    End Sub


    Gruß Daniel

    Anzeige
    AW: Hallo Daniel ....
    03.06.2024 16:59:46
    Dieter(Drummer)
    ... Danke für deine Rückmeldung, Erläuterungen,

    aber nicht für deine Belehrungen.

    Ich werde nächsten Monat 80 Jahre und bin halt manchmal auch nicht immer fehlerfrei. Sorry ... werde mich bemühen besser zu werden ...
    Freut mich, wenn du keine Fehler machst!

    Grß, Dieter(Drummer)
    Anzeige
    AW: Hallo Daniel ....
    03.06.2024 17:31:32
    daniel
    ja, ich weiß dass du 80 bist.
    aber du bist jetzt auch schon so lange aktiv dabei, dass du das wissen müsstest.
    sieh es mal als indirektes Lob.
    Du hast dich ja inzwischen vom tatsächlich unbedarften Fragesteller, dem man wirklich viel und ausführlich erklären musste, soweit weiterentwickelt, dass du inzwischen selbst versuchst, anderen zu Helfen und Fragen zu beantworten.
    einen Sprung vom Fragesteller zum aktiven Helfer machen nicht viele, das ist schon mal super.
    Aber gerade deswegen sind solche "Stockfehler" ärgerlich. Und wie geistig alt muss man sein, um "Zeit" und "Datum" nicht mehr auseinander halten zu können?

    und bist du nicht auch aus einer Generation, die mit dem Spruch "leichte Schläge auf den Hinterkopf erhöhen das Denkvermögen" groß geworden ist?
    sie es mal als solche in Verbalform an.
    außerdem hoffe ich, dass eine leichte emotionale Aufwallung dabei behilflich ist, dass du dir das ganze besser merkst.

    Gruß Daniel
    Anzeige
    AW: Hallo Daniel, werde mich bemühen ... owT
    03.06.2024 18:37:26
    Dieter(Drummer)
    AW: Doppelklick, 2 Zellen nach rechts, aktuelle Uhrzeit rein
    03.06.2024 15:55:59
    RPP63
    Moin!
    Na, was denn nun?
    Im Betreff steht Uhrzeit, im Fließtext Datum …
    • ActiveCell ist Quatsch, wenn das Event bereits Target übergibt.
    • Wo ist der Bereich A7:A20 im Code zu finden?
    • Was soll der Zweizeiler, wenn es doch nur um eine Zuweisung geht?
    • Format() übergibt einen Text, Du willst aber Datum oder Uhrzeit.
    Sorry, Dieter, aber Deinen Code würde ich einem absoluten Neuling zugestehen, aber der bist Du doch längst nicht mehr …
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    If Not Intersect(Range("A7:A20"), Target) Is Nothing Then
    Target.Offset(0, 2) = Time 'oder meinethalben Date
    End If
    End Sub

    Gruß Ralf
    Anzeige
    AW: Hallo Ralf ...
    03.06.2024 16:08:18
    Dieter(Drummer)
    ... Danke für Rückmeldung.

    Hatte mich leider mit "Datum nur verschrieben". Sorry ...
    Dein Code klappt perfekt.

    Gruß, Dieter(Drummer)

    Ich hatte es auch so mal versucht, ging aber auch nicht:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    'Doppelklick im Zellen, Zellbereich A7:A20
    If Target.Address = "$A7:$A20" Then
    '2 Zellen nach rechts
    ActiveCell.Offset(0, 2).Select
    'aktuelle Uhrzeit eintragen
    ActiveCell.Value = Format(Time, "hh:mm")
    End If
    End Sub
    Anzeige
    AW: Hallo Heli, geht leider auch nicht ...
    03.06.2024 15:56:06
    Dieter(Drummer)
    Danke Heli für Rückmeldung,

    ... so geht es aber auch nicht.
    Habe auch "Time" gewählt, da "Now" ja Datum und Uhrzeit wählt.

    Evtl. hat ja noch einer eine Lösung?

    Gruß,
    Dieter(Drummer)

    AW: Hallo Heli, geht leider auch nicht ...
    03.06.2024 16:21:25
    Heli
    Hallo Dieter,

    läuft bei mir zwar ohne Probleme aber die Lösung von Ralf passt ja :-)

    Servus, Heli
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige