Date: prev next · Thread: first prev next last


Har klurilurat lite på ett makro som du kan testa om du vill. Det
finns några länkar lite längre ner i texten där du kan ladda ner en
testfil och själva koden. Har testat på lite olika värden och det
VERKAR fungera, men det är bäst att du själv testar, som vet vilka
konstigheter man kan råka ut för.

I testdokumentet har jag lagt in två knappar direkt i kalkylbladet så
att du lätt kan testköra. Det finns lite textrutor som förklarar lite
av det jag gjort också.
Makrot fungerar bara på första kolumnen i första bladet, men om detta
inte passar är det väldigt enkelt att ändra det i makrot, eftersom jag
har lagt kolumn och första rad i kolumnen som två variabler som du
enkelt kan ändra. De ligger båda två som globala konstanter, så de är
lätta att hitta.

På rad 19 hittar du:
Const iColumn=0
Const iFirstRow=0

När det gäller iColumn så betyder 0 kolumn A. Kolumn B=1 och så vidare.
iFirstRow är vilket radnummer som första inmatningen finns. 0 betyder
rad 1 och så vidare. Exempelvis befinner sig cell B17 på rad 16.

Så om dina inmatningar börjar på D2 och fortsätter ner genom
D-kolumnen, ändrar du till:
Const iColumn=3
Const iFirstRow=1

Man ska inte leka med oprövade makron i skarpa filer, så testa min fil
och lek lite med den. Du kan ju kopiera in en massa värden från din
fil till A-kolumnen i min och se vad som händer när man klickar på de
olika knapparna.
När man konverterat en gång, kommer makrot nästa gång att fortsätta på
raden efter den rad den senast slutade på. Information om nästa rad
att bearbeta ligger i cell Z1, men det behöver du oftast inte bry dig
om, eftersom jag lagt till en knapp som nollställer den automatiskt åt
dig. Exempelvis om några rader tagits bort, så stämmer ju inte längre
informationen i Z1. Då är ju botemedlet att nollställa den, vilket du
alltså kan göra med ett klick. Det tar då lite längre tid att köra
makrot, men det är ju bara den gången. Nästa gång börjar den åter där
den senast slutade.

Om du använder detta makro, behöver du inte alls så komplicerade
formler på ditt andra blad för att göra om de inmatade värdena till
ett mer enhetligt format. Frågan är om du behöver det andra bladet
över huvud taget, men det kanske finns andra skäl att ha det kvar, det
vet ju inte jag.

Det finns en känd bugg i makrot, som det ser ut just nu, och det är
att om det finns tomma celler här och var blandat med celler som inte
är tomma (i den kolumnen alltså), kommer dessa att konverteras till 0
och visas som ”0,00 kr”. Kommer det inte att förekomma några tomma
rader, så gör det ju ingenting, annars kan jag kanske klura ut en
lösning på det också. Dock kommer makrot förmodligen att gå
långsammare då, men kanske fortfarande tillräckligt snabbt.

Här är en länk till mitt exempelkalkylblad där makrot är ”installerat”
och klart att köra (om du lägger filen i en mapp där du tillåter
makron att köras – det där med makrosäkerhet och hur man ställer in
det, kan vi ta vid ett senare tillfälle om det skulle bli problem med
den biten):
http://ubuntuone.com/1FNW42vD9X2KYVOceOAcLr

När du testat klart och känner dig redo att använda makrot i ditt eget
dokument, kan du importera det från denna fil:
http://ubuntuone.com/1HGRy1g919prfwtJjxArLh

Knappar eller kortkommandon måste du dock själv konfigurera. Om du
inte vet hur man gör det, eller lyckas komma på det själv, är det bara
att fråga, så tar vi det då.

Om du testat filen och finner några fler buggar är det bara att höra
av sig med information om vad som gick snett, så kan jag göra ett
försök att få ordning på det. Har som sagt testat på ett antal olika
värden och det har fungerat varje gång, men vem vet vad som kan gå
snett när någon annan testar på andra värden? :P


Johnny Rosenberg

-- 
For unsubscribe instructions e-mail to: users+help@sv.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/sv/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.