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

VBA: Fout 9 tijdens uitvoering; het subscript valt buiten het bereik

Status
Niet open voor verdere reacties.

ghenriet

Gebruiker
Lid geworden
6 jun 2010
Berichten
11
Goedenavond,

Ik loop nu al een paar uurtjes te klooien met onderstaand VBA script. Met dit script krijg ik telkens de foutmelding "VBA: Fout 9 tijdens uitvoering; het subscript valt buiten het bereik". Het script staat in ThisWorkbook.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

' Dagrap verwijderen
    Application.DisplayAlerts = False
    Sheets("dagrap").Select
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True

' Sheets beveiligen
ActiveSheet.Protect ("EstherNiels")
Sheets("CMDB Tel").Select
ActiveSheet.Protect ("EstherNiels")
Sheets("Historie Tel").Select
ActiveSheet.Protect ("EstherNiels")
Sheets("CMDB SIM").Select
ActiveSheet.Protect ("EstherNiels")
Sheets("Historie SIM").Select
ActiveSheet.Protect ("EstherNiels")
Sheets("Formulier").Select
ActiveSheet.Protect ("EstherNiels")
Sheets("Contract").Select
ActiveSheet.Protect ("EstherNiels")

Sheets("Start").Select

' Sluiten en opslaan
    ActiveWorkbook.Close SaveChanges:=True

End Sub

Wanneer ik de code van "Sluiten en opslaan" weghaal, dan werkt het script wel. Wanneer ik de code van "Sluiten en opslaan" laat staan, maar de code van "dagrap verwijderen" weghaal, dan werkt het ook.

Ik snap er niets meer van. :confused: :evil:

Wie kan (en wil :D) mij helpen?
 
Je sluit het werkboek in het BeforeClose event waardoor deze nogmaals getriggerd wordt en dat geeft problemen omdat hij dan nogmaals probeert het blad dagrap te verwijderen die er op dat moment al niet meer is. Probeer het eens zo:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    ' Dagrap verwijderen
    Application.DisplayAlerts = False
    Sheets("dagrap").Delete
    Application.DisplayAlerts = True

    ' Sheets beveiligen
    ActiveSheet.Protect ("EstherNiels")
    Sheets("CMDB Tel").Protect ("EstherNiels")
    Sheets("Historie Tel").Protect ("EstherNiels")
    Sheets("CMDB SIM").Protect ("EstherNiels")
    Sheets("Historie SIM").Protect ("EstherNiels")
    Sheets("Formulier").Protect ("EstherNiels")
    Sheets("Contract").Protect ("EstherNiels")
    
    Sheets("Start").Select
    
    ' Sluiten en opslaan
    If Me.Saved = False Then Me.Save

End Sub
 
Laatst bewerkt:
Super!!!! Thanks!!!! Het werk!!!

Nu je het zegt, is het inderdaad ook wel erg logisch dat hierdoor het probleem ontstaat.

Nogmaals bedankt!!! :thumb:
 
Graag gedaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan