Excel automatische zoom

Status
Niet open voor verdere reacties.

franzeman

Gebruiker
Lid geworden
2 sep 2006
Berichten
98
Beste VBA-ers,

In een bepaald werkblad heb ik de zoom ingesteld op 70 omdat dit in mijn geval het beste overzicht geeft. Helaas zijn dan de teksten in een vervolgkeuzelijst (bij validatie) nauwelijks leesbaar.

Vraag: Is er een code, die bij het openen van zo'n lijst, de zoom automatisch en vloeiend tijdelijk instelt op bijv. 150 en na het sluiten van de lijst de status quo weer instelt?

Graag jullie hulp.

Groetjes van Franzeman
 
Zover ik weet, lukt dat alleen in één keer, of lelijk schokkerig.

Een andere benadering is om de lettergrootte en de kolomafmeting dusdanig te verkleinen, dat je bij bij 100% zoom alles net beeldvullend hebt.

mvg leo
 
Zover ik weet, lukt dat alleen in één keer, of lelijk schokkerig.

Een andere benadering is om de lettergrootte en de kolomafmeting dusdanig te verkleinen, dat je bij bij 100% zoom alles net beeldvullend hebt.

mvg leo

Sorry Leo, met deze reactie kan ik niets.

Groetjes van Franzeman
 
Sorry Leo, met deze reactie kan ik niets.

Groetjes van Franzeman

En het is nog onzin ook, want zoomen kan wel soepel.
De code is simpel
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Integer
Dim iKolom As Integer
Dim iGrootte As Integer

iGrootte = ActiveWindow.Zoom
iKolom = Target.Column

If iGrootte = 100 And iKolom = 3 Then
    For x = 100 To 150
            ActiveWindow.Zoom = x
        Next x
            Exit Sub
    End If

If iGrootte = 150 And iKolom <> 3 Then
    For x = 150 To 100 Step -1
            ActiveWindow.Zoom = x
        Next x
    End If
End Sub

Zie het bijgevoegde bestand.
Zodra je naar kolom drie gaat wordt er in gezoomd.
Dat kun je natuurlijk aan je behoefte aanpassen.

mvg leo
 

Bijlagen

Laatst bewerkt:
Voorbeeldje voor vloeien zoomen:

Code:
Sub zoom()
    a = ActiveWindow.zoom
    For i = a To 150
       ActiveWindow.zoom = i
    Next
    MsgBox ("Zoom is nu " & i)
    For i = 150 To a Step -1
       ActiveWindow.zoom = i
    Next
    MsgBox ("Zoom is nu weer orgineel")

End Sub


Edit: De oplossing van Leo is uitgebreider.
 
Laatst bewerkt:
Edit: De oplossing van Leo is uitgebreider.
Ik had wat goed te maken:)
Goed idee van Jan om van de huidige zoomstand uit te gaan.
Dan wordt het bijvoorbeeld zo.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Integer
Dim iKolom As Integer
Dim iGrootte As Integer

iGrootte = ActiveWindow.Zoom
iKolom = Target.Column

If iGrootte < 125 And iKolom = 3 Then
    For x = iGrootte To 150 Step 2
            ActiveWindow.Zoom = x
        Next x
            Exit Sub
    End If

If iGrootte > 125 And iKolom <> 3 Then
    For x = iGrootte To 100 Step -2
            ActiveWindow.Zoom = x
        Next x
    End If
End Sub
Met de step is de zoomsnelheid aan te passen (drie is nog vloeiend en snel)
Onder citrix of een dergelijke omgeving gaat het zoomen mogelijk niet vloeiend.
 

Bijlagen

Of met de one-liner
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   ActiveWindow.Zoom = IIf(Target.Column = 3, 150, 70)
End Sub
 
Heren (waar blijven de dames?),

Fantastisch! Hier kan ik mee uit de voeten.
In een leeg document gaat het inderdaad bijna vloeiend. Maar, helaas, in een zwaar werkblad duurt de procedure te lang en wordt het beeld onrustig.
Misschien moet ik toch het vloeiend karakter laten varen en een Application.Screenupdating = False/True gebruiken voor het leesbaarheidsprobleem dat ik wilde aanpakken. Dan wordt het aan/uit.
Moet ik nog even over nadenken ...
Ben in elk geval wederom snel geholpen.

Vriendelijk bedankt en groetjes,

Franzeman
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan