Excel VBA

Øvelserne kan tages i det tempo, der passer en, hvilket gør det muligt at gå i dybden med udvalgt teori og øvelser og inddrage arbejdsrelaterede udfordringer/problemstillinger direkte i kurset.

Der er hurtig respons fra underviser, man bliver udfordret på opgaverne og får ikke lov til og gå videre før en opgave er løst tilfredsstillende.

Kan anbefale kurset til andre.

Brian Lind Olsen, OUH Odense Universitetshospital

Excel VBA

Det har været et supergodt kursus, hvor man ikke bare fik resultaterne leveret, der skulle tænkes meget !

Materialet har været rigtig godt, og det er da utroligt så tit der har været hjælp at hente, har set at underviseren var online, også om aftenen og tidlig morgen, rigtig rart, og der kom lynhurtigt respons tilbage på div. spørgsmål og besvarelser.

Helt sikkertet kursus og kursusform, jeg vil anbefale til andre.

Margit Solveig Kristoffersen, Socialpædagogerne Sydjylland

Excel VBA

Det har været meget nærværende og personlig fjernundervisning med hurtige svar på spørgsmål og feedback på opgaver. Der har været stor engagement og ejerskab fra underviserens side.

Det faglige niveau har været vekslende mellem "begynder" og "ekspert" opgaver.

Brian Deleuran, Radiometer

Excel VBA

Det har bestemt været pengene værd. Jeg kender flere, som har taget VBA kursus on-site i et par dage eller deromkring , og de har slet ikke fået det samme ud af det som jeg har via denne side. Jeg har allerede udviklet små og større modeller til min arbejdsplads, og modellerne bruges allerede internationalt, det havde jeg ikke kunnet uden dette kursus.

Det er kanon, at man får personlig feedback og det går som regel tilmed hurtigt. Dygtig læremester, som sætter sig ind i mine specifikke problemstillinger - det er et stort plus. Den personlige kontakt er max vigtig.

Jeg vil anbefale dette til andre, der spørger til dette.

Michael Mortensen, DLH

Excel VBA

Det er rart at kunne tage kurset i sit eget tempo, når det lige passer ind, men det giver også en risiko for at det lige bliver langstrækt nok, men så er det godt underviseren kan holde én lidt i ørerne med mails wink

Eva Bonne Alkærsig, EBA InterrimControlling

< >
Se flere referencer

Fejlhåndtering

Det er ikke alle fejl i vores programmer, der opstår fordi vi selv har lavet en fejl i vores kode. Nogle fejl kan opstå f.eks. fordi brugeren har glemt at sætte en diskette i drevet, som vi gerne vil gemme noget på. Sådan en fejl vil få vores program til at gå ned med en fejlkode, som brugeren kan have svært ved at forstå og vi kan ikke være sikre på, at der faktisk er blevet gemt noget på disketten. Til at fange den slags fejl har vi "on error" metoden. Den virker sådan her:

On Error GoTo LineLabel

Som vist i dette lille eksempel, som du kan prøve at kopiere ind i et modul og teste

 

Sub AktiverNytArk
On Error GoTo ErrHandler:
    Worksheets("NytArk").Activate 
    Exit Sub

ErrHandler:
    If Err.Number = 9 Then
        MsgBox "Arket findes ikke!"
        ' Arket findes ikke, så vi opretter det
        Worksheets.Add.Name = "NytArk"
        ' Retur til den linje, hvor fejlen opstod
        Resume
    End If
End Sub

Og et mere:

Sub GemTilA()
  On Error GoTo ErrorTrap
  ChDrive "A"
  MyFile = "A:\Data.XLS"
  Application.DisplayAlerts = False
  ActiveWorkBook.SaveAs FileName:=MyFile
  Exit Sub
Rydop:  
  MsgBox "Der er ikke blevet gemt noget på disketten fordi brugeren har trykket på annuller"
  Exit Sub 
ErrorTrap: 
  Besked = "Fejl nr: = " & Err.Number & vbCr & _ 
           Err.Description & vbCr & vbCr & _ 
           "Indsæt en diskette i drevet og tryk ok " 
  Svar = MsgBox(Besked, vbQuestion + vbOKCancel, "Error") 
  If Svar = vbCancel Then Resume Rydop 
  Resume
End Sub

Vi har som du ser et par muligheder for at genoptage afviklingen af koden

  • Resume - genoptager afviklingen med den linje der gav fejlen
  • Resume Next - genoptager afviklingen lige efter den linje der gav fejl
  • Resume LinieLabel - genoptager afviklingen ved den label vi har angivet

Du kan også vælge "On Error Resume Next", men det skal man nok lige overveje lidt...

Et eksempel på brug af On Error Resume Next

On Error Resume Next
    N = 1 / 0    ' Skab en fejl
    If Err.Number <> 0 Then 
        N = 1
    End If

 


 

Central fejlhåndtering

Et lille eksempel, som jeg håber du kan bruge

Sub MinMakro()
  On Error Goto LokalFejl
  ..
  ..

RydOp:
  Exit Sub

LokalFejl:
  iHandling = Central("MinMakro", vbAbortRetryIgnore)
  Select Case iHandling
    Case vbAbort
      Resume Rydop
    Case vbRetry
      Resume
    Case vbIgnore
      Resume Next
  End Select
End Sub

Function Central(stKalder As String, iKnapper As Integer) As Integer
  Debug.Print stKalder, Err.Number, Err.Description
  If bLogging Then Print #2, Now, stKalder, Err.Number
  Select Case Err.Number
    Case xx
      Central = MsgBox("Der er et problem med ..." , iButtons, Title:=Application.Caption & ": " & stCaller)
    Case ...
  End Select
End Function

Find en liste over fejlnumre her: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/trappable-errors

 

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.