RSS

Siderne om Excel VBA makroer

Excel VBA startsiden

Downloads


Tests og betingelser

Betinget formatering &
layout

Regnearksfunktioner

Arrays og ranges

Userforms, dialogbokse
og kontrolelementer

Datoer og tid

Menuer og værktøjslinjer

Navigation og hyperlinks

Tekstfiler og csv-filer

Collections og klasser

Diagrammer

Diverse

Her finder du en oversigt med korte beskrivelser af siderne om Excel VBA på dette site. Jeg har prøvet at rubricerer siderne efter emner, men det er ikke altid så ligetil, fordi siderne ofte dækker flere ting.

Tests og betingelser

Celler - test af indhold. Man har ofte brug for at teste en celles indhold: er cellen tom, indeholder den et tal, en tekst, en formel, en fejl, en dato - eller har cellen en kommentar, eller er den betinget formateret?

If Then betingelser. En begynderside om hvordan man tester betingelser eller "prøver" med If-Then.

Select Case. Hvis man har flere betingelser, som skal testes, er det ofte bedre og mere overskueligt at bruge Select Case end en stribe "If Then" og "ElseIf".

Betinget formatering og layout

Animerede diagrammer. Lav animerede diagrammer med VBA's DoEvents funktion og Windows-funktionen Sleep, som kan indlægge pauser i eksekveringen af kode. Se video og download regneark.

Blinkende celler og OnTime-funktionen. Hvordan en makro automatisk kan få én eller flere celler til at blinke, hvis cellens indhold afviger fra en betingelse, og hvordan blinket ophører, hvis celleværdien bliver OK.

Skjul rækker/kolonner. Hvordan man skjuler eller viser rækker og/eller kolonner i Excel med en VBA makro, hvis den og den betingelse er opfyldt.

Regnearksfunktioner

Egne regnearksfunktioner og tilføjelsesprogrammer. Hvordan man kan lave sine egne regnearksfunktioner og gemme dem som et tilføjelsesprogram (addin), så de kan bruges i alle dine regneark.

SUM.HVIS som ignorerer skjulte celler. Excels indbyggede SUM.HVIS-funktion regner skjulte celler med i summen. Det gør denne skræddersyede regnearksfunktion ikke.

Arrays og ranges

Range-objektet. En introduktion til Range-objektet og hvordan det kan bruges som dynamisk områdeangivelse i stedet for faste celleadresser. Kendskab til Range-objektet er et must for enhver VBA-snedker!

Array-variabler. Et array er en tabel i computerens hukommelse, og den kan have indtil flere dimensioner. Introduktion til de forskellige typer og hvordan man bruger dem. En fordel er, at det er lynhurtigt at operere på arrays.

Arrays og ranges. Hvis man arbejder med store tabeller i et regneark, kan man ofte få meget hurtigere kode, hvis man kopierer tabellen over i et array og laver operationerne her for dernæst at sætte arrayet ind som en (ny) tabel i ét hug.

Arrays og range-formler. Som vist på siden ovenfor kan man kopiere samtlige værdier i et range (en tabel) til et array, men man kan også kopiere cellernes formler, og det kan være smart.

Kopier formler til andet regneark uden links. Hvordan man kan kopiere formler fra et regneark til et andet og undgå referencer til regnearket, man kopierer fra.

Betinget kopiering af rækker i tabel. Et eksempel på hvordan man kan kopiere/udtrække rækker fra en tabel til en anden i et andet regneark, idet man bruger et kriterium som fx kundenummer, navn eller et mønster med "jokere".

Betinget sletning af rækker i tabel. Hvordan man kan slette rækker i en tabel, hvis værdier i en brugervalgt kolonne opfylder et brugerdefineret kriterium - fx at værdien er under 300. Eksemplet bruger bl.a. ranges, arrays, userforms og løkker.

Regnearksfunktioner på arrays. Det er lynhurtigt at kopiere data, som opfylder betingelser, fra et array til et andet, og det er nyttigt, at man kan bruge regnearksfunktioner på arrays.

Userforms, dialogbokse og kontrolelementer

Formularer og dialogbokse. Introduktion til Excels indbyggede inputbox og hvordan man kan håndtere dialogbokse (Userforms), man selv designer.

ListBoxe på userforms/formularer. Eksempler på, hvordan man udfylder og håndterer ListBoxe på egne userforms. Jeg viser også, hvordan man kan forvælge værdier på listen.

Afhængige ComboBoxes og arrays i class collection. Hvordan valget i én ComboBox kan styre indholdet i en anden. Eksemplet bryger et dynamisk antal arrays ved at operere med klasser i en class collection. Ikke så indviklet som det lyder!

Textboxe på userforms/formularer. Tekstbokse på Userforms er meget brugt til at få input fra brugeren. Siden viser eksempler på, hvordan man kan validere input, samt hvordan man kan gøre det rigtig smart med et klassemodul, hvis mange tekstbokse skal behandles ens.

Gennemløb af kontrolelementer på en Userform. Hvordan man med en løkke gennemløber samtlige kontrolelementer en Userform og tager tilpasset aktion, alt efter typen af kontrolelement og brugerens input.

Datoer i en ComboBox eller ListBox - visning af. Når man viser datoer i ComboBoxe og ListBoxe, laver VBA ofte om på formatet, så datoerne ikke vises på den måde, man vil have det. Her er et par tips til, hvordan du styrer visningen.

Datoer og tid

Userform med kalender og datovælger. Kalender uden brug af ActiveX, som kan give problemer ved forskellige versioner af MS Office. Bl.a. eksempler på datofunktioner og Public WithEvents til at styre hændelser.

Kalender i Excel. Lav en kalender i en ny workbook med et faneblad for hver måned. God til fx at holde styr på timeforbrug og lignende.

Beregning af tid - dato- og strengfunktioner. Eksempler på hvordan man kan beregne tid mellem klokkeslæt og datoer.

Beregning af stop, start, stoptid, driftstid m.m. Hvis man kan få noget, der ligner en logfil med tider, ind i Excel, kan man skræddersy en makro, som udtrækker forskelligt, der fx kan bruges til at måle effektiviteten af en proces.

Menuer og værktøjslinjer

Lav din egen værktøjslinie. Det er nemt at lave sin egen værktøjslinie i Excel med nogle makroer, og man bestemmer selv udseendet.

Lav dine egne menuer. Hvordan man laver en skræddersyet menu, som tilføjes Excels standardmenu.

Udskift Excels standardmenu. Hvordan man udskifter Excels standardmenu med sin egen. Dur ikke i Excel 2007 eller nyere, hvor menuen tilføjes standardmenuen.

Popup-menu. Det er nemt lave en popup-menu (også kaldet genvejsmenu), som kommer frem ved højreklik og erstatter Excels indbyggede standardmenu for klik på højre museknap. Fra popup-menuen kan du kalde dine egne makroer.

Navigation og hyperlinks

Find næste tomme celle. Eksempler på funktioner, som finder næste tomme celle i en række eller kolonne.

Hyperlinks - dobbeltklik-makro som alternativ. Hvordan man ved at dobbeltklikke på en celle kan hoppe til en anden celle med identisk indhold, skifte faneblad eller aktivere/åbne et andet regneark - ganske som med hyperlinks.

Indsæt hyperlinks. Hvordan en makro automatisk kan finde celler med en given tekst eller værdi og dernæst indsætte hyperlinks til disse celler.

Hyperlinks - sortering af. Der er en bug (fejl) i Excel, som giver fejl i hyperlinks, hvis man sorterer cellerne, de står i. Heldigvis er der en smutvej ved at bruge VBA, se hvordan.

Tekstfiler og csv-filer

Import af tekstfil. Hvordan man kan importere en semikolon-separeret tekstfil til et regneark i Excel uden brug af Excels indbyggede importfunktioner.

Hurtig import af tekstfiler. Hvis man ofte importerer tekstfiler i et bestemt format, kan man med fordel automatisere processen, så man slipper for at bladre sig gennem Excels guide.

Csv-filer - import. Hvordan man importerer csv-filer med VBA, og hvordan man kan parse ("læse") filen med kode i stedet for at bruge Excels indbyggede import.

Opsplit tekstfiler. Hvordan man kan opdele en tekstfil i mindre filer med et brugerdefineret antal (maksimum) linjer eller rækker.

Skriv en tekstfil. Hvordan man nemt skriver en tekstfil til disken.

Kontrol af om et katalog eksisterer. Eksempler på hvordan man kan tjekke, om et givet katalog eksisterer.

Collections og klasser

Egne collections. Hvordan man laver og bruger sine egne collections (samlinger).

Klasser og class collections. Med dine egne klasser og class collections får VBA for alvor power, og det er slet ikke så svært, som mange tror.

Procesbalance. Eksempel på, hvordan en class collection kan simulere en industriel proces og løse opgaver, som i en almindelig Excel-tabel ville give cirkulære referencer.

For Each Next-løkker i egne class collections. Class collections er et stærkt værktøj. Der er bare den hage, at man ikke kan bruge den hurtige For Each...Next-løkke til at gennemløbe sin collection - medmindre man kender tricket!

Diagrammer

Histogram - lav dine egne histogrammer. Hvordan man med VBA kan finde hyppigheden af forekomster i et datasæt og lave et histogram.

Pareto-diagrammer hurtigt og nemt. Et Pareto-diagram er et sorteret søjlediagram, som bruges til at visualisere de vigtigste faktorer. Viser også en kurve med akkumuleret procent.

Diverse

Index - startside. Hovedsiden.

Download af eksempler (regneark). Downloads.

Flette og kombinere data og tabeller. Eksempler på hvordan man kan flette og kombinere data og tabeller efter bestemte kriterier.

Hastighed - sæt fart på dine makroer. Ved større opgaver er det vigtigt, at koden afvikles hurtigt og effektivt. Her er tips til højere hastighed.

Billet- og nummerkontrol. Eksempel på et regneark, som tjekker, om et givet nummer findes i en nummerserie. Regnearket blev lavet til billetkontrol på en musikfestival.

Tilfældige tal og lodtrækning. Hvordan man genererer tilfældige tal med Excel VBA.

Brug af Excels Solver (Problemløser) med VBA makroer. Trin for trin. Regneark med eksempel på VBA-applikation til download.

Rund op til nærmeste 100, 1000 osv. Funktion som runder op til nærmeste hundrede, tusinde osv. Fx bliver 2 til 3, 11 til 20, 137 til 200, 1666 til 2000 osv.