Avatar billede fagpoler Novice
15. juli 2003 - 14:23 Der er 18 kommentarer og
1 løsning

Aflæs skærmopløsning og zoom efter opløsning

Jeg er ved at lave et program i Excel, hvor jeg gerne vil have at Makroen Auto_Open() selv finder ud af om PC èren køre med en skærmopløsning på 640x800, 1024x768 eller mere. og så zoomer skærmbillederne så de passer til opløsningen, altså sådan at hvis skærmopløsningen er 640x800 skrives der et tal i celle A1 fx eller hvis skærmopløsningen er 1024x768 skrives der et andet tal i A1 fx
15. juli 2003 - 14:46 #1
Sådan aflæses højde/bredde:

Declare Function GetSystemMetrics Lib "user32"(ByVal nindex As Long) As Long
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1

Sub DisplayVideoInfo()
  vidWidth = GetSystemMetrics(SM_CXSCREEN)
  vidHeight = GetSystemMetrics(SM_CYSCREEN)

End Sub
15. juli 2003 - 14:48 #2
Og du kan indstille zoom-procenten med:

ActiveWindow.zoom = 100
Avatar billede fagpoler Novice
15. juli 2003 - 15:10 #3
Jeg kan ikke få det til at virke?
Det skal lige siges at det er Excel 95 jeg bruger.

Jeg kan godt få det aktive vindue til at blive 75%

Sub Makro1()
    ActiveWindow.Zoom = 75
End Sub

Men aflæse skærmopløsningen, og få det sat ind i en celle kan jeg ikke!
Avatar billede kabbak Professor
15. juli 2003 - 23:18 #4
Jeg bruger dette for at sætte skærmopløsningen
I dette tilfælde er det viste område altid fra kolonne A til kolonne P, uanset  skærmopløsningen


Private Sub Worksheet_Activate()
Columns("A:P").Select
    Range("P1").Activate
    ActiveWindow.Zoom = True
    Range("A1").Select
End Sub
Avatar billede fagpoler Novice
15. juli 2003 - 23:36 #5
Det virker bare tusind Tak
Du er hammer dygtig kabbak
Hilsen fagpoler
Avatar billede fagpoler Novice
15. juli 2003 - 23:46 #6
Også tak til erikjuul
Hilsen fagpoler
Avatar billede kabbak Professor
16. juli 2003 - 00:00 #7
Tak for points, men er det ikke rigeligt for det svar, vil du ikke have lidt retur.
Avatar billede fagpoler Novice
16. juli 2003 - 00:13 #8
Jeg har et andet problem, når jeg bruger XP og laver en lykke, så nakøren flyttes uden for skærmbilledet flytter skærmbilledet ikke med, som den gør i 95
Avatar billede kabbak Professor
16. juli 2003 - 00:19 #9
Ikke forstået, den må jeg lige have en gang til
Avatar billede fagpoler Novice
16. juli 2003 - 00:21 #10
fx i følgende kode
 
    Application.ScreenUpdating = False
    If ActiveSheet.Name = "Krediter" Then
    ActiveSheet.Unprotect
    Set MinCell = ActiveCell
    Set MinSheet = ActiveSheet
    If ActiveCell = "" Then
    MsgBox "Du skal Indtast Kunde Nr."
    GoTo Slut
    End If
    Dim X As Variant
    X = ActiveCell
    Sheets("Kunder").Select 'Er navnet på det Ark hvor navnet hentes
    Range("A2").Select
    Do While ActiveCell <> X
    If ActiveCell = "" Then
    MsgBox "Nummeret findes ikke"
    GoTo Slut1
    End If
    ActiveCell.Offset(1, 0).Select
    Loop
    Sheets("Krediter").Select


*********************************************************
virker ikke i XP
Application.ScreenUpdating = True
Avatar billede kabbak Professor
16. juli 2003 - 00:38 #11
jeg har ikke XP kun 2000, men er det 'Application.ScreenUpdating = True', der ikke virker i XP ?.
Avatar billede fagpoler Novice
16. juli 2003 - 00:45 #12
Det jeg mener er, hvis man fx skal finde en kunde i en kundekartotek med en lykke, så makøren løber uden for billedet finder makøren godt nok kunden, men skærmbilledet flytter ikke med.
(man skal lige vippe med piltasterne)
Avatar billede fagpoler Novice
16. juli 2003 - 00:46 #13
Det virker helle ikke i 2000
Avatar billede fagpoler Novice
16. juli 2003 - 00:50 #14
i 95 står makøen altid SYNLIG i skærmbilledet når koden er slut
Avatar billede kabbak Professor
16. juli 2003 - 00:51 #15
Husker du at selecte cellen efter 'Application.ScreenUpdating = True'
Avatar billede fagpoler Novice
16. juli 2003 - 00:58 #16
Hvordan gør man det, når makøren fx med en lykke skal løbe fra celle A2 til den finder kunde nr. fx 250 i fx celle A300
Avatar billede kabbak Professor
16. juli 2003 - 01:08 #17
Do While ActiveCell <> X
    If ActiveCell = "" Then
    MsgBox "Nummeret findes ikke"
    GoTo Slut1
    End If
    ActiveCell.Offset(1, 0).Select
    Loop
Application.ScreenUpdating = True
ActiveCell.select
Avatar billede kabbak Professor
16. juli 2003 - 01:09 #18
jeg skal i seng nu, en arbejdsdag venter ;-)
Avatar billede fagpoler Novice
16. juli 2003 - 01:14 #19
Ok tusind tak
Hilsen fagpoler
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB