afronden in grote reeksen

Status
Niet open voor verdere reacties.

Binatang

Nieuwe gebruiker
Lid geworden
15 aug 2006
Berichten
2
Hallo,

Ik wil vba in een spreadsheet met grote reeksen afronden op 0 decimalen, alleen nu stopt hij elke keer als hij een cel met de waarde 0 tegenkomt terwijl de reeks nog doorloopt. Weet iemand hoe je dat kan oplossen? Onderstaande heb ik al:

Sub afronden2()
' waarde inlezen, afronden en weer neerzetten
Dim waarde, nw_waarde
Application.ScreenUpdating = False

Do Until ActiveCell.Value = ""
Do Until ActiveCell.Value = ""
waarde = ActiveCell.Value
nw_waarde = Round(waarde, 0)
ActiveCell.Value = nw_waarde
Selection.NumberFormat = "#,##0"
ActiveCell.Offset(1, 0).Range("A1").Select
Loop

Selection.End(xlUp).Select
Selection.End(xlUp).Select
ActiveCell.Offset(3, 1).Select
Loop
Application.ScreenUpdating = True

End Sub

Tis dus de bedoeling dat hij per kolom alle cellen afrond dus bijv van a1:a1029 en als dan bijv A518= 0 stopt hij dus :evil: terwijl ik graag wil dat hij naar 1029 gaat.

Ik hoor het graag
Alvast bedankt
gr
Johannes
 
Ik zou dit zo doen:

je hebt geen lus nodig.

Code:
Sub afronden2()
    
    Application.ScreenUpdating = False

    With Range("A1:A1029")
    
        .Offset(0, 1).Formula = "=round(RC[-1],0)"
        .Offset(0, 1).Copy
        .PasteSpecial xlValues
        .Offset(0, 1).ClearContents
    
    End With
    
    Application.ScreenUpdating = True

End Sub

Wigi
 
Hoi Wigi,

Dit werkt goed! Hoedoe je dat als elke kolom een andere range heeft?
 
Dit werkt goed! Hoedoe je dat als elke kolom een andere range heeft?

Met een lus doorheen de kolommen, massa's voorbeelden van lussen in de Excel en VBA secties hier. Kijk maar eens rond, o.a. maar niet uitsluitend in posts die ik zelf schrijf.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan