ich bins nochmal. Leider krieg ich das mit dem ActiveSheets nicht so hin wie ich gern hätte:
Sub Runden()
Dim Zelle As Object
Dim ws As Worksheet
Dim nZeile As Integer
Dim vSpalte As Integer
Dim vZeile As Integer
Dim nSpalte As Integer
For Each ws In ActiveWindow.SelectedSheets
nZeile = 1
nSpalte = 33
vSpalte = 32
'max. m/z kopieren 33
For vZeile = 1 To ws.Cells(65536, vSpalte).End(xlUp).Row
ws.Cells(nZeile, nSpalte) = ws.Cells(vZeile, vSpalte)
ws.Cells(nZeile, nSpalte + 1) = ws.Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
'Aufrunden AG
For Each Zelle In Range("AG:AG")
If IsNumeric(Zelle) And Zelle "" Then Zelle = WorksheetFunction.RoundUp(Zelle, 0)
Next
'Abrunden AH
For Each Zelle In Range("AH:AH")
If IsNumeric(Zelle) And Zelle "" Then Zelle = WorksheetFunction.RoundDown(Zelle, 0)
Next Zelle
Next ws
End Sub
Also an sich funktioniert es bisher so wie ich es brauche. Allerdings funktioniert der Rundungsteil nur im der Zeit aktiven Fenster. Wahrscheinlich weil ich nach der Zeile For Each ws In ActiveWindow.SelectedSheets noch mal For Each Zelle In Range("AH:AH") stehen habe? Ich habe schon verschiedenes versucht um es umzustellen aber durch meine mangelnden Kenntnisse ist mir dies leider nicht gelungen.
Dachte dass dadurch dass das Next ws ganz unten steht es automatisch für alles gilt was dazwischen liegt. Aber wie gesagt ich habe nicht wirklich einen Plan und es war rein aus dem Bauchgefühl heraus. Freue mich aber über Erläuterungen.
Hat jemand eventuell noch einen Tipp?