![]() |
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
|
|
|
LinkBack | Discussietools | Weergave |
|
#1
|
|||
|
|||
|
Hallo Allemaal,
Hierbij stuur ik een bestand met daarin twee macro's die ik zelf wel handig vindt. AlleBladenA1: zorgt er voor dat van alle vensters op alle bladen de linker bovenhoek zichtbaar wordt. Wanneer je overal en nergens in het workbook aan het werk bent, of wanneer er anderen met het bestand gewerkt hebben en niet netjes hebben afgesloten (in dat geval met auto_openen starten) ShowHide: Handig om alleen de geselecteerde bladen zichtbaar de laten en alle anderen met XLExtraHidden voor de "gewone" gebruiker onbereikbaar te maken. (kan alleen met een macro weer zichtbaar gemaakt worden) Wanneer er al een of meer bladen verborgen zijn dan wordt alles weer zichtbaar gemaakt. De tekst kan ook in "handige macro's" geplaatst worden wanneer daar aanleiding voor is. Mvg, Dick O. |
| Sponsored Links |
|
#2
|
||||
|
||||
|
Dicko,
Ik heb 1 routine voor je herschreven. Code is efficiënter en variabele zijn gedeclareerd. verder daag ik je uit om je andere routine ook te herschrijven en efficiënter te maken. Code:
Sub AlleBladenA1()
'Initialiseer
Dim Blad As Worksheet, BackupSheet As Worksheet
With Application 'De excel applicatie
.ScreenUpdating = False 'Update scherm uitzetten
With .ThisWorkbook 'Pak het workbook waar deze code in staat
Set BackupSheet = .ActiveSheet 'Pak de huidige sheet om deze later weer als startsheet in te stellen
For Each Blad In .Worksheets 'Pak alle sheets
If Not Blad.Visible = xlVeryHidden Then 'Is de sheet niet verborgen
Blad.Activate 'Activeer één sheet
Blad.Cells(1, "A").Activate 'Activeer Cel A1
End If
Next
End With
BackupSheet.Activate 'Herstel de sheet waarmee je begon
.ScreenUpdating = True 'Schermupdate weer aanzetten
End With
End Sub
__________________
Suc6 druk op F1 en lees ! En zie wat de moeder van de meeste oplossingen is. en Worksheet.nl is de dochter Moderator www.worksheet.nl / mr.magoo@worksheet.nl Lees informatieve columns over buitenlandse reizen en wandelingen in Nederland Verrassende columns over het leven van alledag op een camping. Optimistische columns over pubers, ouders en ouderen. op www.jolandacatharina.nl |
|
#3
|
|||
|
|||
|
Code:
Option Explicit 'dwingt initialiseren van variabelen af.
Sub AlleBladenA1()
'ken een sneltoets aan deze macro toe bijvoorbeeld
'CTRL+Shift+A of laat hem lopen vanuit een auto_open macro.
'deze macro zorgt er in een sneltoets voor dat van alle zichtbare bladen en alle deelvensters
'de uiterste linker bovencel zichtbaar wordt. Netjes opgeruimd dus en gaat verder met
'het blad van waaruit de macro gestart is.
'initialiseer
Dim GeselecteerdBlad As Variant, blad As Variant
Dim Teller As Integer
With Application
.ScreenUpdating = False 'geeft een zandloper i.p.v. flitsen
GeselecteerdBlad = .ActiveSheet.Name 'startblad
For Each blad In .Worksheets
With blad
If Not .Visible = xlVeryHidden Then 'opdracht kan niet op xlVeryHidden bladen.
.Select
For Teller = 1 To ActiveWindow.Panes.Count 'telt hoeveel vensters er zijn op het blad
With ActiveWindow.Panes(Teller)
.ScrollColumn = 1 'scrollt naar boven
.ScrollRow = 1 'scrollt naar boven
End With
Next
ActiveSheet.Range("A1").Select 'selecteert de linkerbovencel
End If
End With
Next
Sheets(GeselecteerdBlad).Select 'selecteert het startblad
.ScreenUpdating = False 'Update scherm weer aanzetten.
End With
End Sub
Het werken met het with statement komt de leesbaarheid van de code volgens mij niet ten goede. De screenupdating wordt toch bij het beeindigen van de macro automatisch weer aangezet, tenzij er wat fout gaat natuurlijk, maar normaal zou ik deze niet weer aan hoeven te zetten toch? Bedankt voor de uitdaging. Dick Laatst gewijzigd door Mr. Magoo; 5 december 2009 om 00:55 Reden: codetags |
|
#4
|
|||
|
|||
|
sorry dat ik de code tags niet gebruikt heb, volgende keer beter.
|
|
#5
|
||||
|
||||
|
Dicko,
heb je code al aangepast met codetags, voordeel van Moderator ![]() ![]() Je code is zeer kort daardoor vervalt je argument als dat with onduidelijk is. Tevens spring ik met de code in zodat je weet wat bij elkaar hoort. Daar is een zeer prettige gratis hulpje voor SmartIndent Verder declareer je nu wel variabelen, al is het wel wild west. Je weet wat je nodig hebt dus kun je specifiek declareren zoals ik heb gedaan. Je hebt niet echt gekeken hoe ik iets heb opgelost, wil niet zeggen dat ik alle kennis in pacht heb................ maar heb maar een heel klein ietsje pietsje beetje ervaring. Je zou toch enigszins iets van geleerd kunnen hebben hoe iemand anders tegen je oplossing/probleem aankijkt. Verder ben ik van mening wat je begint moet je ook afmaken. Ik bedoel daarmee Application.Screenupdating Je moet niet op een systeem cq applicatie vertrouwen. Als je daar op vertrouwd kunnen je woorden nog wel een verdraaid worden terwijl je dat niet wilt. Zie programmeren alsof je door een journalist wordt geïnterviewd. als je daar te vrij antwoord worden je antwoorden ook verdraaid en aangepast aan de willekeur van de interviewer. wees duidelijk wat je bedoeld en omschrijf alles. verder wat doet de teller nog in je code? Heb je totaal niet nodig. Verder bedoelde ik ook niet om de code te verbeteren welke ik aangepast had maar de code voor ShowHide, dat je daar eens je je licht kritisch over zou laten gaan. Verder zie mijn kritiek niet als een aanval maar als een leerproces.
__________________
Suc6 druk op F1 en lees ! En zie wat de moeder van de meeste oplossingen is. en Worksheet.nl is de dochter Moderator www.worksheet.nl / mr.magoo@worksheet.nl Lees informatieve columns over buitenlandse reizen en wandelingen in Nederland Verrassende columns over het leven van alledag op een camping. Optimistische columns over pubers, ouders en ouderen. op www.jolandacatharina.nl |
|
#6
|
|||
|
|||
|
Wanneer ik met roosters bezig ben en verschillende versies heb, dan kan ik door een enkel blad te selecteren en dan de macro ShowHide uit te voeren, er voor zorgen dat de gebruiker alleen het zichtbare blad kan benaderen.
Code:
Sub ShowHide()
'Initialiseer
Dim Blad As Worksheet, BackupSheet As Worksheet
With Application 'De excel applicatie
.ScreenUpdating = False 'Update scherm uitzetten
With .ThisWorkbook 'Pak het workbook waar deze code in staat
Set BackupSheet = .ActiveSheet 'Pak de huidige sheet om deze later weer als startsheet in te stellen
For Each Blad In .Worksheets 'Pak alle sheets
If Not Blad.Visible = xlVeryHidden Then 'Is de sheet niet verborgen
Blad.Activate 'Activeer één sheet
Blad.Cells(1, "A").Activate 'Activeer Cel A1
End If
Next
End With
BackupSheet.Activate 'Herstel de sheet waarmee je begon
.ScreenUpdating = True 'Schermupdate weer aanzetten
End With
End Sub
|
|
#7
|
|||
|
|||
|
kun je zoiets ook maken dat je zelf kan kiezen welke bladen je verbergd?
ik heb zelf een bestand van 6 bladen waar er voor de invoerende partij maar 3 zichtbaar hoeven zijn... ik heb nu de bladen verborgen door de rij en kolom te verbergen |
![]() |
| Discussietools | |
| Weergave | |
|
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
Soortgelijke discussies
|
||||
| Discussie | Auteur | Forum | Reacties | Laatste bericht |
| Macro kopiëren en macro niet meenemen | Norman | Afgehandelde vragen | 7 | 30 november 2011 11:29 |
| macro vraag: hoe laatste regel te kopieren naar volgende met criteria dmv macro | paultjehulsbosch | Afgehandelde vragen | 3 | 15 maart 2011 18:12 |
| E-mail macro en handtekening macro samenvoegen | JohannesEngelbert | Afgehandelde vragen | 3 | 14 februari 2010 16:45 |
| Macro voor verschillende bestanden - bestandsnaam mag niet in macro | Bri | Afgehandelde vragen | 1 | 12 februari 2010 11:14 |
| Tweede macro vanuit andere macro geeft error | Tribal_T | Afgehandelde vragen | 5 | 27 augustus 2008 14:35 |