• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Zoomen gelijkstellen

Status
Niet open voor verdere reacties.

Masjimo

Gebruiker
Lid geworden
23 dec 2010
Berichten
165
In een spreadsheet met alle dagen van de week heb ik de volgende VBA om de zoom in alle tabbladen gelijk te stellen;

Daarom zet ik in per tabblad in cell Q1 de zoom-waarde van het actieve tabblad;

Code:
Private Sub Worksheet_Deactivate()
Dim a As Integer

a = ActiveWindow.Zoom
    
Set shts = Sheets(Array("Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"))
For Each sht In shts
    sht.Range("Q1").Value = a
Next sht
End Sub

Met het openen van een ander tabblad dacht ik door de volgende VBA de zoom gelijk te stellen

Code:
Private Sub Worksheet_Activate()

ActiveWindow.Zoom = Range("Q1").Value

End Sub

Maar om de een of andere reden mis ik wat.... wie weet raad??:eek:
 
In Thisworkbook, en meer heb je niet nodig.
Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  Sh.Application.ActiveWindow.Zoom = 100
End Sub
 
Ja, maar die zet alle sheets op 100%.... Ik wil de betreffende sheets op de aangepaste zoom zetten van een van deze serie......
 
Hou er rekening mee dat bij Worksheet_Deactivate() de Activesheet op dat moment al het blad is waar je naar toe gaat en niet meer het blad dat werd gedeactiveerd.

Gebruik Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) om iets uit te voeren op een blad dat op dat moment gedeactiveerd wordt. Het object sh is daarbij het blad dat wordt verlaten.
 
Laatst bewerkt:
Super, bedankt; raar dat dat zo georganiseerd is...... Wat is de logica erachter?:eek:
 
De woorden Microsoft en logica in 1 zin is ook niet logisch :p
 
Even voor mijn nieuwsgierigheid.
Je veranderd steeds cel Q1 met wat voor zoom je wilt hebben op de andere tabbladen?
 
De bedoeling is om de zoom-waarde op te slaan in cell Q1, om zodoende die in de andere tabbladen weer aan te roepen!
 
En die komt in elk tabblad te staan toch?
Dan is alles toch gelijk, en doet de code het maar één keer wat het moet doen?
 
Ik denk dat wat hij wil is op een willekeurig blad inzoomen naar bijvoorbeeld 115% en dat wanneer hij naar een ander blad gaat deze dan dezelfde zoomwaarde krijgt. Zodoende hoef je dat op dat nieuwe blad niet eerst weer zelf te doen.
 
Zo begreep ik het ook Ed.
Maar dat kan je niet realiseren met 'activewindow.zoom', ondanks dat je 'workbook_sheetdeactivate' gebruikt.
Het activewindow.zoom getal is opdat moment het actieve werkblad wat je aanklikt.

Wat wel kan is:
In thisworkbook.
Code:
Option Explicit
Private a As Integer

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  Sh.Application.ActiveWindow.Zoom = a
  Range("Q1") = a
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  a = Sh.Range("Q1")
End Sub

Als je nu Q1 veranderd, en je gaat naar een ander werkblad krijgen al deze werkbladen dezelfde zoom.
 
Haha, ok ;) Maar het gebruik van een cel ervoor vind ik dan minder netjes. Je kunt er beter een globale variabele voor gebruiken die dus voor het hele project geldig is.

@HSV:
Vandaar mijn opmerking in dit bericht :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan