Jag hjälper ofta kollegor med att förenkla beräkningar och liknande i Excel men undrar nu om det finns nåt program för att göre det lite snyggare och smidigare
Problemet är att det inte finns Excel på alla datorer där det skulle behövas så skulle vilja ha något som spottar ut en "stand-alone" fil som inte behöver något annat program för att fungera
Typ en bilder med lite fält där man knappar in data
Ett plus om det fungerar likt Excel eller är enkelt att lära sig
Vill minnas från skoltiden att Visual Basic kunde gör nåt liknande det jag vill
Är det ett program som fortfarande är aktuellt eller finns det bättre alternativ?
Har man en gnutta vana eller nyfikenhet på programmering är det relativt enkelt att komma igång med att göra enklare saker i C# med Windows Forms. I Visual Studio.
Allt grafiskt kan du då göra i en enkel wysiwyg-editor. Och är det bara enkla beräkningar du vill göra och skriva ut resultatet någonstans är det utöver själva uträkningen bara ett par rader kod som behöver skrivas typ.
Stenålderslösningen var Visual Basic. Rita knappar i typ "ritprogram för användarinterface", och sen klickar man på knapparna och lägger in den programkod man vill ska köras när användaren klickar på respektive knapp.
Annars, klart tristare för de flesta användare att använda, men lätt att skriva, är kommandoradprogram. Du får normalt en lista med alla argument och kan skriva ut text löpande, ungefär som att mata ut på en skrivare.
Kan du nån programmering alls? Typ erfarenhet av något språk?
Makron i Excel är vad jag förstått basic-baserade, ifall inget ändrats på länge. I så fall bör det vara lätt att fortsätta med Basic-baserade saker, även om folk ibland ser ner på Basic.
PureBASIC kanske? Två key-points som relaterar till ditt önskemål
Very fast BASIC compiler which creates highly optimized executables
No external DLLs, runtime interpreter or anything else required when creating executables
Annars finns ju Python med diverse GUI-bibliotek och det ska finnas sätt att kompilera/packetera program till en portabel .exe men det har jag ingen koll på.
MiaM skrev: ↑19 april 2025, 16:53:27
Stenålderslösningen var Visual Basic. Rita knappar i typ "ritprogram för användarinterface", och sen klickar man på knapparna och lägger in den programkod man vill ska köras när användaren klickar på respektive knapp.
Det är inte stenålders, det gäller även idag.
Mitt förslag med C# fungerar exakt så, bara att man skriver koden i C# istället för VB. Tror även VB funkar och underhålls än idag men tycker personligen det är bättre att gå på ett "riktigt" språk.
OeT skrev: ↑19 april 2025, 16:46:01
Tack för svar, ska kika på det
Finns allt jag behöver i Visual Studio eller behöver jag något mer?
Är helt ny på detta
Allt du behöver finns i VS, eller installeras automatiskt ihop med det när du under installationen väljer vad du ska använda det till.
Tänk på att du vill ha "vanliga" Visual Studio, inte Visual Studio Code.
Community-versionen av VS är gratis att använda hur länge man vill.
Nu gällde det väl i och för sig professionell användning vad jag förstod, då får man inte använda den gratis Community-versionen (men man kan....).
Så då kanske det inte är aktuellt för TS.
Det allra enklaste (om man kan) är kanske att skapa en html-sida och sen spara den som en .hta-fil så kommer browsern öppnas utan menyer när man dubbelklickar på den. Ser då ut som ett program.
Då har man full frihet att med formulär och javascript skapa vad som helst. Jag har gjort ett ganska avancerat frågeformulär med en hel del beräkningar och flera "sidor" inom sidan genom att byta innehåll i en div eller om det var att gömma/visa olika div:ar.
Väljer man att göra det i c# så finns det sharpdevelop ide för att göra GUI det är helt open source och fritt så att använda det i kommersiella sammanhang ska inte vara något problem.
Sen som någon annan har skrivit så kan man ju även göra det i html JavaScript, och i utvecklingsfasen använda externa is cast filer men i release så kan ju allt bakas ihop till en enkel html, det finns ju react och liknande ramverk för att komma igång med gui snabbare.
Sen om man vill spara data så finns det i vissa webbläsare möjlighet att ha direkt åtkomst till en fil (kräver dock att användaren bekräftar detta vid varje körning)
Har datorerna web åtkomst så är det bara i använda Google Docs Excel
Installera LibreOffice där du saknar XL
Be chatgpt om ett Basic macro om du känner dig bekväm med Basic,
annars är nog Python skript "populärare" idag.
LibreCalc klarar säkert 95 % av vad XL klarar, det som inte funkat "oob" för mig har varit
script och databas integrationen, där behövs det lite enklare handpåläggning.
Perfekt, då gör vi ett LibreOffice **Basic-makro** som:
1. Frågar dig efter resistansen (R i ohm).
2. Räknar ut effekten ( P = \frac{U^2}{R} ) för spänningar från 0 till 100 V.
3. Skriver en tabell i ett nytt Calc-blad med kolumner för **Spänning (V)** och **Effekt (W)**.
```basic
Sub EffektTabell()
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object
Dim R As Double
Dim U As Integer
Dim P As Double
Dim i As Integer
' Be användaren mata in resistansen i ohm
R = InputBox("Ange resistans (Ohm):", "Resistans")
If R <= 0 Then
MsgBox "Resistansen måste vara större än 0!"
Exit Sub
End If
' Skapa nytt Calc-dokument
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
oSheet = oDoc.Sheets(0)
' Rubriker
oSheet.getCellByPosition(0,0).String = "Spänning (V)"
oSheet.getCellByPosition(1,0).String = "Effekt (W)"
' Loopa från 0 till 100 volt
For U = 0 To 100
P = (U * U) / R
oSheet.getCellByPosition(0, U+1).Value = U
oSheet.getCellByPosition(1, U+1).Value = P
Next U
MsgBox "Tabellen är klar!"
End Sub
```
Så här använder du koden:
1. Öppna LibreOffice Calc.
2. Gå till **Verktyg > Makron > Organisera makron > LibreOffice Basic**.
3. Välj din arbetsbok (eller "Mina makron") → klicka **Nytt** → ge modulen ett namn.
4. Klistra in koden ovan.
5. Kör makrot via **Verktyg > Makron > Kör makro…**.
Då får du ett nytt blad med spänningarna 0–100 V och motsvarande effektvärden.
Vill du att vi gör så att du kan ange både **startspänning, stoppvärde och stegstorlek** istället för att alltid ta 0–100 V i steg om 1?