Abzug Wert über mehrere Zellen
#11
Hallo zusammen,

vielen Dank. Der Code funktioniert!

Grüße
Zofomuko
Top
#12
Hallo,

ich habe heute bei Tests einen Fehler festgestellt, den ich mir nicht erklären kann.
Die Zellen mit den Überstunden sind als "Zahl" mit zwei Nackommastellen formatiert.
Wenn ich nun mit Nachkommastellen subtrahieren möchte, bleiben die Stellen unberücksichtigt.
Wenn ich also rechne 2,34-1,21 wird als Ergebnis 1,34 ausgegeben.

Kann mir das jemand erklären?

Gruß
Zofomuko
Top
#13
Ändern As Integer in As Single

Mfg
Top
#14
Hi,

Die Datentypen Integer und Long sind nur für Ganzzahlen geeignet, wobei man auf Integer eigentlich verzichten kann, da Excel diese intern sowieso in Long umwandelt, bevor sie benutzt werden.
Für Dezimalzahlen bieten sich Single oder Double an.

http://www.vba-tutorial.de/variablen/datentypen.htm
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#15
Hi,

wenn Excel-intern sowieso Integer in Long umgewandelt wird, wird dann auch Single in Double umgewandelt?
Top
#16
Moin Ralf!
Mal abseits der Theorie, warum man Long statt Integer nehmen sollte:
(die marginalen Zeit-Unterschiede merkt man nicht wirklich; der Speicherbedarf ist ebenfalls drittrangig)

Lasse mal dieses simple Makro laufen und berichte von Deinen vor Schreck geweiteten Augen, wenn Du in den Überlauf rennst.  :21:
Schaue mal ins Lokalfenster und lasse Dir die Werte der Variablen anzeigen!
(Überlauf??? Ich habe doch ausreichend dimensioniert?)

Sub Int_Long()
Dim i As Integer, k As Integer
Dim Ergebnis As Long
For i = 1 To 1000
  For k = 1 To 1000
    Ergebnis = i * k
  Next
Next
Debug.Print Ergebnis
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#17
Und ergänzend:
Damit habe ich Edgars Theorie, wonach VBA einen Integer intern in einen Long umwandelt, eindeutig widerlegt!
;)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#18
Hi,

(20.09.2017, 10:47)RPP63 schrieb: (die marginalen Zeit-Unterschiede merkt man nicht wirklich; der Speicherbedarf ist ebenfalls drittrangig)

stimmt, da kommt sofort ein Überlauf.
Wenn ich i oder k oder beide zu Long mache, kommt das Ergebnis.
Top
#19
Hi,

die Theorie ist nicht von mir, ich habe es nur übernommen. Ich weiß nur, dass einige der Koryphäen es immer wieder so veröffentlichen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#20
Hi,

Gelöscht
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste