Jag sitter och försöker knåpa ihop en (semi)automatisk faktura där ett av fälten skall beräkna frakten för varorna som skall skickas enligt postens portotabell.
Som bekant kan jag ju inte kapsla mer än 7 funktioner, så min beräknare äan tyvärr inte bli allt för behälplig.
Jag skulle behöva lite hjälp och tips om hur jag skall gå tillväga.
Så här fungerar den just nu.
cell H36 beräknar den totala vikten på försändelsen mha.
Som det ser ut just nu så kan den beräkna fraktpriset på försändelser upp till 20 kg, men jag skulle vilja att den börjar om. Dvs. när försändelsen väger mer än 20 kilo ska den dela totalvikten 20 så den får fram hur många försändelser det blir och på så vis kan räkna fram. tex. en försändelse på 30 kg blir 2 försändelser, en på 20kg á 255:- och en på 10kg á 180, 255+180=435:-
Är detta möjligt?
(hoppas ni förstår vad jag menar)
Med ett inte alltför avancerat excelmakro fixar du biffen. Koppla makrot till en knapp som du lägger bredvid cellen.
halvfärdig kod att börja med:
Public Sub CalcFreightCost()
Dim dblWeight As Double
Dim Quote As Double
Dim pack
Const Price1 As Integer = 55
Const Price2 As Integer = 77
Const Price3 As Integer = 99
Const Price5 As Integer = 100
Const Price10 As Integer = 100
Const Price15 As Integer = 100
Const Price20 As Integer = 100
dblWeight = Range("M37").Value
Quote = dblWeight / 20
'Ta heltalsdelen av quote, multiplicera med fraktpris för '20 kg
BigPackets=heltals_del_av_quote*Price20
'Ta "resten"
select case rest
case <1
LastpackageCost=55
case <2
LastpackageCost=55
'osv, osv
end select
'Slutsumma
FinalSum=LastPackageCost+BigPackets
End Sub
uhm.. mjo, flummigt var ordet...
Jag hänger inte med als.. =)
Fick lära mig lite macro nät jag gick excellkurs för ett par månader sen, men det var tyvärr inget som fastnade i huvudet... =(
Nåväl.. har försökt, men är inte säker på att jag har förstått...
Då jag hoppade över några vikter (kör från 3kg till 20 istället)
så har jag gjort koden enligt följande:
Public Sub CalcFreightCost()
Dim dblWeight As Double
Dim Quote As Double
Dim pack
Const Price3 As Integer = 120
Const Price5 As Integer = 140
Const Price10 As Integer = 180
Const Price15 As Integer = 220
Const Price20 As Integer = 255
'Const Price15 As Integer = 100
'Const Price20 As Integer = 100
dblWeight = Range("M37").Value
Quote = dblWeight / 20
'Ta heltalsdelen av quote, multiplicera med fraktpris för '20 kg
BigPackets = heltals_del_av_quote * Price20
'Ta "resten"
Select Case rest
Case Is < 3
LastPackageCost = 120
Case Is < 5
LastPackageCost = 140
Case Is < 10
LastPackageCost = 180
Case Is < 15
LastPackageCost = 220
Case Is < 20
LastPackageCost = 255
'osv, osv
End Select
'Slutsumma
FinalSum = LastPackageCost + BigPackets
End Sub
Frågan är sen bara, hur skapar jag en knapp brevid cellen?
Detta hänger jag inte med på als.
Tack för hjälpen, då var det ordnat... dock verkar det inte fungera, och jag har inte den blekaste vad som kan vara fel.
Väljer jag M37 i " dblWeight = Range("M37").Value " så får jag felmeddelandet: "Körfel '13', inkompatibla typer" och så markerar den ovan nämnda rad.
M37 är då förståss menad att visa fraktkostnaden.
Byter jag i stället till cellen H36 som visar den totala vikten på ordern (i gram) så händer ingenting någonstans.
Väljer jag en annan cell som är tom, gäller detsamma som i tidigare fall.. ingenting händer.
Vad kan jag ha gjort för fel tro?
313 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e