Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA / Formel für Aufrunden
#1
Hallo,

 mein Freund hat von einer Kollegin eine Datei mit einem Makro übernommen und würde gerne etwas am Ergebnis des Makros ändern.
 
Es werden Teilergebnisse in den Spalten A, D und L gezogen.
In Spalte L wird dann das Ergebnis mit
 
=ROUND(RC1/4,0)
 
überschrieben.
In Spalte T, die komplett leer ist, soll das Ergebnis des Aufrundens in der jeweiligen Zeile mit übernommen werden.
 
Bisher sieht es so aus:

Code:
    Selection.Subtotal GroupBy:=7, Function:=xlSum, TotalList:=Array(1, 4, 12), _
        Replace:=True, PageBreaks:=True, SummaryBelowData:=True
    Selection.ClearOutline
  With Columns(12)    'L
    .Copy
    .PasteSpecial xlPasteValues
    .Replace What:="0", Replacement:=vbNullString, LookAt:=xlWhole
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=ROUND(RC1/4,0)"
  End With
   Dim arr, i As Long
   arr = Cells(1, 1).CurrentRegion.Columns(12)
   For i = 2 To UBound(arr)
     If Not IsNumeric(arr(i, 1)) Then arr(i, 1) = vbNullString
   Next i
   Cells(1, 20).Resize(UBound(arr)) = arr

So weit so gut. Allerdings soll nun anstatt der Werte des Aufrundens die tatsächliche Formel beibehalten werden, da die Datei nach Nutzung des Makros weiterhin erweitert bzw. reduziert wird und die jeweiligen Zellen weiterhin dynamisch sein sollen.
 
Könnt ihr mir also sagen, wie ich den o.g. Code so anpassen kann, dass in L die Formel erhalten bleibt und in T die Formel ebenfalls angezeigt wird, aber der Rest der Spalte weiterhin leer bleibt?
 
Vielen Dank!
 
LG
Fanny
Antworten Top
#2
Hallöchen,

dieser Teil
Code:
With Columns(12)    'L
    .Copy
    .PasteSpecial xlPasteValues
    .Replace What:="0", Replacement:=vbNullString, LookAt:=xlWhole
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=ROUND(RC1/4,0)"
  End With

ersetzt die Formeln in L durch die Ergebnisse. Also nimm ihn raus ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hi, 

danke für die Antwort.
Das hatte ich auch schon mal rausgenommen. Das Problem hierbei ist dann, dass der komplette Befehl des Aufrundens dann auch nicht mehr vorhanden ist. 

Die Spalte ist jetzt leer, die Formel soll aber schon drinnen bleiben.

Gruß
Fanny
Antworten Top
#4
Hallöchen,

ich dachte, da steht vorher eine Formel drin ... Dann nimm nur das weg:
.Copy
.PasteSpecial xlPasteValues
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste