Microsoft Excel

Herbers Excel/VBA-Archiv

Uhrzeit per Doppelklick eintragen

Betrifft: Uhrzeit per Doppelklick eintragen von: Ralf-Eckhard
Geschrieben am: 05.09.2004 14:11:42

Hallo.

Mit folgendem Modul kann ich per Doppelklick auf eine Zelle dort die aktuelle Uhrzet eintragen. Wie muß der Code verändert werden, damit dann die aktuelle Zeit zuzüglich 40 Minuten eingetragen wird?

-----

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim zeit As String
zeit = Right(Now(), 8)
    ActiveCell.FormulaR1C1 = zeit
    Selection.NumberFormat = "hh:mm:ss"
End Sub

-----

Gruß, Ralf-Eckhard
  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Ramses
Geschrieben am: 05.09.2004 14:27:38

Hallo

Den Kommentar zu

Zeit = Right(Now,8)

enthalte ich mir jetzt :-)))

In deinem Fall reicht es, den Code so aufzubauen

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Now + ((1 / 24 / 60) * 40), "hh:mm:ss")
End Sub



Man könnte es auch noch ein wenig kürzer schreiben, aber es soll dir das Verständnis geben.
1 wird durch 24 Stunden geteilt, diese Zahl nochmals durch 60, dann hast du den Dezimalwert für 1 Minute. Dieser wird nun mit 40 multipliziert, und zur aktuellen Uhrzeit aus "Now()" addiert.



Gruss Rainer


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Ralf-Eckhard
Geschrieben am: 05.09.2004 14:45:26

Hi

hab mir den Code von irgendwo aus dem Internet besorgt - bin selber leider kein VBA-Spezialist [wegen "Zeit = Right(Now,8)"] :-)

Danke für die Hilfe, so wollte ich es haben. Eine Kleinigkeit noch: besteht die Möglichkeit die Uhrzeit auf- bzw. abzurunden - z. B. 14:43=14:45 oder 12:21=12:20? (also daß man nur "5er"- oder "0er"-Werte bekommt)?

Ralf


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Ramses
Geschrieben am: 05.09.2004 15:00:53

Hallo

Klar geht das


Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Round((Now + ((1 / 24 / 60) * 40)) * 24 * 12, 0) / (24 * 12), "hh:mm:ss")
End Sub


Gruss Rainer


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Nina
Geschrieben am: 05.09.2004 15:25:29

Hallo Rainer,
ich hätte auch noch eine Frage dazu.
Wie muß dieser Code aussehen, wenn man nach jeder vollen Stunde auf die nächste
halbe gerundet und nach jeder halben auf eine volle gerundet haben möchte?
z.B. 14:01 = 14:30 oder 14:33 = 15:00
Vielen Dank
Nina


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Ramses
Geschrieben am: 05.09.2004 15:34:31

Hallo

machen wir nun eine Schulung in Zeitberechnungen :-)

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Round((Now + ((1 / 24 / 60) * 40)) * 24 * 2, 0) / (24 * 2), "hh:mm:ss")
End Sub


Die 2 anstelle der 12 verweist hier auf den Anteil der Stunde.
2 = 30 Minuten
12 = 5 Minuten

Je nachdem wird entsprechend gerundet.

Gruss Rainer


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Bert
Geschrieben am: 05.09.2004 15:39:49

Ein kleiner Zusatz ist sicher nützlich:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Round((Now + ((1 / 24 / 60) * 40)) * 24 * 2, 0) / (24 * 2), "hh:mm:ss")
'+++++++++++++++++++
Cancel = true
'+++++++++++++++++++
End Sub


Bert


  


Betrifft: Genehmigt :-)) o.T. von: Ramses
Geschrieben am: 05.09.2004 15:43:35

...


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Nina
Geschrieben am: 05.09.2004 15:40:18

Hallo Rainer,
Schulungen können Spaß machen, vor allem wenn sie
zum gewünschten Ergebnis führen :)
Danke für Deine Bemühung
Gruß
Nina


  


Betrifft: Merci :-) Geschlossen o.T. von: Ramses
Geschrieben am: 05.09.2004 15:43:00

...


  


Betrifft: AW: Uhrzeit per Doppelklick eintragen von: Ramses
Geschrieben am: 05.09.2004 14:28:14

Hallo

Den Kommentar zu

Zeit = Right(Now,8)

enthalte ich mir jetzt :-)))

In deinem Fall reicht es, den Code so aufzubauen

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Now + ((1 / 24 / 60) * 40), "hh:mm:ss")
End Sub



Man könnte es auch noch ein wenig kürzer schreiben, aber es soll dir das Verständnis geben.
1 wird durch 24 Stunden geteilt, diese Zahl nochmals durch 60, dann hast du den Dezimalwert für 1 Minute. Dieser wird nun mit 40 multipliziert, und zur aktuellen Uhrzeit aus "Now()" addiert.



Gruss Rainer


  


Betrifft: Uooopps, Einmal hätte gereicht :-) o.T. von: Ramses
Geschrieben am: 05.09.2004 14:28:59

...


 

Beiträge aus den Excel-Beispielen zum Thema "Uhrzeit per Doppelklick eintragen"