Lägg egna arbetsrutiner och kod i PERSONAL.XLS i Excel

Nivå: medelsvår

Om du vill ha egna rutiner, programkod etc. är det mycket effektivt att lägga sådant i en PERSONAL.XLS (för Excel 2003). PERSONAL.XLS är en gömd arbetsbok som öppnas varje gång man startar Excel. De makron man lägger där, är tillgänglig från alla arbetsböcker som är öppna i Excel. Mycket användbart!

En bra beskrivning över hur man skapar en PERSONAL.XLS finns på Microsoft Support. Klicka länken för mer information: https://support.microsoft.com/en-us/kb/288117

Share

FileSearch Object – skapa en katalog över datafiler med hjälpa av Excel

Nivå: Medelsvår

I det här exemplet används FileSearch objektet i Excel.  Kanske har du kataloger på datorns hårddisk  som innehåller en massa filer? Kanske vill du skapa dokumentation över filerna, eller bara skapa mer ordning. Katalogen kan innehålla t.ex Word-dokument, mp3-filer, bildfiler eller liknande.  Nedan en beskrivning över hur man skapar ett makro i Excel som listar alla filer i en katalog på hårddisken och skriver namnen på filerna till ett kalkylark.  Här följer de olika stegen: 

1. Starta programmet Excel

2. Gå in Visual Basic Editor (VBE) genom att trycka tangenterna Alt+F11 samtidigt.

3. Kalla makrot för SkapaEnLista och skriv in följande programkod i kodmodulen.

======== Kodstart ================

 Sub SkapaEnLista()
    Directory = ”C:\Musik\”
    r = 1
    ’Sätt in kolumnrubriker…
    Cells(r, 1) = ”Filnamn”
    Cells(r, 2) = ”Storlek”
    Cells(r, 3) = ”Datum/Tid”
    Range(”A1:C1”).Font.Bold = True
    ’Hämta första filen…
    f = Dir(Directory, 7)
    Do While f <> ””
        r = r + 1
        Cells(r, 1) = f
        Cells(r, 2) = FileLen(Directory & f)
        Cells(r, 3) = FileDateTime(Directory & f)
        ’Nästa fil..
        f = Dir()
    Loop
End Sub

======== Kodslut ================

4. När programkoden är inskriven, spara och provkör sedan makrot genom att trycka F5. Om allt fungerar skall nu Excel skapa en lista över dina datafiler och lägga dessa i ett kalkylark.

Kommentar: Notera att proceduren använder den inbyggda funktionen Dir två gånger. Första gången hämtar den det första filnamnet, när inga mer filnamn hittas, returnerar funktionen en tom sträng. I exmplet ovan antar vi att vi har en katalog på hårddisken som heter Musik. Din katalog kanske heter något annat, så här kan du ändra namnet så att det matchar namnet påkatalogen du har,  så du kan skapa din kataloglista i Excel. Detta är ett exempel på hur man på ett sätt som man kan ta in externa data i Excel, för att fortsätta sin datamanipulationen där.

Share

Stimulerande datakurs i NVIVO 8

Var i Onsdags och Torsdags i Göteborg för att gå en datakurs i programmet NVIVO. Versionen på NVIVO var # 8.  Det är svårt att kort beskriva vad NVIVO är, men man kan säga att det är ett program som är utvecklat bl.a för s.k. kvalitativ forskning och arbete med fokusgrupper. Det finns andra användningsområden också, men dessa nämnda är kanske de vanligaste.  Har du  någon gång kommit i kontakt med begrepp som exempelvis Ground Theory,  så förstår du kanske  vad man kan uträtta med programmet. Jag har själv inte arbetat så mycket med NVIVO än, men efter kursgenomgången så börjar jag åtminstone förstå den oerhörda potentialen som finns i programmet.  Man kan nästan ”göra allt” och det verkar inte finnas några begräsningar, annat än mentala och föreställningsmässiga. Nåvål, riktigt så enkelt är det inte, men det går att uträtta mycket med programmet.  Det bästa med programmet är också den största svagheten:  programmets flexibilitet. Vad som krävs för att lyckas med NVIVO är att man är oerhört strukturerad och att man vet vad man vill uppnå när man startar ett NVIVO-projekt.  Är man inte strukturerad i NVIVO, så är man snart förlorad. Bra sidor i programmet är att man kan involera olika media i sina NVIVO-projekt, t.ex ljudfiler, videoklipp, bildanalys.  Det finns en s.k. utvärderingsversion av programmet om man vill prova på deras hemsida, http://www.qsrinternational.com/

Share

Excel’s SelectionChange event

Nivå: Medelsvår

Här följer ett exempel på hur man kan använda SelectionChange event i Excel.  Exemplet går ut på följande:  när användaren stegar runt med piltangenten på ett Excelark med data, kommer aktuell koulmn och rad att markeras och bli gulmarkerad.  Exemplet visar hur man kan göra det enkelt för en användare att visa en speciell cell med data, kan vara bra vid en presentation t.ex.

VBA-koden som utför detta läggs i detta fall på själva arket där data finns. Öppna VBE med tangent Alt+F11 i Excel och skriv in följande VBA-kod på det kalkylark, där data finns:

================Kodstart===========================

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.ColorIndex = xlNone
    With ActiveCell
        .EntireRow.Interior.ColorIndex = 36
        .EntireColumn.Interior.ColorIndex = 36
    End With
End Sub
===================== kodslut========================

Koden ovan gör följande: först tas bakgrundsfärgen bort för alla celler i arket. I nästa sekvens skuggas kolumnen,  raden och cellen  gul, när man stegar upp eller ner med piltangenten på arket.

Du kan ladda ner exemplet och testa själv på egen hand,  Excel_SelectionChangeEvent.

Share

Excel’s Worksheet events och Chartobject

Nivå: Avancerad

Om man utvecklar applikationer i t.ex Excel vill man att den skall göra något. Med hjälp av Events (händelser) kan man uträtta olika uppgifter. Ett exempel på ett event är en användare som klickar t.ex på en OK-knapp, eller klickar på Avbryt om händelsen inte skall inträffa etc. Ett annat exempel är att något skall hända när man startar en arbetsbok i Excel. Exempelvis vill vi att Excel automatiskt skall sortera en massa kalkylark varje gång arbetsboken  öppnas, någon uppgift skall utföras innan användaren sparar och stänger en arbetsbok. Listan på exempel kan göras lång.

I Excel finns det otroligt många varianter på hur man kan utföra olika typer av händelser genom att  använda sig av s.k event handler procedures. I detta exempel skall vi titta på på ett  ganska sofistikerat exempel där vi använder Worksheet events och Chart events.

Exemplet: Antag att vi vi har ett kalkylark med försäljningsdata och vad vi vill ska hända är att varje gång vi går upp eller ned med piltangenten, i kolumnen, så uppdateras ett diagram automatiskt för varje försäljare.  

Om du vill se Excel-exemplet och hur det fungerar, klicka  Excel_Event för nedladdning.

Share

Grundkurs i EpiInfo

Epinfo är ett utmärkt program för statistik- och epidemiologi.  Programmet används mycket inom områden som t.ex Folkhälsovetenksap. Programmet är gratis att använda och har tillverkats av amerikanska CDC (motsvarar vår Socialstyrelse ungefär). Programmet togs från början fram som ett verktyg för amerikanska myndigheter att få in hälso -och sjukvårdsstatistik från privatkliniker. Programmet fick stor användning och spridning under 80-90 talen och då som ett viktigt redskap i arbetet mot HIV/AIDS. Programmet räknar otroligt snabbt, tar liten plats på hårddisken. Det kan faktiskt fungera på en dator utan fasta hårddiskar! Programmet är fortfarande en klar personlig favorit, även om jag idag inte använder det så ofta.  En sak är programmet fortfarande helt ”outstanding” på, och det är att skapa s.k. registreringsformulär för att registrera data från t.ex enkätundersökningar. Det finns inget kommersiellt program som slår EpiInfo här…Fortfarande! Någon kanske undrar om det fungerar på moderna datorer? EpiInfo fungerar alldeles förträffligt bra under t.ex Windows XP. Inga problem! Jag har inte provat programmet på en Windows Vista-dator, men någon där ute kanske har gjort detta? Meddela gärna mig hur det gick!

I EpiInfo’s anda kommer här en grundkurs på svenska som du kan ladda ner,  Grundkurs_EpiInfo1996,  som jag hittade på datorn! Håll tillgodo och lycka till.  

Här du inte programmet kan du ladda ner det GRATIS på den här adressen, http://www.cdc.gov/epiinfo/epi6/ei6.htm . Det inte är många som använder installationsdisketter idag, men jag kan upplysa om att det går alldeles utmärkt bra att installera EpInfo från ett USB-minne.

Share

Förstå RANGE i Excel

Nivå: Avancerad

(Till detta exempel finns en Excelarbetsbok med programkod att ladda ner för den som vill fördjupa sig. ) När man arbetar med Excel och utvecklar egna makron är objetet RANGE grundläggande i Excel. Man kan förstå RANGE som att det är ett område av celler i ett kalkylark som ges ett namn. När man väl förstått hur RANGE fungerar och hur man kan använda det, öppnas en helt ny värld av möjligheter och lösningar.

I detta exempel antar vi följande:
Vi skall leta efter en speciell egenskap i ett definierat område med celler (…ett Range!).  Vi har två kolumner på ett Excelark, kolumnen Produkt, och kolumnen Pris. Antag nu att vi vill leta efter alla som har egenskapen Produkt A i arket. När vi hittar Produkt A, vill vi att priset skall markeras och bli rött. Vi vill också att programmet skall tala om för oss hur många Produkt A det fanns i prislistan. Som grädde på moset så lägger vi till hur lång tid det tog för  Excel att utföra proceduren att räkna igenom det hela.

Här är ett förslag till lösning:
Förberedelser: Innan vi börjar programmera i Excel, definierar vi två områden(=RANGE) där vi skall leta. Det ena området med celler kallar vi Produkt, det andra området kallar vi Pris. Namnområdet skapas genom att det defineras från menyraden i Excel, under, Infoga – > Namn – > Definiera.  Vi har nu definerat två s.k. range,  Produkt och Pris. Nu är det dags att skriva programkoden i Excel.

Infoga en ny modul i Visual Basic Editor (gå in VBE med Alt+F11, eller från menyraden i Excel). Nu skrivs följande programkod in:

Sub SkapaProduktAFält()

Worksheets(”sp_pris”).Activate
Dim t As Double
Dim i As Long, j As Long
t = Timer
Dim rngProdukt As Range
Dim rngPris As Range
Dim Raknare As Long
Dim ranknare1 As Long

’Definerar upp kolumen för Produkt-kolumnen…
Set rngProdukt = Range(”Produkt”)

’Definerar upp kolumen för Pris-kolumnen…
Set rngPris = Range(”Pris”)
Raknare = 0
raknare1 = 0

’Här utförs loopen där vi letar efter egenskapen,

For i = 1 To rngProdukt.Rows.Count
    For j = 1 To rngProdukt.Columns.Count
        If rngProdukt.Cells(i, j).Value = ”Produkt A” Then
        rngPris.Cells(i).Font.ColorIndex = 3
        Raknare = Raknare + 1
    Else
    raknare1 = raknare1 + 1
    End If
Next j
Next i
MsgBox ”På ” & Timer – t & ” sek. hittade jag totalt ” & Raknare & ” celler med egenskapen.”
MsgBox ”…och ” & raknare1 & ” celler hade INTE egenskapen”

 

’Radera och förstår objekten…
Set rngProdukt = Nothing
Set rngPris = Nothing

End Sub

Kommentar:  När vi letar efter Produkt A i vårt kalkylark, så använder vi en For…next loop. Främsta skälet är att den har en inbyggd räknare som håller koll på hur många gånger den skall utföra uttrycket och leta igenom raderna efter Produkt A.  Vad den gör är att den letar upp den sista cellen i området (range) och börjar leta sig uppåt. Ett annat skäl till att använda For…next lopp är man inte alltid vet hur många gånger programkoden skall loopa igenom och leta efter Produkt A i kalkylarket. Prislistan kan ju uppdateras,  nya produkter kan tillkomma, och gamla kan tas bort osv.

Du kan ladda ner detta Excelexempel och testa på din egen dator dator.  Ladda ner  Excelboken här:

Share

Blockera störande reklam när du surfar

Nivå: Avancerat tips

Vet inte hur det är med dig, men jag störs av alla reklambanners etc. som visas i min webbläsare när jag surfar på alla sajter.  Här är ett smart tips på hur man enkelt blockerar irreterande reklam från sajter du besöker. Hemligheten ligger i att man editerar hostfilen på datorn. OBS! Jag vill varna dig från att detta kräver att du verkligen vet vad du gör, eftersom du mixtrar i ditt registry och ett misstag kan få förödande konsekvenser för din dator! Klicka här och läs mer hur du gör.

Share