Microsoft Excel

Herbers Excel/VBA-Archiv

REST Funktion Anhand von Uhrzeiten VBA


Betrifft: REST Funktion Anhand von Uhrzeiten VBA
von: Frank
Geschrieben am: 08.11.2018 11:39:17

Hallo zusammen,

ich habe folgendes Problem:

ich habe in Spalte B mehrere Uhrzeiten untereinander stehen, die (in zweier Schritten) subtrahiert werden sollen und das Ergebnis in Spalte E dargestellt wird - soweit so gut.
Spannend wird es beim Tageswechsel.
Dabei ist für mich am einfachsten die REST Funktion, klappt auch super in Excel.
Beispielsweise: = REST(B2-B1;1)
Damit stellt der Tageswechsel kein Problem mehr da. Mein Problem ist diese Formel in VBA zu übertragen.

Wenn ich den unten stehenden Code anwende kommt 0 raus, warum? wo ist der Fehler?
Auskommentiert ist die Makro Aufzeichnung, die mir aber nicht weiterhilft.
Ich hoffe Ihr könnt mir weiter helfen.
Vielen Dank im voraus.

Option Explicit

Sub minus()

Dim wksEingabe As Worksheet
Dim a As Long

Set wksEingabe = ActiveWorkbook.Worksheets("Tabelle1")


For a = 1 To wksEingabe.UsedRange.Rows.Count Step 2
      
      wksEingabe.Cells(a, 5) = (wksEingabe.Cells(a + 1, 2) - wksEingabe.Cells(a, 2)) Mod 1
Next a

'ActiveCell.FormulaR1C1 = "=MOD(R[-2]C[-7]-R[-3]C[-7],1)"

End Sub

  

Betrifft: AW: REST Funktion Anhand von Uhrzeiten VBA
von: Rudi Maintaire
Geschrieben am: 08.11.2018 11:51:47

Hallo,
wksEingabe.Cells(a, 5) = worksheetfunction.mod(wksEingabe.Cells(a + 1, 2) - wksEingabe.Cells(a, 2),1)

Gruß
Rudi


  

Betrifft: WksFu.MOD geht nicht. owT
von: Rudi Maintaire
Geschrieben am: 08.11.2018 12:04:59




  

Betrifft: AW: REST Funktion Anhand von Uhrzeiten VBA
von: Frank
Geschrieben am: 08.11.2018 12:17:28

Hallo Rudi,

danke für deine schnelle Antwort, aber beim Ausführen des Makros kommt die Fehlermeldung:
"Objekt unterstützt diese Eigenschaft oder Methode nicht".

Gruß Frank


  

Betrifft: sag ich doch
von: Rudi Maintaire
Geschrieben am: 08.11.2018 12:44:41

Hallo,

x=wksEingabe.Cells(a + 1, 2) - wksEingabe.Cells(a, 2) 
wksEingabe.Cells(a, 5) = Iif(x > 0, 1 - x, 1 + x)
Gruß
Rudi


  

Betrifft: AW: sag ich doch
von: Frank
Geschrieben am: 08.11.2018 13:26:31

Hallo Rudi,

ja, klasse so funktioniert es.. Die Restfunktion clever umgangen.
Vielen Dank.


  

Betrifft: REST (MOD) geht deshalb nicht, ...
von: Luc:-?
Geschrieben am: 09.11.2018 04:29:08

…weil das in VBA wie in fast allen Pgmmiersprachen per Operator erledigt wird, Frank & Rudi;
allerdings entspricht seine Wirkung nicht REST → mathematisches (asymmetrisches) Modulo, sondern ist tatsächlich ein DivisionsRest (Remainder, symmetrisches Modulo). Der Unterschied macht sich nur bei negativen Zahlen bemerkbar.
Übrigens ist das auch bei einigen anderen Fktt so, die entweder im Container fehlen oder anders fktionieren.
Morhn, Luc :-?

„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …