vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

Størrelse: px
Starte visningen fra side:

Download "vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:"

Transkript

1 Fejlhåndtering Selv de bedste programmører laver af og til fejl! Dette kommer sikkert som en overraskelse for de fleste, bortset fra de, der har arbejdet med et hvilket som helst større program. Fejl kan være af mange forskellige slags, men nogle af dem er nemmere at håndtere end andre. Det skyldes ikke mindst at VBA editoren er god til at hjælpe med at undgå en række fejltyper, fx syntaktiske fejl i koden, brug af ikke erklærede variabler mm. Desuden indeholder editoren en række værktøjer, som gør det nemmere at finde fejl. Der er dog også fejltyper som ingen editor kan hjælpe med. Dette kan være fejl, hvor koden egentlig virker, altså kører uden problemer; den gør bare ikke det, man havde forventet. En anden type fejl er de, som opstår fordi en bruger af koden, ikke gør som der forventes. Den første af de sidstnævnte kan kun findes via test og atter test af koden i alle mulige (og umulige) sammenhænge. Den sidste kan vi ikke teste og ud, og er derfor nødt til at programmere funktioner ind i vores kode, der tager højde for den slags fejl. Fejlfinding af koden Lad mig starte med et par eksempler på, hvordan man kan finde og rette fejl i sin kode. For at sikre at alle variabler bliver erklæret, se artiklen om variabler og konstanter, kan man sætte denne linje ind først i sit modul Option Explicit Den fortæller VBA editoren, at der kun må anvendes variabler, der eksplicit er erklæret med en Dim sætning. I flere af eksempler under Makroer, anvender jeg såkaldt implicit variabelerklæring; det vil sige at jeg anvender en variabel uden at erklære den først. Det er i virkeligheden dårlig programmering, da alle variabler så bliver erklæret som datatypen Variant, men det er hurtigere, når det skal gå stærkt. Starter jeg derimod modulet med ovenstående sætning, tvinger systemet mig til at erklære alle mine variable, inden de bruges. Glemmer jeg det alligevel, fx som her: Sub Fejl1() txt = ActiveCell.Value vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl: Dette vil være bedre: Sub Fejl1() Dim txt As Integer txt = ActiveCell.Value med mindre værdien i cellen selvfølgelig ikke passer til den valge datatype. Så får jeg (eller brugeren) DET at vide. Men først når koden afvikles, en såkaldt kørselesfejl eller Run-time error.

2 Jeg kan så klikke på knappen Debug, og få fremhævet den linje i koden, der har fejlet: Sub Fejl1() Dim txt As Integer txt = ActiveCell.Value I dette tilfælde står der en tekst i cellen og den kan ikke rummes i en variabel med datatypen Integer, der jo er beregnet til tal. Jeg må nu afgøre om variablen skal erklæres om så den kan rumme tekst i stedet, eller om den (som Variant) skal kunne rumme både tekst og tal. Skal den kun kunne rumme tal, som oprindeligt angivet, skal jeg nok af kodet en fejlrutine (se nedenfor), så brugeren ikke pludselig ender i VBA editoren med ovenstående billede vist, hvis han på trods af alle gode intentioner, alligevel har tastet noget "forkert" i cellen. Når forkert her sættes i anførselstegn er det fordi, det kun er for koden, det er forkert. Det kan være helt rigtigt set med brugerens øjne. I mit tilfælde vælger jeg, at lade variablen forblive som den er. Fejlrutinen koder jeg først senere. I stedet instruerer jeg i første omgang brugeren om, at der altså skal stå et tal i den aktive celle, når koden afspilles. Så to minutter efter har brugeren i telefonen igen: Han står igen i editoren, dog nu med denne fejlmeddelelse: "Overflow" betyder her, at tallet i cellen ikke kan rummes i datatypen. En Integer rummer kun tal mellem og , så hvis tallet i cellen er større eller mindre end disse værdier opstår ovenstående fejl. Også denne må jeg tage højde for i min fejlhåndteringsrutine. Jeg kan selvfølgelig hjælpe brugeren til at taste det rigtige, ved at anvende regnearkets datavalideringsfunktion på cellerne, men der er grænserne for mulighederne her, så uden programmeret datavalidering og/eller fejlhåndtering er det dømt til at gå galt. Begge dele vender jeg tilbage til nedenfor. Men lad mig starte med begyndelsen (eller det jeg mener er begyndelsen): fejl som VBA editoren opdager mens jeg koder. Jeg er ved at skrive min kode og er nået til = efter txt, altså Txt =

3 og så får jeg trykket linjeskift inden jeg har skrevet, hvilken værdi variablen skal tildeles. Også dette udløser en kompileringsfejl En anden klassisk kompileringsfejl er fx Sub Fejl1() Dim num1 As Byte, num2 As Byte If num1 > num2 som giver Hvis der trykkes lineskift inden der skrives Then eller GoTo. Skrives derimod Sub Fejl1() Dim num1 As Byte, num2 As Byte num1 = 5 num2 = 3 If num1 > num2 Then MsgBox = "Olsen" opstår ingen kompileringsfejl undervejs i skrivningen, men først når koden afprøves: Denne meddelelse skyldes at jeg har skrevet MsgBox = "Olsen" hvilket ikke er "legalt" i VBA, da den tror jeg vil tildele en værdi til meddelelsesboksen og det er ikke muligt. Det hedder bare MsgBox = "Olsen" så det retter jeg, hvorefter jeg i stedet får denne fejl, når koden køres

4 Glemmer jeg anførselstegn omkring "Olsen", tror det at der er tale om en variabel, og så får jeg den første fejlmeddelelse, der blev vist i denne artikel. Glemmer jeg kun det første anførselstegn, men husker det sidste, vises Når jeg trykker linjeskift. Husker jeg det første, men glemmer det sidste anførselstegn, er VBA editoren flink, og sætter det selv for mig. Jeg bliver altså hjulpet ganske fint undervejs af den indbyggede syntakskontrol, som kan slås til og fra under Tools Options. Som standard er den slået til: Her kan man også indstille en række andre forhold omkring editoren. Sætte man flueben i Require Variable Declaration skriver den selv Option Explicit øverst i alle nye moduler, der oprettes. De øvrige elementer vil jeg ikke gennemgå i denne forbindelse. Kompileringsfejl vises altså typisk undervejs (med få undtagelser), mens kørselsfejl først vises, når koden afspilles. Det er i forbindelse med disse, samt de "logiske" fejl (de fejl hvor koden virker, men gør noget forkert) af afprøvning kommer ind.

5 Kørselsfejl, der opdages mens man programmerer (på grund af programmeringsfejl) er ikke nødvendigvis nemme at rette, men de er nemme at finde. Det samme er ikke nødvendigvis gældende for de logiske fejl. Her kræver det typisk, at man udarbejder en form for testprogram med nogle kendte udfald af forskellige situationer, og så afprøver om koden giver de forventede udfald. Ideelt set skal man afprøve samtlige mulige situationer, som koden kan bringes i, man ved store programmer er dette simpelthen ikke muligt, med mindre man har råd til at ansætte en hær af testere. Et stort program rummer adskillige millioner linjer kode, og at få afprøvet alle krinkelkroge af disse, er næppe muligt. Når vi taler VBA er kodemængderne dog i almindelighed langt mindre, og deler man sine Subs op i passende små enheder, burde det være muligt at få aftestet alle muligheder. Til brug for fejlfinding af denne type har VBA editoren nogle hjælpemidler, men man kan også selv indsætte en form for fejlfiningsrutiner i sin kode. Hvad man foretrækker, er nok mest et spørgsmål om smag, men der kan være en fordel ved at indsætte i hvert fald nogen egenudvikling, da det kan hjælpe i en situation, hvor der fx skal gives telefonsupport. Fejlfindingsværktøjer VBA editoren har som nævnt nogle indbyggede værktøjer, der kan gøre fejlfinding nemmere. Man kan fx indsætte pausepunkter i sin kode, man kan køre koden linje for linje mm. Dem vil jeg ikke komme nærmere ind på i denne artikel, men vil i stedet koncentrere mig om, hvordan man kan håndtere de fejl, der uvægerligt vil opstå, fx fordi brugeren gør noget andet, end programmøren havde forventet mm. Fejlhåndtering Hver gang der opstår en kørselsfejl i en VNA procedure, udløses en fejlkode. Som fx her, hvor fejlen har nummer 6: Denne fejlkode kan man fange i sit program, og så lade programmet reagere på fejlkoden. Man kan lave sådanne fejlhåndteringsfunktioner i de enkelte procedurer, men man kan også lave en generel fejlhåndteringsrutine, som gælder for alle procedurer. Jeg vil her se på begge muligheder. Her har vi en kode, som på overfladen ser OK ud: Ans = InputBox("Indtast et tale mellem 1 og 20000") Den viser en inputbox, hvor brugeren bliver bedt om, at taste et tal mellem 1 og Så langt så godt. Prikkerne indikerer bare, at mere kode følger. Vi har erklæret variablen, som skal indeholde tallet som Integer (heltal), hvilket jo betyder, at den kan "rumme" tal op til over , så det burde være godt nok. Men hvis brugeren alligevel taster noget andet, fx et for stort tal eller en tekst, går det galt. Et for stort tal giver fejlkode 6 (Overflow) og en tekst vil give fejlkode 13 (Type mismatch). Da begge muligheder er indlysende bør vi tage højde for dem i koden. Det er her fejlhåndteringen kommer ind i billedet.

6 Fejlkoderne håndteres i et objekt som kaldes Err-Objektet. Det har nogle egenskaber, fx Number og Description. Mest interessant er i første omgang Err.Number. Men for overhovedet at kunne fange koden, skal vores fejlhåndteringsrutine startes, når der opstår en fejl. Dette gøres med udtrykket On Error On Error er en hændelse, der indtræffer, når en fejl opstår. Den er ikke nævnt under Onnøgleordet i artiklen om hændelser, da den KUN bruges til fejlhåndtering. Sætningen efterfølges af en instruktion om, hvad der skal gøres i tilfælde af fejl. Her er de forskellige muligheder: On Error On Error Next On Error Goto On Error betyder at kodens afvikling fortsætter med samme linje, som fejlen opstod i, mens On Error Next medfører at koden afvikles fra linjen efter den linje, hvor fejlen opstod. Den første anvendes så sjældent, at det grænser til aldrig. Den anden anvendes heller ikke ret tit, men der er en række situationer, hvor den er effektiv. Antag fx at man skrevet en kode, der skal lukke en projektmappe og derefter afslutte Excel. Sub Luk_og_Afslut() Workbooks("Mappe2.xls").Close SaveChanges:=False Application.Quit Ovenstående kode lukker projektmappen Mappe2.xls uden at gemme eventuelle ændringer og afslutter Excel. Imidlertid vil den fejle i første linje, hvis mappen allerede ER lukket. I dette tilfælde ville det være relevant, at bruge Next, så den bare fortsætter med at lukke Excel, selv om den relevante mappe, allerede er lukket. Her behøver man ikke at kommunikere en fejlmeddelelses til brugeren :"Du skal åbne mappe2,.xls så den kan blive lukket igen". Koden kunne derfor se således ud: Sub Luk_og_Afslut() On Error Next Workbooks("Mappe2.xls").Close SaveChanges:=False Application.Quit On Error GoTo giver mulighed for at springe til sin Fejl-rutine. Normalt anses GoTo udtryk i kode for dårlig programmering, men netop i forbindelse med fejlhåndtering, vil det være OK. Sætningen kunne fx lyde: "Fejl" er en såkaldt label eller et linjemærke. I VBA skiver man disse som navnet på linjemærket, efterfulgt af et kolon, så der, hvor fejlrutinen skal stå, skriver man altså Og så kommer koden, der håndterer fejlene. Læg ivørigt mlærke til, at linjemærker ikke kan indrykkes. De vil altid stå helt til venstre. Lad mig vende tilbage til det første eksempel Ans = InputBox("Indtast et tale mellem 1 og 20000")

7 Vi skal nu have skrevet fejlhåndteringstrutinen. Den nemme, men ikke særligt effektive løsning er, at vise brugeren de fejlmeddlelser, som kommer for VBA: Ans = InputBox("Indtast et tale mellem 1 og 20000") Msgbox "Fejl " & Err.Number & ": " & Err.Description Imidlertid er det ikke særligt sigende for brugeren, men vi opnår dog, at han ikke ender i et kode-debugging vindue. Bedre er det, at skrive noget kode, der håndtere de enkelte fejltyper. Er der bare en enkelt, eller et par stykker som her, kan det gøres med If Then Else sætninger, men er der flere er det mere effektivt at gøre det med Select Case. Ans = InputBox("Indtast et tale mellem 1 og 20000") Select Case Fejlnummer Case Is = 6 Msgbox "Du kan ikke indtaste så store tal. Værdien skal være mellem 1 og " Case Is = 13 Msgbox "Du kan kun indtaste tal mellem 1 og " Nu vil koden teste på hvilken fejl, der er opstået og såfremt det er 6 vil den fortælle at tallet er for stort, er det en tekst, vil den fortælle, at der kun kan indtastes tal. Rutinen lider dog af endnu et par mangler. For det første kan der måske opstå fejl, som man ikke har forudset og som man derfor ikke tester for. Derfor bør man altid have en Else sætning i sin fejlrutiner. Denne skal så håndtere de fejl, som vi ikke fik tænkt på i første omgang. Ans = InputBox("Indtast et tale mellem 1 og 20000") Select Case Fejlnummer Case Is = 6 Msgbox "Du kan ikke indtaste så store tal. Værdien skal være mellem 1 og " Case Is = 13 Msgbox "Du kan kun indtaste tal mellem 1 og " Case Else Msgbox "Der er opstået en uforudset fejl" Teksten i Case Else er måske ikke den mest geniale, men den er bedre end ingenting. Læg også mærke til, at jeg har indsat linjen lige inden fejlrutinen. Det er for at forhindre at denne afspilles hver gang koden køres, også når der ikke opstår fejl. I det konkrete tilfælde vil brugeren ikke opdage, at koden køres, men i andre tilfælde vil man nok undre sig over at få vist fejlmeddelelser, selv om alting er gjort helt rigtigt.

8 Jamen så er vi jo klar, ikke? Nej ikke helt. I ovenstående tilfælde sker der ikke andet, end at brugeren får en fejlmeddelelse, som han kan klikke OK til, og så afsluttes koden, så brugeren kan starte forfra. Det er imidlertid ikke altid den mest hensigtsmæssige løsning. Så vi kan indbygge i vores kode, hvad der skal ske hvis. Også her har vi forskellige muligheder, der ligner dem, som vi så for On Error sætningen. Next Linjemærke genoptager koden fra den linje, der fejlede. Next fra linjen efter den fejlende linje, Linjemærke fortsætter koden fra det specificerede linjemærke og afslutter procedure. Den reviderede kode sikrer at så længe, der kun er tale om fejl 6 eller fejl 15, vil inputbocksen blive vist igen og igen indtil, der indtastes en "lovlig" værdi. Ans = InputBox("Indtast et tale mellem 1 og 20000") Select Case Fejlnummer Case Is = 6 Msgbox "Du kan ikke indtaste så store tal. Værdien skal være mellem 1 og " Case Is = 13 Msgbox "Du kan kun indtaste tal mellem 1 og " Case Else Msgbox "Der er opstået en uforudset fejl" Imidlertid er det ikke helt koden ikke hel god endnu. Prøv fx at afspille den, og så klik på Annuller-knappen i stedet for på OK. Så vises Og det bliver den ved med, til der faktisk er tastet en lovlig værdi. Vi må altså også tage højde for, at brugeren kan fortryde sin oprindelige start af programmet. I artiklen om Kommunikaton med Makroer forklarer jeg, hvordan et Klik på Annuller knappen i en Input boks kan håndteres. Denne metode kan imidlertid ikke anvendes her, da den behandler et Klik på Annuller på samme måde som et klik på OK, og det ønsker vi ikke i denne sammenhæng. Vi må derfor gå en anden vej og bruge Metoden InputBox i stedet for Funktionen InputBox.

9 Ans = Application.InputBox("Indtast et tale mellem 1 og 20000") If Ans = False Then If Select Case Fejlnummer Case Is = 6 Msgbox "Du kan ikke indtaste så store tal. Værdien skal være mellem 1 og " Case Is = 13 Msgbox "Du kan kun indtaste tal mellem 1 og " Case Else Msgbox "Der er opstået en uforudset fejl" Forskellen på Metoden InputBox og Funktionen InputBox er, at funktionen, som blev anvendt i første omgang ved klik på Annuller returnerer en tom tekststreng og dette betragtes som en fejl Kontrollen overgives derfor til fejlrutinen. Et klik på Annuller i Metoden InputBox returner derimod den boolske værdi False, og dette udløser ikke en fejl. Der er dermed mulighed for at teste på variablens indhold, og forlade proceduren, hvis den er False. Det sker i de markerede linjer. Nu er vi altså nået så langt, at vi får vist en fejlmeddelelse, hvis der indtastes en værdi, som udløser en fejl, men ikke, hvis vi klikker på Annuller. Imidlertid er vi stadig ikke helt på plads. Koden tester jo kun på kørselsfejl, men hvad med logiske fejl? Det vender jeg tilbage til nedenfor, da heller ikke dette håndteres i fejlrutinen. En generel fejlhåndteringsrutine Som man måske kan se, kan det bleve forholdsvist beværligt at skulle kode denne type fejlrutiner i alle sine procedurer. I stedet kan man én gang for alle kode en generel fejlhåndteringsrutine, som de enkelte procedurer så kan kalde, når fejl opstår. Så kan man koncentrere sig om at håndtere logiske fejl i procedurerne. En generel fejlhåndteringsrutine, kan godt blive lige så specifik som en speciel, men det vil sjælden ske. I stedet for at teste på hver enkelt fejlkode for sig, vil man snarere "gruppere" ensartede fejl, som der så skal reageres ens på. En genrel fejlhåndteringsrutine, skal oprettes som en Function, ikke som en Sub, da den skal kunne kaldes af de enkelte procedurer med det fejlnummer, som opstår i den kaldende procedure. Ofte vil det være en fordel at kode fejlrutinen i et andet modul end det, hvor de "almindelige" procedurer befinder sig. Denne Function skal have derfor have et enkelt argument, fx Function Fejlrutine(Fejlnummer) As Integer Nu skal vi så i gang med at kode sleve rutinen, og ofte vil det være en fordel at kode fejlrutinen i et andet modul end det, hvor de "almindelige" procedurer befinder sig. nu engang anvender vi en Select Case. Se næste side.

10 Function Fejlrutine(Fejlnummer) Dim MinFejl As Integer Select Case Fejlnummer Case Is = 6 Msgbox "Du har indtastet et tal, der ligger uden for de angivne grænser" MinFejl = 1 Case Is = 7 Msgbox "Der er ikke mere hukommelse. LUk alle unødvendige programmer" MinFejl = 1 Case Is = 11 Msgbox "Du forsøger at dividere med 0. Dette er ikke tilladt" MinFejl = 1 Case Is = 13 Msgbox "Du har brugt en datatype, som ikke er tilladt." MinFejl = 1 Case Is = 48, 49, 51 Msgbox "Der er opstået en alvorlig programfejl nummer: " _ & Err.Number & crlf _ & " " & Err.Description & crlf & " Kontakt help desk." MinFejl = 2 Case Else Msgbox "Der er opstået en fejl, som ikke kan rettes. _ Programmet afsluttes" MinFejl = 2 Fejlrutine = MinFejl Function Koden her undersøger for nogle specifikke fejl, og håndterer disse. Desuden tager den højde for uforudsete fejl. Det er selvfølgelig muligt at indsætte alle mulige specifikke fejlnumre i koden. Det, der er vigtigt er at MinFejl skal sættes til samme tal, afhængigt af, hvordan den kaldende procedure. I ovenstående skal 1 håndteres med mens 2 håndteres med. Det er selvfølgelig også muligt at lade andre koder gøre andre ting, fx kan 3 betyde, 4 kan betyde osv. Nu skal de procedurer, der skal anvende fejlrutinen så gøres klar: kald Ans = Application.InputBox("Indtast et tale mellem 1 og 20000") If Ans = False Then If Fejlkald: Select Case Fejlrutine(Err.Number) Case Is = 1 Case Is = 2 Next Case Is = 3 Case is 4 Alt fra Fejlkald og proceduren ud, kan bare kopieres til alle andre makroer. I Select Case kaldes fejlhåndteringsfunktionen, med det fejlnummer, som koden fejler med. Rutinen viser

11 meddelelsesboksen og returnerer derefter en talværdi, som fortæller procedurens fejlområde, hvordan der skal fortsættes efter fejlbehandlingen. Afslutningerne SKAL ligge i de enkelte procedurer. NB! En generel fejlhåndteringsrutine kan ikke blive lige så præcis, som en specifik, knyttet til et bestemt modul, da flere forskellige fejl kan returnere samme fejlkode. En liste over de mulige kørselsfejlkoder, med tilhørende beskrivelse af fejlene, kan findes ved at starte VBA hjælpen. Søg efter Err Object. Når hjælpen til dette er åben, klikkes på See also. Vælg nu Trappable Errors. Så vises listen over fejl. Der er i alt 120 fejl, men mange af dem er ret sjældne og vil ikke skulle kunne håndteres specielt, men kan i stedet håndteres under Case Else. Imidlertid sker det, at vores fejlmeddelelse i fejlhåndteringsrutinen bliver for "generel", og så må vi ty til andre metoder. Koden jeg har brugt indtil videre, "gør ingenting". Den tildeler bare en værdi til en variabel. Men hvis vi nu antager, at denne makroens funktion var at uddrage kvadratroden af tallet i denne variabel. I så fald kunne koden se således ud: kald Ans = Application.InputBox("Indtast et tale mellem 1 og 20000") If Ans = False Then If Msgbox Sqr(Ans) Fejlkald: Select Case Fejlrutine(Err.Number) Case Is = 1 Case Is = 2 Next Case Is = 3 Det nye er den fremhævede linje. Selv om vi indtaster et tal, og dette tal ligger inden for grænserne for et heltal, ville koden fejle, hvis vi indtastede et negativt tal. Denne fejl opstår imidlertid ikke når værdien bliver tildelt variablen, men først når vi prøver at udføre beregningen. Uden fejlhåndteringsrutine ville vi få denne fejlmeddelelse: Og med ville vi få denne:

12 Ingen af dem fortæller brugeren, hvad det er, han eller hun har gjort galt. Fejl 5 er typisk fejl, som brugeren ikke selv kan gøre noget ved, men sådan er det ikke i dette konkrete tilfælde. Den må altså håndteres på anden måde, fx på en måde, der ligner den, hvormed vi håndterede et klik på Annuller, det vil sige ved en test i selve proceduren. If Ans <=0 Then MsgBox "Du kan ikke beregne kvadratroden af et tal, der er mindre eller lig 0" If Logiske fejl Logiske fejl er fejl, som ikke kan fanges af fejlhåndteringsrutinen, fordi de ikke udløser en kørselsfejl. Hvis vi af forskellige grunde, virkelig vil sætte en begrænsning på på ovenstående; at vi altså ikke vil tillade beregning af kvadratroden af tal over , kan vi slet ikke fange tal mellem og Det er vi altså også nødt til at håndtere selv på samme måde som ovenfor: If Ans >20000 Then MsgBox "Funktionen accepterer ikke tal større end " If Nu kan vi så skrive alle vore logiske tests sammen ved at erstatte Ifsætningerne med en Select Case. kald Ans = Application.InputBox("Indtast et tale mellem 1 og 20000") Select Case Ans Case Is = False Case Is <= 0 Msgbox "Du kan ikke beregne kvadratroden af et tal, der er mindre eller lig 0" Case Is > Msgbox "Funktionen accepterer ikke tal større end " Msgbox Sqr(Ans) Fejlkald: Select Case Fejlrutine(Err.Number) Case Is = 1 Case Is = 2 Next Case Is = 3 Det virker næsten upåklageligt. Det eneste problem er, at i de sidste to tilfælde vil vi gerne opnå at få vist inputboxen igen, i stedet for at brugeren skal starte proceduren helt forfra igen på grund af en tastefejl. Den nemmeste løsning er at oprette et linjemærke lige før linjen, der viser inputboksen. Derefter erstattes i de sidste to Case sætninger med Goto Linjemærke. Så kan diverse meddelelsesbokse selvfølgelig "pyntes" med knapper mm., og koden kan kommenteres. Men det vil jeg springe over i denne omgang, da det allerede er omtalt i andre artikler, så jeg afslutter bare med den færdige kode:

13 kald Dim varx As Boolean Forfra: Ans = Application.InputBox("Indtast et tale mellem 1 og 20000") Select Case Ans Case Is = False Case Is <= 0 Msgbox "Du kan ikke beregne kvadratroden af et tal, der er mindre eller lig 0" GoTo Forfra Case Is > Msgbox "Funktionen accepterer ikke tal større end " GoTo Forfra Msgbox Sqr(Ans) Fejlkald: Select Case Fejlrutine(Err.Number) Case Is = 1 Case Is = 2 Next Case Is = 3

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13 1 Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Hvad er en makro... 10 Hvad kan du bruge en makro til... 10 Hvad en makro er (Visual Basic for Applications)... 11 Det hele sker

Læs mere

Opret en Powerpoint præsentation automatisk med VBA

Opret en Powerpoint præsentation automatisk med VBA Opret en Powerpoint præsentation automatisk med VBA I denne vejledning bliver det gennemgået, hvordan man via VBA kan oprette en powerpoint med diagrammer og kommentarer fra Excel automatisk. Gør som følgende:

Læs mere

How to do in rows and columns 8

How to do in rows and columns 8 INTRODUKTION TIL REGNEARK Denne artikel handler generelt om, hvad regneark egentlig er, og hvordan det bruges på et principielt plan. Indholdet bør derfor kunne anvendes uden hensyn til, hvilken version

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer Denne guide er oprindeligt udgivet på Eksperten.dk TreeView i Access II Jeg vil i denne anden udgave af treeview føljetonen begynde på et mere brugbart eksempel med et TreeView. Vi laver en ny database

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

Hent filoplysninger fra billeder og filer

Hent filoplysninger fra billeder og filer Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:

Læs mere

ChatBot. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen talende robot! Arbejdsliste. Test dit Projekt.

ChatBot. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen talende robot! Arbejdsliste. Test dit Projekt. Scratch 1 ChatBot All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Visual Basic for begyndere

Visual Basic for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Visual Basic for begyndere I denne artikel vil jeg gennemgå Visual Basic (IKKE.NET / Visual Basic 2005 Express Edition) på et begynder-niveau. fed kursiv

Læs mere

Kapitel 3 Betinget logik i C#

Kapitel 3 Betinget logik i C# Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret

Læs mere

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme.

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme. Skrevet julen 2017 Kom igang med makroer I 2011 lavede jeg et makrokursus til en kollega i Tyskland. Kurset var baseret på den programmeringsstil som jeg brugte/bruger når jeg laver makroer. Det er muligt

Læs mere

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0 GIS indlæsning af kreditorer og betalingsform Brugervejledning 1.0 Indhold 1 Indledning... 5 2 Opsætning af GIS grænseflade til kreditor indlæsning... 5 2.1 Oprettelse af en datastrøm... 7 2.2 Filsystem...

Læs mere

$ %' ) * %' +,! - Myarray %' /0 /0 122 +3 /0 /0

$ %' ) * %' +,! - Myarray %' /0 /0 122 +3 /0 /0 !"#!"# "# %&') * #" % && %' Dim MyArray2) As Integer ) * %' +,! - Myarray MyArray0). %' /0 /0 122 + /0 /0 +4 / 0) Dim MyArray1 to 2) As Integer 5MyarrayMyArray1)" +6 Option Base 1 Option Explicit %' 76

Læs mere

"# $%$ " # $ % $ $ " & ( ) *+!,! Sum_Cost >= 5000SirName = Beltov Continue = %!- + ( ( - True) Continue *! If Antal <= 20 Then EnhedsOmk = 1.

# $%$  # $ % $ $  & ( ) *+!,! Sum_Cost >= 5000SirName = Beltov Continue = %!- + ( ( - True) Continue *! If Antal <= 20 Then EnhedsOmk = 1. "# $$ " # $ && & ' $ $ " & ) *+, Sum_Cost >= 5000SirName = Beltov Continue = True) Continue *, + If Antal

Læs mere

MS Visual Studio Basic 2010. En kort vejledning

MS Visual Studio Basic 2010. En kort vejledning Du kan hente programmet gratis her: MS Visual Studio Basic 2010 Express http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Tryk på Install Now og følg vejledningen. Indholdsfortegnelse

Læs mere

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen. Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Læs mere

Ekstra hastighed med array's i Excel-VBA

Ekstra hastighed med array's i Excel-VBA Denne guide er oprindeligt udgivet på Eksperten.dk Ekstra hastighed med array's i Excel-VBA Brugen af arrays til indlæsning af og skrivning til celler i Excel kan give betragtelige hastighedsforøgelser

Læs mere

Lav din egen forside i webtrees

Lav din egen forside i webtrees Lav din egen forside i webtrees Du behøver ikke at kunne kode eller gøre noget advanceret for at designe din helt egen forside i webtrees. Alt du skal gøre er bare at gøre brug af den indbygget editor.

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Vejledning. Excel-skabelon. til oprettelse af kalendere. Oversigtskalender_Skabelon_Revideret 05_06.xls

Vejledning. Excel-skabelon. til oprettelse af kalendere. Oversigtskalender_Skabelon_Revideret 05_06.xls Vejledning Excel-skabelon til oprettelse af kalendere Oversigtskalender_Skabelon_Revideret 05_06.xls 20-03-2017 Out of date Vejledningen til makrosikkerhed er nok noget forældet i forhold til nyere versioner

Læs mere

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning

Læs mere

Vejledning. Excel-skabelon. til oprettelse af kalendere KalenderSkabelon_2017_01.xlsm

Vejledning. Excel-skabelon. til oprettelse af kalendere KalenderSkabelon_2017_01.xlsm Vejledning Excel-skabelon til oprettelse af kalendere KalenderSkabelon_2017_01.xlsm 05-04-2017 Ecxelversioner Skabelonen er oprettet i Excel 2010 i xlsm-format. Så vidt jeg ved, kan Excel 2007 arbejde

Læs mere

REDIGERING AF REGNEARK

REDIGERING AF REGNEARK REDIGERING AF REGNEARK De to første artikler af dette lille "grundkursus" i Excel, nemlig "How to do it" 8 og 9 har været forholdsvis versionsuafhængige, idet de har handlet om ting, som er helt ens i

Læs mere

Edb-tekstbehandling, præsentation mm

Edb-tekstbehandling, præsentation mm Edb-tekstbehandling, præsentation mm I denne lektion skal du: - hente kopier et skærmbillede og sætte det ind i et dokument - beskære billedet, så det passer til dit dokument Der findes specielle programmer

Læs mere

Undtagelseshåndtering i C#

Undtagelseshåndtering i C# Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

Udbedring af fejlsituationer ved anvendelse af BridgeMate

Udbedring af fejlsituationer ved anvendelse af BridgeMate Udbedring af fejlsituationer ved anvendelse af BridgeMate Indhold: Kort om BridgeCentral og BridgeMate funktionen Resumé PC en går i dvale eller lukker ned under en session Serveren mister strøm Et bord

Læs mere

Sammenlign og byt. Et eksempel på dokumentering af et program

Sammenlign og byt. Et eksempel på dokumentering af et program Sammenlign og byt Et eksempel på dokumentering af et program Sammenlign og byt Jeg har valgt, som et eksempel, at dokumentere et meget enkelt program som indlæser to tal, sammenligner dem og udskriver

Læs mere

Excel-1: kom godt i gang!!

Excel-1: kom godt i gang!! Excel-1: kom godt i gang!! Microsoft Excel er et såkaldt regneark, som selvfølgelig bliver brugt mest til noget med tal men man kan også arbejde med tekst i programmet. Excel minder på mange områder om

Læs mere

Vistemmernu. Et webbaseret værktøj udviklet af Programdatateket i Skive. E-mail: programdatateket@viauc.dk Web: http://www.programdatateket.

Vistemmernu. Et webbaseret værktøj udviklet af Programdatateket i Skive. E-mail: programdatateket@viauc.dk Web: http://www.programdatateket. Vistemmernu Et webbaseret værktøj udviklet af Programdatateket i Skive E-mail: programdatateket@viauc.dk Web: http://www.programdatateket.dk Kolofon HVAL-vejledning Vistemmernu på HVAL.DK Forfatter: Susanne

Læs mere

KMD Brugeradministration til Navision og LDV

KMD Brugeradministration til Navision og LDV KMD Brugeradministration til Navision og LDV Vejledning for selvejere. Opdateret 09-09-2015 Indholdsfortegnelse 1 Overordnet liste af funktoner... 2 2 Vejledning... 3 2.1 Login til KMD Brugeradministration...

Læs mere

OVERGANGS- OG OPBYGNINGSEFFEKTER

OVERGANGS- OG OPBYGNINGSEFFEKTER OVERGANGS- OG OPBYGNINGSEFFEKTER Kan PowerPoint ikke animere, kan programmet i stedet lave overgangs- og opbygningseffekter. Ikke mindst opbygningseffekter giver rige muligheder, for at lave særdeles avancerede

Læs mere

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003 Jonas Christiansen Voss 2. marts 2004 Indhold 1 CD ere 2 1.1 Brænde dokumenter til CD....................... 2 1.2 Disk Copy.................................

Læs mere

Send fra Access.

Send  fra Access. Denne guide er oprindeligt udgivet på Eksperten.dk Send e-mail fra Access. Denne artikel et rettet mod begyndere i Access. Artiklen viser hvordan du sender elektronisk post fra Access, både ved hjælp af

Læs mere

+ "&"' +,! ")& - )'.** /, )'.** 1 2 "&"' +,! 3 *4 5

+ &' +,! )& - )'.** /, )'.** 1 2 &' +,! 3 *4 5 !"#!"# $&'( # $ "&"' ( )* =NUTIDSVÆRDI(B8;B12:K12)-B4 ")&# + "&"' +,! ")& - )'.** / 0, )'.** 1 2 "&"' +,! 3 *4 64 " *7)*7 '7 )87 )'.**!"# 9 )( )"* $ 3 (!" 3 :: 3 :"*;8: 3 Range( A1:A10 ).Cells(3)

Læs mere

Gadwin PrintScreen Version 3,5

Gadwin PrintScreen Version 3,5 Side 1 af 6 Gadwin PrintScreen Version 3,5 Indhold: Introduktion...1 Properties (indstillinger)...2 Preferences...2 Source...3 Destination....3 Image...4 About...4 Brug af programmet...5 Introduktion Når

Læs mere

FORMATERING AF REGNEARK

FORMATERING AF REGNEARK FORMATERING AF REGNEARK Indtil nu har vi set på, hvordan du kan udføre beregninger i dit regneark, og hvordan du kan redigere i regnearket, for hurtigt at få opstillet modellerne. Vi har derimod overhovedet

Læs mere

Vejledning. Excel-skabelon. til oprettelse af kalendere. Oversigtskalender_Skabelon_Revideret 05_01.xls

Vejledning. Excel-skabelon. til oprettelse af kalendere. Oversigtskalender_Skabelon_Revideret 05_01.xls Vejledning Excel-skabelon til oprettelse af kalendere Oversigtskalender_Skabelon_Revideret 05_01.xls 18-03-2017 Out of date Vejledningen til makrosikkerhed er nok noget forældet i forhold til nyere versioner

Læs mere

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() John Andersen, Læreruddannelsen i Aarhus, VIA Et kast med 10 terninger gav følgende udfald Fig. 1 Result of rolling 10 dices

Læs mere

Det nye husdyrgodkendelse.dk Sagsbehandlermodulet Fra ansøgning til godkendelse V. 1.0 28/4 2011

Det nye husdyrgodkendelse.dk Sagsbehandlermodulet Fra ansøgning til godkendelse V. 1.0 28/4 2011 2. Sådan kommer du fra ansøgning til godkendelse Før du kan komme i gang med at arbejde på en miljøgodkendelse, skal du have åbnet den tilhørende ansøgning. Det gør du enten ved at indtaste skemanummer

Læs mere

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

Læs mere

Oktober Dokumentpakker

Oktober Dokumentpakker Oktober 2017 Dokumentpakker Dokumentpakkerne er et værktøj til at udskrive dynamiske breve, som har en standardtekst i brevet, og hvor der automatisk sættes blandt andet patientens navn, adresse og aftaletid

Læs mere

' #$*# ' # #) * #& #& ' # #* #, #$--

' #$*# ' # #) * #& #& ' # #* #, #$-- !"! "$% $ %$ " $&' ( ' $) * ' $* +( ' ) * & & ' *, $-- " " $(. $ /% &%$ & $ &$ $ %% &" ( 1. 00 $ 0 1 $"%$ " 2$ 2. ) " 3 $ * 4* 05 0 $ &'(&%%$ '67 7) 2) 7) 2)7 ' " - - 7) 2 0 $$ 0 '$ " $ 08$$ )2! & & 7)

Læs mere

% &$ # '$ ## () %! #! & # &, # / # 0&. ) 123 45 / & #& #

% &$ # '$ ## () %! #! & # &, # / # 0&. ) 123 45 / & #& # !"$!!"$ % &$ '$ () %! %"!" & * function &+! & &, --.& / 0&. ) 123 45 / & & & 6 Sub CalcVecProduct() * &3.5 & 2 &6 / 7$ & & & "%&$&"! 2 " $ " 8 $ & $/ $ $" 9&6 Sub test() streng_y = "det her går " streng_y

Læs mere

I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes.

I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes. I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes. Sidst i denne vejledning er vist et Excel dokument som det KAN se ud. Ligesom

Læs mere

Collect - brugermanual til Y s Men

Collect - brugermanual til Y s Men Denne vejledning er kun til brug for de personer der har fået adgang til redigering i medlemsdatabasen Collect - brugermanual til Y s Men Indhold Velkommen... 2 Første login... 2 Sådan gemmes nye data...

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Vejledning PROPHIX 11. Driftsbudgettering ved åbning af templates (Kun til Avanceret-brugere)

Vejledning PROPHIX 11. Driftsbudgettering ved åbning af templates (Kun til Avanceret-brugere) PROPHIX 11 Systemansvarlige Michael Siglev Økonomiafdelingen 9940 3959 msi@adm.aau.dk Daniel Nygaard Ricken Økonomiafdelingen 9940 9785 dnr@adm.aau.dk Vejledning (Kun til Avanceret-brugere) Opdateret:

Læs mere

Introduktion til Orddatabasen

Introduktion til Orddatabasen Introduktion til Orddatabasen Skærmviste ordbanker udgør en nyttig teknik til at indføre elever i ordbehandling og skrivning ved hjælp af en computer. Børn lærer generelt at genkende ord, før de kan sammensætte

Læs mere

KMD Brugeradministration til Navision og LDV

KMD Brugeradministration til Navision og LDV KMD Brugeradministration til Navision og LDV Vejledning for Statens Administration og ØSC institutioner. Opdateret 09-09-2015 Indholdsfortegnelse 1 Kom godt i gang... 2 1.1 Login til KMD Brugeradministration...

Læs mere

Huskesedler. Microsoft Excel 2010

Huskesedler. Microsoft Excel 2010 Huskesedler Indhold Absolutte cellereferencer... 2 Beskyttelse... 3 Fejlkontrol... 5 Flyt og kopiér... 6 Flyt og kopier med musen... 7 Formatering... 8 Formatering - Placering... 9 Formatering Kanter og

Læs mere

Vejledning, teknik, tips and tricks

Vejledning, teknik, tips and tricks Vejledning, teknik, tips and tricks Indhold 1 AUHRA pålogning og startside... 1 2 Ofte stillede spørgsmål og kendte fejl... 4 2.1 Har din computer adgang til AU s netværk og adm. systemer?... 4 2.2 Kan

Læs mere

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Gary Rebholz Du har sikkert allerede ved, at Sound Forge Pro software kan bruges til en imponerende række af audio opgaver. Alt fra

Læs mere

Rockband. Introduktion. Scratch. I dette projekt skal du lære, hvordan du kan kode dit eget musikinstrument! Arbejdsliste.

Rockband. Introduktion. Scratch. I dette projekt skal du lære, hvordan du kan kode dit eget musikinstrument! Arbejdsliste. Scratch 1 Rockband All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

LaTeX på et øjeblik Kristian Knudsen Olesen

LaTeX på et øjeblik Kristian Knudsen Olesen Guide 31 LaTeX på et øjeblik Kristian Knudsen Olesen Intentionen med denne guide er, meget hurtigt at gøre læseren i stand til at sætte dokumenter op i L A TEX. Som nogle måske ved, så er det muligt at

Læs mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Konstruktiv Kritik tale & oplæg

Konstruktiv Kritik tale & oplæg Andres mundtlige kommunikation Når du skal lære at kommunikere mundtligt, er det vigtigt, at du åbner øjne og ører for andres mundtlige kommunikation. Du skal opbygge et forrådskammer fyldt med gode citater,

Læs mere

Kapitel 6 Events i C#

Kapitel 6 Events i C# Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel

Læs mere

Kom godt i gang med I-bogen

Kom godt i gang med I-bogen Kom godt i gang med I-bogen At åbne bogen Det allerførste, du skal gøre, for at kunne arbejde med i-bogen, er at aktivere den. Det gøres ved at oprette en konto på systime.dk og derefter aktivere bogen

Læs mere

E-MAIL G-MAIL (GOOGLE)

E-MAIL G-MAIL (GOOGLE) E-MAIL G-MAIL (GOOGLE) Erik Thorsager, Esbjerg. 3. udgave: G-mail Side 1 G-mail E-mail: Det engelske ord mail betyder post. E står for elektronisk. E-mail betyder altså elektronisk post. Elektronisk post

Læs mere

Få flot tekst i din slægtsbog med få klik (Af Henning Karlby)

Få flot tekst i din slægtsbog med få klik (Af Henning Karlby) Få flot tekst i din slægtsbog med få klik (Af Henning Karlby) Når man vil til at skrive sin slægtshistorie ind i et tekstbehandlingsprogram, vil man gerne give sin tekst sit eget udseende. Med det mener

Læs mere

Brugerdefineret menuer i Access

Brugerdefineret menuer i Access Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer

Læs mere

Først skal du oprette dig i systemet, d. v. s. du skal have en såkaldt Googlekonto bestående af en mailadresse og et kodeord.

Først skal du oprette dig i systemet, d. v. s. du skal have en såkaldt Googlekonto bestående af en mailadresse og et kodeord. Gmail Indhold Indhold...1 Introduktion...2 Opret dig i systemet...2 At skrive mails...5 Sende en mail til flere personer...8 Vedhæfte en fil...9 Kladde...10 Signatur...11 Modtagne mails...12 Stjernemarkering...14

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

Regulære udtryk, 2. del

Regulære udtryk, 2. del Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 2. del Artiklen uddyber mange af de begreber, som blev introduceret i den 1. artikel. Den burde dog kunne læses alene, hvis man allerede

Læs mere

Trimmer vindue for Vegas Pro 8.0c giver velkendte resultater

Trimmer vindue for Vegas Pro 8.0c giver velkendte resultater Trimmer vindue for Vegas Pro 8.0c giver velkendte resultater Gary Rebholz Tilbage i artiklen, opdagelse i Vegas Pro Trimmer Rude, fra marts 2008 Tech Tip kolonne, jeg dækkede Vegas Pro Trimmer vindue i

Læs mere

Hukommelsesspil. Introduktion. Scratch

Hukommelsesspil. Introduktion. Scratch Scratch 2 Hukommelsesspil All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can

Læs mere

Excel-2: Videre med formler

Excel-2: Videre med formler Excel-2: Videre med formler Tips: Du kan bruge Fortryd-knappen ligesom i Word! Du kan markere flere celler, som ikke ligger ved siden af hinanden ved at holde CONTROL-knappen nede Du kan slette indholdet

Læs mere

Microsoft Excel XP - Makroer med VBA

Microsoft Excel XP - Makroer med VBA Microsoft Excel XP - Makroer med VBA Microsoft Excel XP - Makroer med VBA Microsoft Excel XP - Makroer med VBA til Windows 9x / Windows NT / Windows 2000 / Windows XP. Version: 2002 Copyright 2003 by F.M.T.

Læs mere

INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL

INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL I denne og yderligere at par artikler vil jeg se nærmere på diagramfunktionerne i Excel, men der er desværre ikke plads at gennemgå disse i alle detaljer, dertil

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Vejledning til formularmodul

Vejledning til formularmodul Vejledning til formularmodul Side 1 af 25 Indledning Formularmodulet kan anvendes til bestilling af varer, booking af møder, indmeldelse - kun fantasien sætter grænser! Systemet er oprettet, så der er

Læs mere

KL S EFFEKTMÅLINGS- REDSKAB TIL KONTROLOMRÅDET

KL S EFFEKTMÅLINGS- REDSKAB TIL KONTROLOMRÅDET KL FEBRUAR 2019 TEKNISK VEJLEDNING KL S EFFEKTMÅLINGS- REDSKAB TIL KONTROLOMRÅDET OFFICE VERSION 2010 OG 2013 2 INDHOLD INDHOLD INDLEDNING A. TEKNISKE KRAV SIDE 3 SIDE 4 B. HVORDAN GØRES ALLE VÆRKTØJETS

Læs mere

Word-5: Tabeller og hængende indrykning

Word-5: Tabeller og hængende indrykning Word-5: Tabeller og hængende indrykning Tabel-funktionen i Word laver en slags skemaer. Word er jo et amerikansk program og på deres sprog hedder skema: table. Det er nok sådan udtrykket er opstået, da

Læs mere

poedit og oversættelse af sprogfiler

poedit og oversættelse af sprogfiler poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,

Læs mere

Typografi og layout i Word 2010

Typografi og layout i Word 2010 Ret&Rigtigt F12 Niels Erik Wille Typografi og layout i Word 2010 Papirformat og papirets orientering (højformat / bredformat) Vælges i menuen Sidelayout: Man kan vælge Retning (højformat / bredformat)

Læs mere

Word-5: Tabeller og hængende indrykning

Word-5: Tabeller og hængende indrykning Word-5: Tabeller og hængende indrykning Tabel-funktionen i Word laver en slags skemaer. Word er jo et amerikansk program og på deres sprog hedder skema: table. Det er nok sådan udtrykket er opstået, da

Læs mere

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER MANUAL TIL OptitecRS CIPHERLAB 8000 - SCANNER INDHOLDSFORTEGNELSE 1 SAMLING OG TILKOBLING AF SCANNER... 1 1.1 STRØM TIL SCANNER... 2 1.2 TILKOBLING TIL COMPUTER... 2 1.2.1 Tilkobling med Seriel Stik...

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Noter til C# Programmering Selektion

Noter til C# Programmering Selektion Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,

Læs mere

Undersøgelse af GVU og EUD for voksne

Undersøgelse af GVU og EUD for voksne Undersøgelse af GVU og EUD for voksne Forslag til beregning af tal til undersøgelse udsendt af Danmarks Evalueringsinstitut (EVA) sendt i mail til alle skoler 9. oktober 2012 09:45 EASY-P konsulenterne

Læs mere

" #" $ " "!% &'% ' ( ) * " & #

 # $  !% &'% ' ( ) *  & # ! # $!% &'% '! #$ #$ ( * & #!! #$%& + &,Dim! - Sub Test( Dim Svar As String Svar = InputBox( Indtast dit Navn MsgBox Dit navn er & Svar Svar & * Sub Test2( MsgBox Goddaw & Svar #Test2( Svar& Test(Test2(Svar

Læs mere

Revo Uninstaller Pro 3.1.2 en guide. Hanne B. Stegemüller 17. juni 2015

Revo Uninstaller Pro 3.1.2 en guide. Hanne B. Stegemüller 17. juni 2015 Revo Uninstaller Pro 3.1.2 en guide Hanne B. Stegemüller 17. juni 2015 2 Hvad gør Revo Uninstaller? Programmet, der fås både i en gratis udgave og en købeudgave, kan afinstallere alle dine forskellige

Læs mere

Tilføj observation Trin for trin

Tilføj observation Trin for trin FakeBase dokumentation Tilføj observation Trin for trin Rev. 1.03 25. januar 2006 / MA Tilføj observation Trin for trin Før du går i gang Denne vejledning vil vise dig, hvordan du tilføjer et objekt til

Læs mere

Kom godt i gang med. Gadstrup Fodbolds Hjemmeside. Udarbejdet af:

Kom godt i gang med. Gadstrup Fodbolds Hjemmeside. Udarbejdet af: Kom godt i gang med Gadstrup Fodbolds Hjemmeside Udarbejdet af: Forretningsstøtte Søren Tofte Version 1.0 24.2.2011 Indhold Sådan kommer du i gang?... 3 Log ind... 4 Mine oplysninger... 5 Klub CMS... 6

Læs mere

I denne vejledning kan du lære, hvordan du arbejder med ændringer af oplysninger på en tjenestemand i PENSAB.

I denne vejledning kan du lære, hvordan du arbejder med ændringer af oplysninger på en tjenestemand i PENSAB. PENSAB Ændring af oplysninger i PENSAB I denne vejledning kan du lære, hvordan du arbejder med ændringer af oplysninger på en tjenestemand i PENSAB. Når du har søgt på en tjenestemand i PENSAB, er oplysningerne

Læs mere

Version

Version 1 af 20 Indholdsfortegnelse Skyggelærer, dobbeltlærer, lærerkandidat og samlæsning... 2 Om at bruge 0 i positionsfeltet for lærere, fag og/eller blokke... 8 Lange lærerinitialer, lokalenavne og holdbetegnelser...

Læs mere

PUT og INPUT funktionerne

PUT og INPUT funktionerne PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS

Læs mere

Vurdering af kvalitet en note af Tove Zöga Larsen

Vurdering af kvalitet en note af Tove Zöga Larsen Vurdering af kvalitet en note af Tove Zöga Larsen Kvalitet... 2 Test... 2 Hvordan finder man testdata?... 2 Dokumentation af test... 3 Review... 3 Vurderingskriterier... 3 Gennemførelsen af et review...

Læs mere

Bilag 2: Elevinterview 1 Informant: Elev 1 (E1) Interviewer: Louise (LO) Tid: 11:34

Bilag 2: Elevinterview 1 Informant: Elev 1 (E1) Interviewer: Louise (LO) Tid: 11:34 Bilag 2: Elevinterview 1 Informant: Elev 1 (E1) Interviewer: Louise (LO) Tid: 11:34 LO: Ja, men først vil vi gerne spørge om, du måske kunne beskrive en typisk hverdag her på skolen? E1: En typisk hverdag

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Regneark II Calc Open Office

Regneark II Calc Open Office Side 1 af 10 Gangetabel... 2 Udfyldning... 2 Opbygning af gangetabellen... 3 Cellestørrelser... 4 Øveark... 4 Facitliste... 6 Sideopsætning... 7 Flytte celler... 7 Højrejustering... 7 Kalender... 8 Dage

Læs mere

Makroer. Ændre makrosikkerhed

Makroer. Ændre makrosikkerhed Makroer Når du åbner kalenderen, bliver du sikkert spurgt, om du vil åbne med eller uden makroer (om boksen med valgmulighederne dukker op afhænger af, hvilket niveau sikkerheden i Excel er indstillet

Læs mere