Registriert seit: 25.07.2016
Version(en): 2010
Hallo zusammen,
in meinem Code weise ich einem Label, eine Zahl aus einer Zelle zu, mit folgendem Code:
Code:
Label10.Caption = Format(Round(Worksheets("Tabelle1").Range("F14"), 2), "#,##0.00")
diese Zahl ist dadurch auf 2 Nachkommastellen gerundet. z.B. "9,41"
nun möchte ich aber, das diese Zahl auf Viertel gerundet wird.
In diesem Beispiel sollte dann 9,5 dran stehen.
Wie ist das via VBA möglich? Was muss ich an meinem Code ändern?
Vielen Dank für eure Hilfe
Gruß,
Philipp
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
11.08.2016, 09:01
(Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2016, 09:01 von RPP63.)
Moin Phillipp!
In Excel gibt es VRUNDEN(),
in VBA:
Code:
Label10.Caption = Format(Application.MRound(Worksheets("Tabelle1").Range("F14"), 0.25), "#,##0.00")
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)
Registriert seit: 25.07.2016
Version(en): 2010
Hallo Ralf,
bei mir kommt folgende Fehlermeldung:
[img=822x294]
Dateiupload bitte im Forum! So geht es: Klick mich!]
Und wenn ich Application. eingebe, öffnet sich ja ein kleines Menü, in dem man auswählen kann, was nach dem Punkt kommt.
Da fehlt auch schon das .Mround.
Viele Grüße,
Philipp
Registriert seit: 21.06.2016
Version(en): 2021
Hallo Philipp,
hier mal eine klassische Methode:
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28
• Lokdog
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
Zitat:Und wenn ich Application. eingebe, öffnet sich ja ein kleines Menü, in dem man auswählen kann, was nach dem Punkt kommt.
Da fehlt auch schon das .Mround.
Du meinst die Intellisense, Philipp.
Es ist richtig, dass sie hier (wie in sehr vielen anderen Fällen) nicht aktiv ist.
Ändert aber nichts an der Tatsache, dass es funktioniert.
Zumindest ab Excel 2007.
Für ältere Versionen nimm die "klassische" Variante von Ego.
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)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ralf,
(11.08.2016, 18:03)RPP63 schrieb: Du meinst die Intellisense, Philipp.
Es ist richtig, dass sie hier (wie in sehr vielen anderen Fällen) nicht aktiv ist.
das funktioniert schon:
Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Ja klar, Uwe!
Ich spare mir aber die .WorksheetFunction weil sie hier nicht notwendig ist.
Gleiches gilt übrigens auch für Application.Match()
Aber wem erzähle ich dies? :21:
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)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Ralf,
(11.08.2016, 19:42)RPP63 schrieb: Ich spare mir aber die .WorksheetFunction ...
und damit eben auch die Intellisense.
Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Die muss ich ich mir aber in sehr vielen Fällen sparen, Uwe.
Ich spare sie mir mir beim LateBinding, bei ungenauer Referenzierung, weil ich etwas aktives anspreche (ActiveSheet in PERSONAL.XLSB) usw.
Wenn Du es so meinst, dass eine Programmierung nur dann sinnvoll ist, wenn die Intellisense funktioniert, …
… dann müssen wir uns z.B. von Arrays verabschieden.
Aber ich weiß natürlich, dass Du es so nicht meinst.
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)
Registriert seit: 25.07.2016
Version(en): 2010
Hallo Helmut,
wie immer hast du mir geholfen, Dankesehr! :)
Gruß,
Philipp