Word VBA

Nemt at komme igang.
Hurtige og gode svar på øvelser og spørgsmål.

Sune Jeppson, Arbejdernes Landsbank

Word VBA

Super hurtig tilbagemelding på løste opgaver. Det passer mig fint at kunne følge kurset i mit eget tempo.

Og igen igen

Ikke utænkeligt at jeg "springer" på et af de andre kurser

Stig Ulriksen, HTH

Word VBA

Jeg er total overrasket over den korte svartid. Det er et KÆMPE plus hvis man selv til tider arbejder under tidspres og ved man kun har en kort tid at arbejde på en opgave.

Der er heller aldrig slinger i valsen på spørgsmål; altid kort og præcis svar retur. 

At kunne lave opgaverne når det passede mig var helt fantastisk. 

Tina Eriksen, Skandinavisk Service Partner

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

Meget hurtigt og kompetent feedback...

Sparring på den opgave, som jeg sidder og arbejder med.

Veltilrettelagte øvelser

Claus Witfelt, Flyvevåbnets Officersskole

Excel VBA

Jeg har gennemført kurset Excel VBA. Jeg var skeptisk overfor måden at lære på inden jeg gik i gang, men jeg må sige at min skepsis blev gjort til skamme. Lige fra første lektion følte jeg at jeg virkelig lærte noget.

Thors tilgang til materialet er perfekt. Gennem løbende øvelser får man lejlighed til at afprøve teorien i praksis.

Beder man om lidt hjælp, så kommer den lynhurtig – men det er kun et hint og så kan man selv finde ud af resten – det er perfekt for herved tvinges eleven til at tænke sig om – mon det kan bruges i folkeskolen også :).

Kurset er ALLE pengene værd og kan køres når man har tid og er motiveret. Holder man for lange pauser i undervisningen, så komme Thors pegefinger i form af en mail og så er det bare om at komme i gang igen :)

Jacob Madsen, Mettler-Toledo A/S

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

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

< >
Se flere referencer

VBA kode omkring userforms

Det sidste vi mangler at lave omkring userforms er at kode hændelsesprocedurer, så der også kommer til at ske noger når brugeren trykker på knappen.

Hændelsesprocedure til knap

Hvis man dobbeltklikker på en knap i en userform bliver der oprettet en hændelsesprocedure til knappen. Det ser sådan her ud (når knappen hedder opret):

I hændelsesproceduren kan du skrive al den VBA kode du har lyst til. De kontrolelementer der er på userformen er objekter, der kan adresseres med deres navn. Findes der en tekstbox på userformen, der hedder txtNavn kan indholdet trækkes ud og afleveres i dokumentet med koden:

Selection.TypeText txtNavn.Value

Og på samme måde kan man også hente værdier ud af de øvrige kontrolelementer.

Bogmærker

Når vi skal placere tekst fra vores userform i dokumenter er bogmærker et meget centralt emne. Et bogmærke indsættes via "Indsæt" fanen i båndet (Word 2007/2010).

Og det er smart, hvis man kan se sine bogmærker i dokumentet - der skal man lige en tur ind i avancerede indstillinger

Et lille eksempel

Nyttig VBA kode

I relation til placering af indholdet fra en userform i dokumentet er der et par kodelinjer der kan være nyttige

Selection.TypeText txtNavn.Value - skriver indholdet af tekstboksen der hvor courseren står
Selection.TypeParagraph - indsætter et linjeskift i dokumentet
Selection.GoTo What:=wdGoToBookMark, Name:="Bogmærke" 
  - flytter cursoren til bogmærket med navenet "Bogmærke"
ActiveDocument.Bookmarks("Bogmærke").Range.Text = "Indsat Text"
   - indsætter tekst i stedet for bogmærket - og sletter bogmærket!

Det kommer til at se sådan her ud, hvis det kørers på ovenstående eksempel

ActiveDocument.Bookmarks("Bogmærke").Range.InsertBefore "Indsat Text"

og kørt på ovenstående eksempel

ActiveDocument.Bookmarks("Bogmærke").Range.InsertAfter "Indsat Text"

det giver så

Vil man erstatte teksten inde i et bogmærke med en tekst og beholde bogmærket - det gør man sådan her:

    Dim bmRange As Range
    Set bmRange = ActiveDocument.Bookmarks("Bogmærke").Range
    bmRange.Text = "Indsat Text"
    ActiveDocument.Bookmarks.Add Name:="Bogmærke", Range:=bmRange

Det giver følgende resultat:

Der skal nok dukke mere VBA kode op senere i kurset.

Hændelsesprocedurer på userformen selv

I toppen af arbejdsvinduet er der to dropdown bokse. Vælger man UserForm i den første kan man vælge forskellige hændelsesprocedurer i den anden.

Initilize hændelsesprocedurern kan bruges til at få kode afviklet når UserFormen bliver vist første gang - det kunne f.eks. være at fylde indhold på en dropdownkontrol. Det kunne se sådan her ud (forudsat dropdownkontrollen hedder cboTitel)

Private Sub UserForm_Initialize()
  cboTitel.AddItem "Vælg titel"
  cboTitel.AddItem "Hr."
  cboTitel.AddItem "Fru"
  cboTitel.ListIndex = 0
End Sub

Hændelsesprocedurer på de øvrige kontrolelementer (datavalidering)

De enkelte kontrolelementer har også hændelsesprocedurer, der f.eks. kan bruges til at validere de data brugeren indtaster/vælger. Vælg kontrollen i venstre dropdownkontrol og Exit i den højre - så får du den viste hændelsesprocedure:

Bemærk, at der overføres en parameter Cancel, der kan bruges til at styre om brugeren må komme videre. Det kan bruges til validering - det kunne se sådan her ud:

Private Sub txtAntal_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If Not IsNumeric(txtAntal.Value) Then
    MsgBox "Her skal du skrive et tal" 
    Cancel = True 
  End If
End Sub

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.