Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Runden als Makro nachträglich einfügen

Forumthread: Runden als Makro nachträglich einfügen

Runden als Makro nachträglich einfügen
03.06.2023 12:02:59
Mehi

Hi,
ich habe oft sehr lange Formeln, denen ich nachträglich die Runden-Formel zuweisen möchte. Das muss doch irgendwie per Makro gehen!?
Also so:
Vorher: =WENN(N152-N151-N1500;0;N152-N151-N150)
Nachher: =Runden(WENN(N152-N151-N1500;0;N152-N151-N150);2)
Die Runden-Formel soll also auf die Formel in der Tabelle angewendet werden.

Freue mich auf eine Lösung.

Mehi

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Runden als Makro nachträglich einfügen
03.06.2023 12:49:30
lupo1
=RUNDEN(WENNFEHLER(EXP(LN(N152-N151-N150)););) oder
=WENNFEHLER(EXP(LN(RUNDEN(N152-N151-N150;)));)

mit gänzlich unterschiedlichem Inhalt (da Deine Aufgabe nicht eindeutig war)


AW: Runden als Makro nachträglich einfügen
03.06.2023 16:37:36
Mehi
Hallo Lupo1,

die Formel selbst ist ein Dummy. Ich suche ein Makro, das in der aktivierten Zelle, die ein beliebige Formel enthält, eine Rundenformel schreibt.
Ich habe mal ein Makro aufgezeichnet, da hoffentlich veranschaulicht, was ich suche:

ActiveCell.FormulaR1C1 = "=ROUND(VLOOKUP(RC[-1],R1C4:R24C8,4,0),2)"


Anzeige
AW: Runden als Makro nachträglich einfügen
03.06.2023 17:01:26
RPP63
Moin!
Wähle ein Zahlenformat mit 2 Nachkommastellen und stelle in den erweiterten Optionen "Genauigkeit wie angezeigt" ein,
Beachte, dass dies eine Eigenschaft des Workbooks ist!

Gruß Ralf


AW: Runden als Makro nachträglich einfügen
03.06.2023 17:09:47
Mehi
Diese Möglichkeit kannte ich zwar noch nicht. Sie dann ja endgültig. Per VBA geht das nicht?

Statt "=" "=Runden(" und hinten anfügen ");2)"

Schade.


Anzeige
AW: Runden als Makro nachträglich einfügen
03.06.2023 18:35:26
GerdL
Hallo Mehi!
ActiveCell.FormulaR1C1 = "=ROUND(" & Mid(ActiveCell.FormulaR1C1, 2) & ",2)"
Gruß Gerd


AW: Runden als Makro nachträglich einfügen
03.06.2023 19:32:55
Mehi
Danke Gerti,

danke für die Formel. Sie funktioniert super. Ich habe sie noch etwas erweitert. Jetzt habe ich, was ich brauche.

Sub runden()

Dim Cell As Range
For Each Cell In Selection.SpecialCells(xlCellTypeFormulas)
Cell.FormulaR1C1 = "=ROUND(" & Mid(ActiveCell.FormulaR1C1, 2) & ",2)"
Next

End Sub
Grüße
Mehi


Anzeige
AW: Runden als Makro nachträglich einfügen
03.06.2023 20:43:22
Mehi
Wie könnte die umgekehrte Formel aussehen?
So funktioniert es noch nicht.

Sub rundenweg()

Dim Zelle As Range
For Each Zelle In Selection.SpecialCells(xlCellTypeFormulas)
Zelle.Formula = "=" & Mid(Zelle.Formula, 9, Len(Zelle.Formula) - 12)
Next
End Sub


AW: Runden als Makro nachträglich einfügen
04.06.2023 09:00:51
GerdL
Moin

Sub rundenweg()

Dim Zelle As Range
For Each Zelle In Selection.SpecialCells(xlCellTypeFormulas)
    If Left(Zelle.Formula, 6) = "=ROUND" And Right(Zelle.Formula, 3) = ",2)" Then
        Zelle.Formula = "=" & Mid(Zelle.Formula, 7, Len(Zelle.Formula) - 9) & ")"
    End If
Next

End Sub


Anzeige
AW: Runden als Makro nachträglich einfügen
04.06.2023 10:22:58
Mehi
Super, das funktioniert. Danke.

;
Anzeige
Anzeige

Infobox / Tutorial

Runden als Makro nachträglich einfügen


Schritt-für-Schritt-Anleitung

Um ein Makro zu erstellen, das automatisch die Runden-Formel auf die ausgewählten Zellen anwendet, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub runden()
       Dim Cell As Range
       For Each Cell In Selection.SpecialCells(xlCellTypeFormulas)
           Cell.FormulaR1C1 = "=ROUND(" & Mid(Cell.FormulaR1C1, 2) & ",2)"
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.

  5. Wähle die Zellen aus, auf die du die Runden-Formel anwenden möchtest.

  6. Drücke ALT + F8, wähle runden aus und klicke auf Ausführen.

Jetzt wird die Runden-Formel auf die ausgewählten Zellen angewendet!


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen."

    • Lösung: Stelle sicher, dass du nur Zellen mit Formeln ausgewählt hast. Wenn keine Zellen mit Formeln ausgewählt sind, tritt dieser Fehler auf.
  • Fehler: "Formel wird nicht korrekt aktualisiert."

    • Lösung: Überprüfe, ob die ausgewählten Zellen tatsächlich Formeln enthalten und ob der Code korrekt eingegeben wurde.

Alternative Methoden

Du kannst auch die Excel-Funktion "Zahlenformat" verwenden, um Werte zu runden, ohne VBA zu nutzen:

  1. Wähle die Zellen aus, die du runden möchtest.
  2. Klicke mit der rechten Maustaste und wähle Zellen formatieren.
  3. Wähle unter Zahlen die Option Zahl und stelle die Dezimalstellen auf 2 ein.
  4. Aktiviere die Option "Genauigkeit wie angezeigt" in den erweiterten Optionen.

Diese Methode ist hilfreich, wenn du die Darstellung der Zahlen anpassen möchtest, ohne die zugrunde liegenden Formeln zu ändern.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Runden-Formel in verschiedenen Szenarien anwenden kannst:

  • Wenn du die Uhrzeit in 15-Minuten-Intervallen runden möchtest, kannst du eine Formel wie diese verwenden:

    =RUNDEN(A1*96;0)/96
  • Um Werte in einem Arbeitsblatt zu runden, kannst du das Makro verwenden, um mehrere Zellen gleichzeitig zu bearbeiten, was dir Zeit spart, besonders bei großen Datenmengen.


Tipps für Profis

  • Makros anpassen: Du kannst das Makro weiter anpassen, um verschiedene Runden-Formel-Varianten zu verwenden, wie RUNDEN, AUFRUNDEN oder ABRUNDEN, je nach Bedarf.
  • Shortcut erstellen: Erstelle einen Shortcut für dein Makro, um es noch schneller auszuführen.
  • Fehlerbehandlung: Füge Error-Handling in dein Makro ein, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für andere Formeln anpassen? Du kannst die Formel in der Cell.FormulaR1C1 Zeile nach Bedarf ändern, um unterschiedliche Berechnungen durchzuführen.

2. Welche Excel-Version benötige ich für diese Funktion? Das vorgestellte Makro funktioniert in Excel 2010 und späteren Versionen. Stelle sicher, dass du die Makros in den Excel-Optionen aktiviert hast.

3. Kann ich das Makro auf mehrere Arbeitsblätter anwenden? Ja, du kannst das Makro in jedem Arbeitsblatt verwenden, indem du die gewünschten Zellen auswählst, bevor du das Makro ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige