Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 6 van 6

Onderwerp: VBA - vaste markup met formule berekenen

  1. #1
    Junior Member
    Geregistreerd
    15 november 2010
    Vraag is niet opgelost

    VBA - vaste markup met formule berekenen

    Goedemorgen,

    Ik wil het volgende kunnen bereiken middels een VBA formule:

    - In een cel wil ik een waarde in kunnen vullen
    - Middels een VBA button wil ik een formule activeren die wordt toegepast op een gedefinieerde range. De formule is (inkoopprijs+ingevulde waarde in de cel)*1,21)
    - In sommige gevallen is er geen inkoopprijs ingevuld en/of bekend. In dat geval wil ik de cel blanco houden zonder foutmelding of iets dergelijks

    Ik heb een voorbeeld Excel toegevoegd ter verduidelijking van het idee.

    Is er iemand die mij zou kunnen helpen?

    Bedankt alvast!
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Dat kan toch gewoon met een simpele Excel formule?
    PHP Code:
    1
    
    =ALS.FOUT((B8+$D$3)*1,21;"")
    Laatst aangepast door edmoor : 23 mei 2020 om 11:16
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  3. #3
    Junior Member
    Geregistreerd
    15 november 2010
    Hi Ed,

    Ongelofelijk hoe snel jij elke keer bent met reageren! Met de desbetreffende formule loop ik aan tegen het feit dat er naderhand handmatig nog cellen worden aangepast/ingevuld waardoor de formules overschreven worden. Dit is de reden dat een VBA uitkomst kan bieden.

    Is daar een manier voor?

    Alvast bedankt!

  4. #4
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Zet dan dit achter het blad in plaats van een knop:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 5 And Target.Row > 7 And Target.Count = 1 Then
            Application.EnableEvents = False
            Range("E8").FormulaLocal = "=ALS.FOUT((B8+$D$3)*1,21;"""")"
            Range("E8").AutoFill Destination:=Range("E8:E" & Range("C8").CurrentRegion.Rows.Count + 6)
            Application.EnableEvents = True
        End If
    End Sub
    Dan wordt bij een al dan niet onbedoelde wijziging in kolom E altijd de formule terug gezet.
    Laatst aangepast door edmoor : 23 mei 2020 om 11:51
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  5. #5
    Junior Member
    Geregistreerd
    15 november 2010
    Quote Origineel gepost door edmoor Bekijk Bericht
    Zet dan dit achter het blad in plaats van een knop:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 5 And Target.Row > 7 And Target.Count = 1 Then
            Application.EnableEvents = False
            Range("E8").FormulaLocal = "=ALS.FOUT((B8+$D$3)*1,21;"""")"
            Range("E8").AutoFill Destination:=Range("E8:E" & Range("C8").CurrentRegion.Rows.Count + 6)
            Application.EnableEvents = True
        End If
    End Sub
    Dan wordt bij een al dan niet onbedoelde wijziging in kolom E altijd de formule terug gezet.
    De formule werkt top! Het enige waar ik nu nog tegenaan loop is dat de verkoopprijs in deze overschreven mag worden door de gebruiker. Het geldt eigenlijk als een soort automatisch gegeneerd advies die ze eventueel zelfstandig kunnen afronden, verhogen en/of verlagen. In deze vorm is het bindend (wat overigens dan wel weer super bruikbaar is voor andere delen van het document). Daarnaast geeft de cel ook resultaat als de mark-up (D3) niet is ingevuld. In dat geval zou het dan blanco moeten blijven. Is het dan toch beter om met een button te werken?

    Bedankt weer voor je hulp!

  6. #6
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Als de verkoopprijs overschreven mag worden heeft het uiteraard totaal geen zin.
    Gebruik dan een extra kolom waarin de gebruiker een plus of min bedrag kan zetten die je dan in de formule mee neemt.

    Als hij niets moet doen als D3 leeg is kan je dat als extra controle in de formule zetten:
    Code:
    Range("E8").FormulaLocal = "=ALS($D$3<>0;ALS.FOUT((B8+$D$3)*1,21;"""");"""")"
    Laatst aangepast door edmoor : 23 mei 2020 om 12:33
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren