02. maj 2008 - 10:31Der er
23 kommentarer og 2 løsninger
Mens makroen kører
Jeg har en makro, som henter oplysninger i andre filer, hvilket tager lidt tid. I stedet for at skærmen står og "blinker" under afviklingen af koden, ville jeg gerne have et timeglas eller en "bjælke" og så lidt ro på billedet. Hvordan sætter jeg det ind i min makro?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
"Application.ScreenUpdating = False" virker kun korrekt i Excel. I Word vil skærmen stadig blinke i mange tilfælde. Hvis du vil have en helt roligt billede skal du gøre følgende:
Indsæt nedenstående i toppen af et kodemodul: Declare Function LockWindowUpdate Lib "user32" _ (ByVal hwndLock As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
og brug så denne kode dine makroer, når skærmen ikke skal opdateres:
Dim hwnd As String hwnd = FindWindow("OpusApp", 0&) LockWindowUpdate (hwnd)
og brug denne kode, når skærmopdateringen skal aktiveres igen:
'Helt i toppen af modulet Declare Function LockWindowUpdate Lib "user32" _ (ByVal hwndLock As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
Du skal stille kursoren helt i toppen af kodemodulet og så indsætte nedenstående:
'Helt i toppen af modulet Declare Function LockWindowUpdate Lib "user32" _ (ByVal hwndLock As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
Fint - nu virker det, men skærmen viser stadig, hvad der sker i de filer, jeg opdaterer fra...sortering osv, men altså kun fra disse. Kan jeg også undgå dette.
Sub Sidstenotat() hwnd = FindWindow("OpusApp", 0&) LockWindowUpdate (hwnd)
herefter bliver data skrevet i den fil, hvor skærmbilledet først bliver opdateret til sidst. Der hentes fra 9 forskellige filer, så processen gentages.
Tak for kampen - det virker perfekt. Når jeg kigger op over indlægene, synes jeg dog at mine 30 point er lidt "billigt". Er det muligt at tildele jer yderligere point.
Det tror jeg ikke at der gør. Hvis jeg "sætter" en dialogboks ind i OPEN-makroen, kan der efterfølgende indlæses uden, at der opdateres skærm før end til sidst?? Hvis der samme sted kun køres en makro uden dialogboks, bliver der efterfølgende opdateret skærm under indlæsning.
Har lavet fordeling af point, men fik ikke noget svar på om, der kunne gives yderligere point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.