Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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

Makro für Runden

Makro für Runden
jens-claus
Hallo Excelfreunde,
ich habe eine große Tabelle mit Formeln welche sich auf ein anderes Arbeitsblatt
innerhalb der Datei beziehen.
z.B. =Daten!a1
Nun habe ich die Aufgabe in alle bestehenden Formeln des markierten Bereichs
zusätzlich Rundungsformeln einzufügen.
z.B. =Daten!a1 wird =Runden(Daten!a1;2)
Wer kann mir dazu ein Marko zur Verfügung stellen?
Besten Dank im voraus
Jens

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro für Runden
27.04.2010 11:45:59
Rudi
hallo,
Sub tt()
Dim rngC As Range
For Each rngC In Selection.SpecialCells(xlCellTypeFormulas)
If Mid(rngC.Formula, 2, 5)  "ROUND" Then
rngC.Formula = "=Round(" & Mid(rngC.Formula, 2) & ",2)"
End If
Next rngC
End Sub

Gruß
Rudi
AW: Makro für Runden
27.04.2010 11:57:29
jens-claus
Hallo Rudi,
besten Dank für das Makro.
Wenn ich dieses aktiviere, kommt die Meldung Laufzeitfehler '1004'
und der Cursor steht auf der Code-Zeile
rngC.Formula = "=Round(" & Mid(rngC.Formula, 2) & ",2)"
Wo liegt der Hase begraben?
Besten Dank für nochmaliges hirnen.
Jens
Anzeige
AW: Makro für Runden
27.04.2010 12:44:02
Rudi
Hallo,
bei mir hat das funktioniert.
Versuchs mal mit
rngC.Formula = "=Round(" & VBA.Mid(rngC.Formula, 2) & ",2)"
Gruß
Rudi
AW: Makro für Runden
27.04.2010 11:58:13
Tino
Hallo,
hier noch eine Version.
Sub Runden()
Dim rngBereich As Range
Dim strFormel As String
Dim oSh As Worksheet

If Selection.Count > 1 Then
 On Error Resume Next
 Set rngBereich = Selection.SpecialCells(xlCellTypeFormulas)
 On Error GoTo 0
Else
 If Selection.HasFormula Then Set rngBereich = Selection
End If

If Not rngBereich Is Nothing Then
With Application
    .ScreenUpdating = False
    
    Set oSh = Sheets(rngBereich.Parent.Name)
    
    oSh.EnableCalculation = False
        
        For Each rngBereich In rngBereich
            strFormel = Replace(rngBereich.FormulaR1C1, "=", "")
            strFormel = "=ROUND(" & strFormel & ",2)"
            If rngBereich.HasArray Then
                  rngBereich.FormulaArray = strFormel
            Else
                rngBereich.FormulaR1C1 = strFormel
            End If
        Next rngBereich
    
    oSh.EnableCalculation = True
    
    .ScreenUpdating = True
End With
End If
End Sub
Gruß Tino
Anzeige
AW: Makro für Runden
27.04.2010 13:00:53
jens-claus
Hallo Tino,
wenn ich das Makro laufen lasse, kommt eine Fehlermeldung und die Zeile:
rngBereich.FormulaR1C1 = strFormel
ist gelb unterlegt.
Gruß Jens
kann ich nicht nachvollziehen oT. (bin Offline)
27.04.2010 13:17:14
Tino
lade doch ein Beispiel hoch...
28.04.2010 07:41:20
Tino
Hallo,
wo dieser Fehler auftritt.
Gruß Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige