Excel 2010 - Das Thema mit dem Runden...?

... komplette Frage anzeigen

6 Antworten

Angenommen, du hast in Spalte A all deine Werte (berechnet nach deiner Formel). Dann schreibst du in B1 "=AUFRUNDEN(A1;0)" und drückst Enter. Wenn das Ergebnis passt, selektierst du Zelle B1. Im Rahmen um B1 findest du rechts unten ein kleines Kästchen...das klickst du doppelt an, dann wendet er den Befehl auf alle untenstehenden Zellen in B an, solange er auch in A Werte vorfindet.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Shelly95
28.06.2016, 16:47

Diese Idee hatte ich auch schon. Nur habe ich dann auf dem Dokument sowohl die gerundeten als auch die nicht gerundeten Ergebnisse. Ich möchte aber nur die gerundeten auf dem ausgedruckten Papier sehen.

Habe mir auch schon überlegt ob ich Spalte A (so wie du sie genannt hast) kleiner zu machen, damit man nicht sieht was drin steht, aber dann wirds kompliziert für andere die das Dokument bearbeiten müssen :D

0

Du kannst das über das Kontextmenü lösen.

  1. Öffne Excel
  2. Öffne den VBA Editor (Entwicklertools → Visual Basic)
  3. Kopiere folgenden Code in Personal.xlsb → Diese Arbeitsmappe:

    Private Sub Workbook_Open()
      Call AddToCellMenu
    End Sub

    Private Sub Workbook_Close()
      Call DeleteFromCellMenu
    End Sub
  4. Lege ein Modul modKontextmenu an und kopiere folgenden Code dort hinein:

    Option Explicit

    Public Const spopRundenName As String = "popRunden"
    Public Const spopRundenTitel As String = "Runden"

    Sub AddToCellMenu()
      Dim ContextMenu As CommandBar

      Call DeleteFromCellMenu
      Set ContextMenu = Application.CommandBars("Cell")
      With ContextMenu.Controls.Add(Type:=msoControlButton, before:=1)
        .OnAction = "'" & ThisWorkbook.Name & "'!" & "Runden"
        .FaceId = 59
        .Caption = spopRundenTitel
        .Tag = ""
      End With
    End Sub

    Sub DeleteFromCellMenu()
      Dim ContextMenu As CommandBar
      Dim ctrl As CommandBarControl

      Set ContextMenu = Application.CommandBars("Cell")
      For Each ctrl In ContextMenu.Controls
        If ctrl.Caption = spopRundenTitel Then
          ctrl.Delete
        End If
      Next ctrl
    End Sub

    Sub popRundenCreate()
      Call DeletePopUpMenu
      On Error Resume Next
        Application.CommandBars(spopRundenName).ShowPopup
      On Error GoTo 0
    End Sub

    Sub Runden()
      Dim rZelle As Range
      For Each rZelle In Selection
        rZelle.Value = Application.WorksheetFunction.RoundUp(rZelle.Value, 0)
      Next
    End Sub
  5. Schließe Excel und öffne deine Arbeitsmappe erneut.

(Excel 2010)

Die Anwendung funktioniert so:

  1. Markiere die Zellen, die du aufrunden möchtest.
  2. Klicke im Kontextmenü, welches sich nach Rechtsklick auf die markierten Zellen öffnet, auf den Eintrag "Runden".
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
29.06.2016, 01:20

so kompliziert muss das gar nicht sein!

0

es geht mit VBA auch viel einfacher (zu prozessierenden Bereich auswählen):

  • Sub FormelErweiternMitAufrunden_0()
  • Dim C
  • For each c in Selection
  • if c.Hasformula then
  • c.Formulalocal = "=aufrunden(" & mid(c.formulalocal, 2, 999) & ";0)"
  • elseif isnumeric(c.value) then
  • c.Formulalocal = "=aufrunden(" & c.value & ";0)"
  • end if
  • next c
  • end sub

Ein Fallstrick ist da allerdings drin: Hast Du da zB eine Summe stehen aus

2,5; 1,3; 3,1 so ergibt diese Summe 6,9

Das ist aufgerundet 7

Werden die Einzelzahlen aufgerundet ergibt die Summe sogar 9.


Du darfst also entweder nur die abhängigen Zellen aufrunden oder Du kannst den elseif-Teil komplett streichen und schon bei der Eingabe Zahlen, die später doch gerundet werden sollen, mit =5,7 etc eingeben (schneller -weil mit einer Hand- geht ++5,7, was xl sofort zu =5,7 und weiterhin zu =5,7 umformt (diese Eingabe geht übrigens nicht bei LO/OO!, kommt vllt auch noch, immerhin wird inzwischen schon aus +istzahl(A1) ein =+istzahl(A1))
Jedenfalls muss man da bei der Eingabe schon mitdenken

Die einzufügenden Formelteile könnte man auch als Variable anlegen und evtl sogar un einzelnen (vorzugsweise benannten) Zellen festlegen, das führe ich jetzt aber nicht noch weiter aus.
Ausserdem könnte man durch einen Befehl auch bei mehrfachmarkierungen einen Bereichsnamen kreieren un die Aktion dann definiert für eine mit Strg+Klicks erstellte Kombi-Auswahl durchführen, hab ich i'wo mal gemacht, müsste ich aber erst wieder hersuchen -heute und morgen nicht!.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
30.06.2016, 09:23

Habe den Faden wiederaufgenommen und werde das -aus Eigeninteresse- möglichst flexibel programmieren, werde dazu aber einige Zeit brauchen. Schau also gelegentlich mal wieder rein, ob sich was getan hat.

0

nim doch einfach das kleine Viereck was an der Ecke der ausgewählten Zelle ist. Wenn die Zelle G4 z.b bleiben soll in jeder Zelle dann machst du daraus ein $G$4 damit weis Excel das er das so übernehmen soll.

Dadurch kannst du dann dein aufrunden schnell vervielfachen. Oder habe ich das jetzt Falsch verstanden?

Antwort bewerten Vielen Dank für Deine Bewertung

willst du die Zahl an sich aufrunden (und damit weiterrechnen) oder nur die Zahl aufgerundet darstellen? wenn letzteres kannst du unter Format die Kommastellen bestimmen, die angezeigt werden sollen, Aufrunden geschieht dann automatisch, aber die Zahl als solche bleibt bestehen.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich kann dir leider keine genau Antwort geben.
Aber ich glaube es gibt eine Art "Befehl" dass wenn du die Ergebnisse hast alles markieren kannst und dann "sagst" alle Aufrunden. Bin mir aber nicht sicher.

Antwort bewerten Vielen Dank für Deine Bewertung