• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Prijs verhogen en verlagen uitkomst afronden

Status
Niet open voor verdere reacties.

mnemonic

Gebruiker
Lid geworden
25 mrt 2016
Berichten
114
Hallo,
Ik ben nu tegen een probleem aangelopen waar ik helemaal geen kaas van gegeten heb.
In mijn testbestand heb ik een tabblad "Artikellijst"
Hier staan artikelen (en er worden elke keer wat bijgevoegd en weggehaald) met in kolom E van ieder artikel een prijs.
Nu moet elk jaar de prijs aangepast worden door middel van userform3 in procenten maar ook de uitslag van elk product moet op nul of 5 eurocent eindigen, dus geen eurocenten aan het eind.
Geen 43.72 maar 43.70 geen 43.73 maar 43.75 enz.
Hier loop ik helemaal vast dus als iemand mij wil helpen zou dit geweldig zijn.
M.v.g.
Jan
 

Bijlagen

Laatst bewerkt:
Dag Jan,

Doet dit wat je wilt?

Code:
Private Sub CommandButton1_Click()
If TbVerhoging = "" And TbVerlaging = "" Then MsgBox "Vul een percentage in!": Exit Sub
If TbVerhoging <> "" And TbVerlaging <> "" Then MsgBox "Er mag maar één percentage worden ingevuld": Exit Sub

Sr = Range("E9:E" & Range("E" & Rows.Count).End(xlUp).Row)

If TbVerhoging <> "" Then X = TbVerhoging.Value Else X = TbVerlaging.Value
     For i = 1 To UBound(Sr)
       Sr(i, 1) = Round((Sr(i, 1) * (100 + X) / 100) / 0.05) * 0.05
     Next
Range("E9:E" & Range("E" & Rows.Count).End(xlUp).Row) = Sr
End Sub
 
Heel erg bedankt SjonR voor je snelle reactie.
Zelf vind ik vba al pittig maar als er dan ook nog berekeningen bij komen al helemaal. (geen wiskunde knobel :d)
Hij doet het super.
Hier kan ik zeker wat mee.
Bedankt dat je dit voor mij wilde maken :thumb:
 
Maak echte getallen met een komme ipv een punt.
Code:
Private Sub CommandButton1_Click()
 Range("e9", Cells(Rows.Count, 5).End(xlUp)).Name = "bereik"
[bereik] = Application.MRound(Evaluate("bereik+bereik*" & TbVerhoging & "%"), 0.05)
Application.Names("bereik").Delete
End Sub

Kan ook zo.
Code:
[bereik] = Application.MRound(Evaluate("bereik*1" & TbVerhoging & "%"), 0.05)
 
Laatst bewerkt:
Code:
Private Sub CommandButton1_Click()
  Range(Blad3.Cells(9, 5), Blad3.Cells(9, 5).End(xlDown)).Name = "snb"
  Names.Add "nieuw", TbVerhoging / 100

  [snb].Offset(, 6) = [index(MRound(snb* (1+ nieuw), .05),)]
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan