webForumDet fria alternativet

Excell, faktura + Fraktberäknare

Kontorsprogram

5 svar · 432 visningar · startad av Rickard

Medlem sedan maj 2001287 inlägg
Frågan#1

Hej!

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.

=C19*G19+C20*G20+C21*G21+C22*G22+C23*G23+C24*G24+C25*G25+C26*G26+C27*G27+C28*G28+C29*G29+C30*G30+C31*G31+C32*G32+C33*G33+C34*G34+C35*G35

Sen har vi cell M37 som beräknar fraktpriset mha.

=OM(H36<=1000;55;OM(H36<=2000;77;OM(H36<=3000;120;OM(H36<=5000;140;OM(H36<=10000;180;OM(H36<=15000;220;OM(H36<=20000;255;"Kontakta posten")))))))

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)

/Rickard

Medlem sedan feb. 20013 023 inlägg
#2

Hallå!

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

Väldigt flummigt ser jag nu...

Medlem sedan maj 2001287 inlägg
#3

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... =(

Medlem sedan maj 2001287 inlägg
#4

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.

Medlem sedan mars 20041 936 inlägg
#5

Högerklicka på verktygsfältet och välj "formulär"
klicka på "kommandoknapp" i verktygslådan och placerar där du vill ha den. Koppla till makrot.

Medlem sedan maj 2001287 inlägg
#6

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?

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)