• 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.

Excel altijd starten met dezelfde pagina wanneer Macro's uitgeschakeld zijn, hoe?!

Status
Niet open voor verdere reacties.

Maurush

Gebruiker
Lid geworden
23 feb 2011
Berichten
14
Met behulp van een ander topic ben ik gestart met het programmeren van een excel
bestand om het mogelijk te maken om een melding te geven wanneer macro's niet zijn
ingeschakeld. Alle andere pagina's blijven dan verborgen.

Op het moment dat de macro's zijn ingeschakeld en Excel opnieuw wordt opgestart en
mijn bestand opnieuw geopend. Zal de pagina met de informatie over het inschakelen van
de macro's niet meer zichtbaar zijn en de pagina die ik daadwerkelijk wil laten zien zichtbaar zijn.

Het is dan in mijn bestand de bedoeling dat er vragen worden beantwoord en met behulp
van een aantal commandbuttons kan men van de ene naar de andere sheet, om uiteindelijk
het bestand op te kunnen slaan via een commandbutton.

Het probleem is het volgende: De eerste keer dat het bestand wordt geladen werkt het
principe van het weergeven van de pagina's. Echter als het bestand opgeslagen wordt en
opnieuw geopend met de macro's uitgeschakeld, dan komt er een melding en wordt de
pagina
weergegeven die ik als laatste open had met de commandbutton waarmee ik het bestand
opgeslagen heb.

Heeft iemand enig idee hoe ik dit probleem kan oplossen? En dat er altijd wordt gestart met
de sheet met informatie over het ingschakelen van de macro's wanneer deze dus uitgeschakeld is?

Dit zijn mijn codes, deze komen uit een voorbeeld bestand welke ik uitgebreid heb met een
save button.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    With Application
        .EnableCancelKey = xlDisabled
        .ScreenUpdating = False

        Call HideSheets

        .ScreenUpdating = True
        .EnableCancelKey = xlInterrupt
    End With

    ThisWorkbook.Save
    ThisWorkbook.Saved = True

End Sub

Private Sub Workbook_Open()

    With Application
        .EnableCancelKey = xlDisabled
        .ScreenUpdating = False

        Call UnhideSheets

        .ScreenUpdating = True
        .EnableCancelKey = xlInterrupt
    End With

End Sub

Private Sub HideSheets()

Dim Sheet As Object

    With Sheets("EnableMacro")
        .Visible = xlSheetVisible
            For Each Sheet In Sheets
                If Not Sheet.Name = "EnableMacro" Then
                    Sheet.Visible = xlSheetVeryHidden
                End If
            Next
        Set Sheet = Nothing
    End With

End Sub

Private Sub UnhideSheets()

    Sheets("Home").Visible = xlSheetVisible
    Sheets("EnableMacro").Visible = xlSheetVeryHidden

End Sub

Het lukt mij niet om het bestand up te loaden :confused:

Edit: http://www.megaupload.com/?d=TOFC9UG6
 
Laatst bewerkt:
Kan je het bestand niet Rarren of Zippen?

Je kan anders eens proberen met het startblad te activeren in uw Before_Close event.

Cobbe
 
Laatst bewerkt:
Kan je het bestand niet Rarren of Zippen?

Je kan anders eens proberen met het startblad te activeren in uw Before_Close event.

Cobbe

Ik heb mijn post aangepast. Het document dat ik zelf heb is een stuk uitgebreider, maar ik denk dat
als het probleem in dit upgeloade bestand opgelost kan worden het ook wel lukt in het bestand waar ik nu mee werk.

Het principe is precies hetzelfde, heb bij sommige punten wat meer voorwaarden staan,
dit upgeloade bestand heeft hetzelfde probleem.
 
In princiepe is het makkelijk.
Je maakt een extra blad. Met een getekende knop.
Daar hang je deze code aan:
Code:
Sub Activatie()
Sheets("Blad2").Visible = True
Sheets("Blad3").Visible = True
......
End Sub
Je verbergt dan alle bladen, behalve Blad1, xlVeryHidden.
Sla op en als je nu opent zonder macro's te activeren kan je niet bij de overige bladen.
Je zou dan ook de VBA-code moeten afschermen anders kan je er natuurlijk zo bij, maar dan nog werkt het bestand niet.

Succes, Cobbe
 
In princiepe is het makkelijk.
Je maakt een extra blad. Met een getekende knop.
Daar hang je deze code aan:
Code:
Sub Activatie()
Sheets("Blad2").Visible = True
Sheets("Blad3").Visible = True
......
End Sub
Je verbergt dan alle bladen, behalve Blad1, xlVeryHidden.
Sla op en als je nu opent zonder macro's te activeren kan je niet bij de overige bladen.
Je zou dan ook de VBA-code moeten afschermen anders kan je er natuurlijk zo bij, maar dan nog werkt het bestand niet.

Succes, Cobbe

Inderdaad nu je het zo zegt was dat makkelijk geweest. Heb het niet getest zoals jij verteld.
Heb het nu anders opgelost na 6 uur klooien.

Ik heb gekeken waar de fout zat, want op het moment dat ik het bestand afsloot met de kruis
bovenin excel startte de worksheet wel goed. Op het moment dat ik het bestand zou opslaan
en hij automatisch afsloot, laadde hij de sub hidesheets niet. Vrij apart omdat je verwacht
dat hij naar de code kijkt bij Sub workbook_beforeclose

Wat ik nu gedaan heb is in de sheet waar ik de commandbutton met de functie save heb, ook de code
call hidesheets ingeplakt, op diezelfde pagina ook de Sub hidesheets. Dit had ook in een module
geplaatst kunnen worden, maar dacht ik kopieer het even snel.

Tevens heb ik dit nog een keer geplakt in de Sub BeforeSave, kan misschien dubbelop zijn maar
het werkt in ieder geval nu wel, ga er ook niet meer aanzitten voordat er weer wat mis gaat.

In ieder geval bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan