ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Automakroer

Det er mulig å få utført makroer automatisk når forskjellige hendelser oppstår. Følgende hendelser kan starte makroer :

Hendelse : Fremgangsmåte :
Ved åpning av arbeidsboken Lag en helt vanlig prosedyre og gi den navnet Auto_Open().
Ved lukking av arbeidsboken Lag en helt vanlig prosedyre og gi den navnet Auto_Close().
Ved tastetrykk Application.OnKey(Key, Procedure)
Ved gjentakelse Application.OnRepeat(Text, Procedure)
Ved klokkeslett Application. OnTime(EarliestTime, Procedure, LatestTime, Schedule)
Ved angre Application.OnUndo(Text, Procedure)
Ved aktivering av et vindu ThisWorkbook.Windows(1).OnWindow = "Procedure"
Ved beregning Application.OnCalculate="Procedure"
Ved dobbeltklikk Application.OnDoubleClick="Procedure"
Ved aktivering av ark Application.OnSheetActivate="Procedure"
Ved deaktivering av ark Application.OnSheetDeactivate="Procedure"
Ved nye data Application.OnData="Procedure"

For å avslutte at en prosedyre utføres hver gang en hendelse oppstår tilordner du to anførselstegn ("") uten prosedyrenavn, f.eks.: Application.OnData="". Prosedyrene Auto_Open og Auto_Close må eventuelt redigeres, slettes eller gis andre navn.

Du kan bare ha en Auto_Open-prosedyre i hver arbeidsbok. Dersom du har flere Auto_Open-prosedyrer vil ingen av dem virke. Det samme gjelder for Auto_Close-prosedyrer.

Eksempel:
Følgende eksempelmakroer kan kopieres og limes inn i et vanlig modulark:

Sub Auto_Open()
' denne makroen vil bli utført hver gang arbeidsboken åpnes
    Worksheets(1).Activate ' aktiverer ønsket regneark
    Application.OnSheetActivate = "ProsedyreNavn" 
    ' aktiverer en prosedyre ved bytting av regneark
    MsgBox "Velkommen!", vbInformation, "Klokka er " & Format(Time, "hh:mm")
End Sub


Sub Auto_Close()
' denne makroen vil bli utført hver gang arbeidsboken lukkes
    Application.OnSheetActivate = "" 
    ' deaktiverer prosedyren ved bytting av regneark
    MsgBox "Ha en fortsatt god dag!", vbInformation, _
        "Klokka er " & Format(Time, "hh:mm")
End Sub

I Excel97 finner du egne hendelsesprosedyrer knyttet til hvert enkelt ark. Disse prosedyrene kan blant annet starte makroer før dobbeltklikk utføres, før høyreklikk utføres og dersom brukeren endrer merkingen av celler.

 

Dokumentet er sist oppdatert 1999-08-21 12:31:27      Utskriftsvennlig versjon

Brukerkommentarer:
Ole P. fra Norway skrev (2006-03-06 14:45:44 CET):
Re: Kjøre makro ved et gitt klokkeslett
I tabellen ovenfor finner du "Application.OnTime" som vil fikse dette, f.eks. slik:
Application.OnTime("17:00", "MakroNavn", ,True)
OleC fra Oslo skrev (2006-03-06 14:36:41 CET):
Kjøre makro ved et gitt klokkeslett
Har du noen tips om hvordan starte en Excel-makro f.eks. hver dag kl 17:00? Eks: Man ønsker å kopiere valurtakurser fra et ark til et annet innenfor samme bok hver dag kl 17:00.

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2024    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse