Microsoft Excel

Herbers Excel/VBA-Archiv

Datum per Doppelklick Uhrzeitabhängig

Betrifft: Datum per Doppelklick Uhrzeitabhängig von: besserist
Geschrieben am: 01.08.2020 21:45:38

Hallo zusammen,

ich möchte in eine Zelle das Datum per Doppelklick einfügen. Dafür benötige ich wohl ein Makro. Das könnte ich mir wohl zusammenschustern ;)

Das Problem ist, dass immer das aktuelle Datum eingeseztz werden soll aber von 0.00-06.00Uhr früh, soll das Datum des Vortags erscheinen.

Zur Erklärung, das ist für einen Schichtbericht und die Nachtschicht beginnt natürlich immer am Vortag.

Wäre supper wenn mir jemand helfen könnte.


Viele Grüße

Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: Oberschlumpf
Geschrieben am: 01.08.2020 21:58:51

Hi
If Hour(Now) <= 6 Or Hour(Now) >=0 then
        Zelle = Date-1
    Else
        Zelle = Date
End If
hilfts?

Ciao
Thorsten

Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: besserist
Geschrieben am: 01.08.2020 22:08:44

Oha, ja sieht gut aus, ich weiss nur nicht wie das einbauen soll.
Ich hab bis jetzt:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
     If Not Intersect(Target, Range("A1")) Is Nothing Then
         Target = Date 
         Cancel = False
        
     End If
 End Sub
Da wo Date steht müsste das ja nun irgendwie eingebaut werden.
Sorry, bin da nicht so fit.

VG

Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: Oberschlumpf
Geschrieben am: 01.08.2020 22:13:24

versuch mal so:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
     If Not Intersect(Target, Range("A1")) Is Nothing Then
         If Hour(Now) <= 6 And Hour(Now) >=0 then
                 Target = Date - 1
             Else
                 Target = Date 
         End If
        Cancel = False
     End If
 End Sub
Hilfts?

Betrifft: lag ich ja mit meinem Einwand nicht verkehrt oWT
von: Christian
Geschrieben am: 01.08.2020 22:15:09

.

Betrifft: AW: lag ich ja mit meinem Einwand nicht verkehrt oWT
von: Johann
Geschrieben am: 01.08.2020 22:19:23

Kann Hour(now) kleiner 0 sein?

Grüße
Hans

Betrifft: hmm, kennst du die Antwort?
von: Oberschlumpf
Geschrieben am: 01.08.2020 22:36:23

...dann schreib den richtigen Code doch gleich mit auf

Betrifft: die AW ist NEIN,also genügt <6:00 ! (owT)
von: EtoPHG
Geschrieben am: 01.08.2020 23:49:42



Betrifft: die AW ist NEIN,also genügt <6:00 ! (owT)
von: EtoPHG
Geschrieben am: 01.08.2020 23:50:25



Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: Christian
Geschrieben am: 01.08.2020 22:08:47

Hallo,

ich bin zwar kein VBA Spezialist, aber muss das nicht AND statt OR heißen, sonst wäre ja bei 7 Uhr die zweite Bedingung erfüllt.
Falls ich falsch liege, sorry für die Einmischung.

Gruß
Christian

Betrifft: jep, And stimmt...owT
von: Oberschlumpf
Geschrieben am: 01.08.2020 22:14:48



Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: besserist
Geschrieben am: 01.08.2020 22:27:10

Hallo,

hab's, vielen Dank!

Hab nur kleiner 6 verwendet.



und es klappt :-)

Danke, VG

Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: Werner
Geschrieben am: 02.08.2020 08:04:46

Hallo,

quasi als Einzeiler:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address(0, 0) = "A1" Then
    Cancel = True
    Target = IIf(Hour(Now) <= 6, Date - 1, Date)
End If
End Sub
Gruß Werner

Betrifft: AW: Datum per Doppelklick Uhrzeitabhängig
von: GerdL
Geschrieben am: 01.08.2020 22:35:55

Moin
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
    
    If Target.Address = "$A$1" Then
        If Time > "#6:00:00#" Then
             Target = Date
        Else
             Target = Date - 1
        End If
        Cancel = True
    End If

End Sub

Gruß Gerd

Betrifft: Warum eigentlich IF? Ist doch nur ein fixer Shift
von: lupo1
Geschrieben am: 02.08.2020 08:38:27

Private Sub Worksheet_BeforeDoubleClick(ByVal T As Excel.Range, C As Boolean)
    If T.Address = "$A$1" Then T = Int(Now - 0.25)
    C = True
End Sub


Betrifft: AW: Schon wieder tropisch, Lupo?
von: GerdL
Geschrieben am: 02.08.2020 09:23:47

Moin,

warum pauschal Cancel, nun weiter um genau 6:00:00 abrunden, die integrierten Argumente der Prozedur quälen?

Gruß Gerd

Betrifft: AW: Schon wieder tropisch, Lupo?
von: GerdL
Geschrieben am: 02.08.2020 09:23:57

Moin,

warum pauschal Cancel, nun weiter um genau 6:00:00 abrunden, die integrierten Argumente der Prozedur quälen?

Gruß Gerd

Betrifft: "Tropisch" ist es hier im Norden nicht ...
von: lupo1
Geschrieben am: 02.08.2020 09:35:46

"Warum pauschal Cancel?" verstehe ich nicht (bin kein VBA'ler; ich weiß nur, Cancel muss hin, damit kein infinite event auftaucht, oder ein anderer Fehler).

Das Mathematische mit dem Abrunden hast Du eigentlich selbst im Griff. Du hast nur nicht daran gedacht. Gönne den anderen einfach auch mal ein(en) Korn.

"Integrierte Argumente quälen": Damit meinst Du vermutlich, dass ich Target und Cancel mit T und C abkürze. Läuft aber doch ;-) Und die Argumente kann man sich im Editor anschauen.

Betrifft: "pauschal cancel" (jetzt kapiert)
von: lupo1
Geschrieben am: 02.08.2020 09:54:39

Private Sub Worksheet_BeforeDoubleClick(ByVal T As Excel.Range, C As Boolean)
    If T.Address = "$A$1" Then T = Int(Now - 0.25): C = 1
End Sub
... um Dich mit der 1 etwas zu nerven.

Betrifft: AW: "pauschal cancel" (jetzt kapiert)
von: GerdL
Geschrieben am: 02.08.2020 11:53:39

Hi,

es geht optisch besser lesbar u. genauso schwer verständlich. :-)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = Target.Address = "$A$1"
    If Cancel Then Target = Date + CLng(Time < 0.25)
End Sub

Gruß Gerd

Betrifft: Aber was ist an dem Shiften von DatumZeit so ...
von: lupo1
Geschrieben am: 02.08.2020 12:18:12

... schlimm? Ich verwende doch lieber nur einmal den Zeitstrahl, statt zweimal. Wenn es denn geht.

Betrifft: Schwer verständlich? Nur optisch? Nee, ...
von: Luc:?
Geschrieben am: 02.08.2020 15:43:04

…einfach nur sauber, Gerd,
so wie ich es auch machen würde! Alternativ aber auch so, vor allem bei Zielen in ganzen Bereichen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = Not Intersect(Target, Me.Range("A1")) Is Nothing
    If Cancel Then Target = Date + CLng(Time < 0.25)
End Sub
Gruß, Luc :-?

„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …


Betrifft: AW: Target.Count = 1 bei Before_Doublelick
von: GerdL
Geschrieben am: 02.08.2020 20:50:34

Hallo Luc,

prinzipiell stimme ich der Bereichsprüfung zu. Diese Ereignisroutine zielt immer nur auf eine einzelne Zelle.

Gruß Gerd

Betrifft: Das weiß ich, ...
von: Luc:?
Geschrieben am: 03.08.2020 02:33:58

…Gerd,
aber man kann das ja für mehrere Zellen eines bestimmten Bereichs erlauben wollen. Dass ich nur eine Vglszelle angegeben hatte, mag verwirren, ist aber den Vorgaben geschuldet.
Morhn, Luc :-?

Beiträge aus dem Excel-Forum zum Thema "Datum per Doppelklick Uhrzeitabhängig"