Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion round

Funktion round
30.08.2013 16:21:35
Karsten
Hallo liebe EXCEL Freunde, ich möchte gern einen im Marco berechneten Wert runden mit der Funktion "round"
Das Tool liest den TTist -Wert aus und dieser solldann gerundet werden als ganze Zahl, das funktioniert aber leider nicht so wie ich es will.
TTist = ActiveCell.Offset(0, -6)
TTist.Value = Application.Round(TTist.Value, 1)
Könnt Ihr hier helfen?
Gruß Karsten

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

Betreff
Datum
Anwender
Anzeige
AW: Funktion round
30.08.2013 16:41:06
Hajo_Zi
Hallo Karsten,
Du schreibst ,1 das ist eine Zahl mit einer Kommastelle.

AW: Funktion round
30.08.2013 16:43:17
Karsten
ja ich weiß es funktioniert aber nicht, er sagt immer Laufzeitfeler und es wäre ein Objekt erforderlich?

AW: Funktion round
30.08.2013 16:44:18
Hajo_Zi
Ich sehe die Datei nicht. Ich hätte auch gesagt es ist ein Objekt erforderlich.
Gruß Hajo

AW: Funktion round
30.08.2013 16:51:25
Karsten
Hallo Hajo,
TTist wird aus Countern berechnet und diese ist immer etwas ungenau z.B. ab der 6 Kommastelle:
TTsoll: 696
TTist: 696,000001
das soll aber vernachlässigt werden, deswegen die Rundung auf die ganze Zahl. Ich kopiere Dir mal den editor Text rein:
TTsoll = (datawertB - datawertA) * 24
TTist = ActiveCell.Offset(0, -6)
TTist.Value = Application.Round(TTist.Value, 1)
TT = TTsoll - TTist
'Plausibilitätsprüfung TTsoll = TTist
If TT "0" Then
MsgBox "Die Total- Zeit (TT) für Windpark " & park & " Turbine " & TurbineID & " ist ungleich " & TTsoll & " h ! Die Auswertung wird beendet, überprüfen Sie die Ergebnisse für TT!"
Exit Sub
Else
End If
Gruß Karsten

Anzeige
AW: Funktion round
30.08.2013 16:54:31
Hajo_Zi
Hallo Karsten,
ich habe jetzt in Deinem Beitrag wohl überlesen welches Objekt Du benutzt. Ich sehe die Datei immer noch nicht.
Gruß Hajo

nix mit .Value
30.08.2013 16:59:08
Erich
Hi Karsten,
du schreibst u. a. richtig
TT = TTsoll - TTist
Da lässt du den Wert der BVariablen TT aus den Werten zweier anderer Variablen berechnen.
Wofür soll dann das ".Value" in der Zeile
TTist.Value = Application.Round(TTis.Vatlue, 1)
gut sein?
TTist - eine nummerische Variable - hat keine Eigenschaft "Value".
Wegen des .Value meint VBA, dass ein Objekt erforderlich ist.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Text oder Zahl?
30.08.2013 17:04:38
Erich
Hi Karsten,
warum vergleichst du in der Zeile
If TT <> "0" Then
die Zahl TT mit dem Text "0" ? Warum nicht einfach mit der Zahl 0, also
If TT <> 0 Then
"Excel gut - VBA gut" ?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Was ist TTist?
30.08.2013 16:45:17
Erich
Hi Karsten,
wofür steht TTist?
Soll das ein Bereich (Ramge) sein? Oder eine numerische Variable, vielleicht double?
Da gibt es ein paar Möglichkeiten:

Option Explicit     ' immer zu empfehlen
Sub aaaaa1()
Dim TTist As Range
Set TTist = ActiveCell.Offset(0, -6)
TTist.Value = Application.Round(TTist.Value, 0)
End Sub
Sub aaaaa2()
Dim TTist As Double
TTist = ActiveCell.Offset(0, -6)
TTist = Application.Round(TTist, 0)
End Sub
Sub aaaaa3()
Dim TTist As Long
TTist = Application.Round(ActiveCell.Offset(0, -6), 0)
End Sub
Sub aaaaa4()
Dim TTist As Range
Set TTist = Cells(1, 1)
TTist = ActiveCell.Offset(0, -6)
TTist.Value = Application.Round(TTist.Value, 0)
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Was ist TTist?
30.08.2013 16:53:38
Karsten
Hallo Erich,
danke für die Hilfe, ich probier es gleich mal aus!
Gruß aus Bremen
Karsten

AW: Was ist TTist?
30.08.2013 16:57:28
Karsten
Hallo Ihr beiden, die Variante mit Dim TT as Long hat gut funktioniert, es kommt zu einer ganzzahligen Rundung. Gruß Karsten

Ist Dir klar das in Zelle eine Zahl stehen muß ?
30.08.2013 17:11:35
Matthias
Hallo
Nur als Zusatzinformation zu Erichs Vorschlägen.
Sobald ein Text in der Zelle Offset(,-6) steht bekommst Du einen VBA-Fehler.
Der sollte vermieden werden, entweder duch Gültigkeitsprüfung oder Fehlerroutine.
Ich denke es ist sowieso sehr riskant ohne Nachfrage Zellen zu überschreiben.
Aber das musst Du für Dich selbst entscheiden. Ich selbst habe immernoch eine Abfrage drin
z.B diesen Text in eine Msgbox
Die Zielzelle ist nicht leer, Wollen sie den Inhalt wirklich überschreiben
Aber das soll nur ein Hinweis sein!
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige