Microsoft Excel

Herbers Excel/VBA-Archiv

Runden per Makro | Herbers Excel-Forum


Betrifft: Runden per Makro von: Chris
Geschrieben am: 02.02.2010 09:09:35

Guten Morgen zusammen!

Vielleicht kann mir jemand bei Folgendem helfen:

Ich kopiere per Makro bestimmte Werte einer Zeile aus einem Tabellenblatt und füge diese in einem anderen Tabellenblatt ein. Die eingefügten Werte hätte ich gerne ohne Kommastelle gerundet. Jemand eine Idee?

...
TotSales = .Cells(146, ColCount) 'im Quellsheet
...
Dat.Offset(198, 0) = TotSales 'im Zielsheet

  

Betrifft: AW: Runden per Makro von: Peter Feustel
Geschrieben am: 02.02.2010 09:22:41

Hallo Chris,



dann versuch es doch ganz einfach so: Dat.Offset(198, 0) = CInt(TotSales) 'im Zielsheet



Gruß Peter


  

Betrifft: AW: Runden per Makro von: Chris
Geschrieben am: 02.02.2010 09:38:05

Gute Idee! Danke!


  

Betrifft: CINT() funktioniert nur bis +32767 !! von: NoNet
Geschrieben am: 02.02.2010 10:07:20

Hallo Chris (und Peter),

Die Konvertierungsfunktion CINT(...) konvertiert den Wert in der Klammer lediglich in einen INTEGER-Typ und "rundet" daher zwangsläufig. Allerdings können INTEGER-Zahlen nur Werte zw. -32768 bis +32767 annehmen, grössere Werte funktionieren hier nicht mehr (Fehlermeldung "Überlauf").
Ich empfehle Dir daher die in VBA vorgesehene Rundungsfunktion zu verwenden (ist auch gar nicht so schwierig ;-) :

Dat.Offset(198, 0) = ROUND(TotSales)

Gruß, NoNet


Beiträge aus den Excel-Beispielen zum Thema "Runden per Makro"