Worksheet.nl  

Ga terug   Worksheet.nl > Excel Overig > Downloads



Status bericht: Opgelost
Reageren
 
LinkBack Discussietools Weergave
  #1  
Oud 4 december 2009, 21:29
Junior Member
 
Geregistreerd: 5 juni 2006
Locatie: Overijssel
Berichten: 22
Standaard AlleBladenA1 en ShowHide Macro

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.
Bijgevoegde bestanden
Bestandstype: xls AlleBladenA1 en ShowHide.xls‎ (22,5 KB, 132x gelezen)
Met citaat reageren
Sponsored Links
  #2  
Oud 4 december 2009, 23:05
Mr. Magoo's schermafbeelding
Super Moderator
 
Geregistreerd: 17 november 2005
Locatie: Blokker Nederland
Berichten: 4.857
Standaard

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
Met citaat reageren
  #3  
Oud 4 december 2009, 23:44
Junior Member
 
Geregistreerd: 5 juni 2006
Locatie: Overijssel
Berichten: 22
Standaard Uitdaging aangenomen

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
Opmerkingen:
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
Met citaat reageren
  #4  
Oud 5 december 2009, 00:47
Junior Member
 
Geregistreerd: 5 juni 2006
Locatie: Overijssel
Berichten: 22
Standaard

sorry dat ik de code tags niet gebruikt heb, volgende keer beter.
Met citaat reageren
  #5  
Oud 5 december 2009, 01:17
Mr. Magoo's schermafbeelding
Super Moderator
 
Geregistreerd: 17 november 2005
Locatie: Blokker Nederland
Berichten: 4.857
Standaard

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
Met citaat reageren
  #6  
Oud 5 december 2009, 13:12
Junior Member
 
Geregistreerd: 5 juni 2006
Locatie: Overijssel
Berichten: 22
Standaard De naam gewijzigd, dit is ShowHide

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
Met citaat reageren
  #7  
Oud 18 maart 2010, 15:25
Senior Member
 
Geregistreerd: 6 maart 2009
Locatie: Helmond
Berichten: 187
Standaard

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
Met citaat reageren
Reageren


Discussietools
Weergave

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Aan



Ga terug   Worksheet.nl > Excel Overig > Downloads


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


Alle tijden zijn GMT +2. Het is nu 04:17.


Forumsoftware: vBulletin®, versie 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0