Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Anders (software)

functie toevoegen aan cel waarin al functie staat Excell

Doof
7 antwoorden
  • Ik wil aan een aantal cellen waar de functie som(bereik) de functie afronden() toevoegen. Dus het wordt dan afronden(som(bereik);0).

    Omdat het bereik steeds een andere lengte heeft, is kopieren geen optie

    Omdat het om aardig wat cellen gaat, vroeg ik me af of dat op een snelle handige manier kan. Het aantal decimalen verminderen is niet afdoende
  • Kun je dan niet zoiets doen als met "Zoeken en vervangen" en dan SOM(
    vervangen door AFRONDEN(SOM(?

    Het is maar een idee of het werkt?
  • Het probleem is mij niet helemaal duidelijk.
    Kan je iets specifieker zijn?
    Ik ben namelijk aan een macro het denken.


    Hee bovenbuurman, we gaan gelijk op met aantal posts ;)
  • Brandsrus,daarmee kom je een heel eind, maar dan mis je het tweede gedeelte van de functie afronden nl: ;0)

    Floor : de formule som(A1:a15) moet worden afronden(som(a1:A15);0)

    terwijl de formule som( b3:b5) moet worden afronden(som(b3:b5);0)

    enz enz
  • En daarna "Zoeken en Vervangen", vervangen ) door );0)

    Of krijg je dan al foutmeldingen?
  • Heb daar in het verleden een macro voor geschreven, misschien bruikbaar voor je.

    [code:1:a81b0e2ca6]
    Sub afronden_op_2_decimalen()
    '
    ' De macro zoekt alle formules in het werkblad op en
    ' rondt de waarde af op 2 decimalen

    On Error GoTo errorHandler
    Dim myDoc As Worksheet
    Dim test As String
    Dim cel As Range
    Set myDoc = ActiveSheet
    'myDoc.Unprotect
    For Each cel In myDoc.UsedRange
    test = Mid(cel.Formula, 1, 6)
    If cel.HasFormula And test <> "=ROUND" And _
    Application.IsNumber(cel) And _
    Not TypeName(cel.Value) = "Date" Then
    cel.Formula = "=ROUND(" & Mid(cel.Formula, 2, Len(cel.Formula)) & ",2)"
    End If
    Next
    'myDoc.Protect
    Exit Sub

    errorHandler:
    MsgBox Error
    End Sub
    [/code:1:a81b0e2ca6]

    De laatste 2 in de code geeft de decimalen waarop afgerond wordt. Kan je dus eventueel aanpassen.
  • Ik heb de macro aangepast en het ziet er nu zo uit :
    On Error GoTo errorHandler
    Dim myDoc As Worksheet
    Dim test As String
    Dim cel As Range
    Set myDoc = ActiveSheet
    myDoc.Unprotect
    For Each cel In myDoc.UsedRange
    test = Mid(cel.Formula, 1, 6)
    sommeren = Mid(cel.Formula, 1, 4)
    If cel.HasFormula And test <> "=ROUND" And _
    sommeren = "=SUM" And _
    Application.IsNumber(cel) And _
    Not TypeName(cel.Value) = "Date" Then
    cel.Formula = "=Afronden(som" & Mid(cel.Formula, 5, Len(cel.Formula)) & ",0)"
    End If
    Next
    'myDoc.Protect
    'Exit Sub

    errorHandler:
    MsgBox Error

    End Sub[/color:d65663b4ad]

    Hij doet het nu, ontzettend bedankt voor deze macro, het scheelt me een hoop tijd.

    Ik ga nu nog proberen de macro alleen op de geselecteerde cellen te laten uitvoeren, dat zal wel zoiets moeten zijn als mydoc.selectedrange
    Moet me lukken om uit te vogelen

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.