fout 9 bij afsluiten zonder opslaan

Status
Niet open voor verdere reacties.

Doohan

Gebruiker
Lid geworden
20 mrt 2012
Berichten
374
Geachte Helper,

De onderstaande code werkt perfect op 1 klein dingetje na.
De code staat in het bestand PersInfo.xlsm dat is in de code (HuidigWb). Deze wil ik graag afsluiten zonder opslaan.
Echter zodra ik de apestrof weghaal voor de code om dit te doen krijg ik de melding:

Fout 9 tijdens uitvoering

Het subscript valt buiten het bereik.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CutCopyMode = False
    Workbooks("OVERZICHT.xlsm").Close SaveChanges:=False
    Kill "C:\Personeel Zwart\data\OVERZICHT.xlsm"
    'Workbooks(HuidigWb).Close SaveChanges:=False
End Sub

Private Sub Workbook_Open()
    Dim HuidigWb As String
    
    HuidigWb = ActiveWorkbook.Name
    
    FileCopy "F:\Projecten FAT_SAT\PersoneelData\OVERZICHT.xlsm", "C:\Personeel Zwart\data\OVERZICHT.xlsm"
    
    Workbooks.Open Filename:="C:\Personeel Zwart\data\OVERZICHT.xlsm"
    Workbooks(HuidigWb).Activate
End Sub

Bij voorbaat dank voor de hulp,

gr.Martin
 
Is in die _Close functie de waarde van HuidigWb wel bekend?
Ik verwacht van niet en daarom krijg je fout 9 (Index of range).
 
Laatst bewerkt:
Als ik de naam HuidigWb verander in de naam PersInfo.xlsm zoals dit bestand heet. Dan krijg ik dezelfde melding.
Met apestrof werkt alles behalve het sluiten zonder opslaan. Dus HuidigWb zou bekend moeten zijn denk ik.
 
Nee, HuidigWB is daar niet bekend. Maak er eens dit van:
ActiveWorkbook.Close SaveChanges:=False
 
Helaas toch nog steeds

Fout 9 tijdens uitvoering

Het subscript valt buiten het bereik.
 
Hij zal ergens de juiste context kwijt zijn.
Het document hoeft niet opgeslagen te worden. Dan je toch gewoon Excel afsluiten?
Application.Quit
 
ter aanvulling. Heel excel afsluiten zonder opslaan is geen optie omdat ik niet weet of er nog andere werkboeken open staan bij afsluiten.
Ik ben nl. niet de gebruiker.
 
Code gegeven door Edmoor werkt toch echt:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.CutCopyMode = False
    Workbooks("OVERZICHT.xlsm").Close SaveChanges:=False
    Kill "C:\Personeel Zwart\data\OVERZICHT.xlsm"
    ActiveWorkbook.Close SaveChanges:=False
End Sub

Niels
 
tja bij mij niet (Hardnekkig foutje)
krijg weer de foutmelding fout 9 valt buiten bereik
ter info het is excel 2013 dus daar kan het niet aan liggen
 
en wat gebeurt er zo?:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    'Application.CutCopyMode = False
    'Workbooks("OVERZICHT.xlsm").Close SaveChanges:=False
    'Kill "C:\Personeel Zwart\data\OVERZICHT.xlsm"
    ActiveWorkbook.Close SaveChanges:=False
End Sub

Niels
 
het laatste werkt wel. maar dat is natuurlijk niet de bedoeling.
 
Het word stiller hier.

Als er geen oplossing is, jammer dan. Ik snap dat niet alles kan met VBA. Ik vervang het stukje gewilde VBA code, voor een mondelinge instructie mbt. het gebruik van mijn excelbestandje.
Iedergeval bedankt voor het meekijken en denken.

gr.Martin
 
Heb je het zo al eens geprobeert?
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CutCopyMode = False
    Workbooks("OVERZICHT.xlsm").Close SaveChanges:=False
    Kill "C:\Personeel Zwart\data\OVERZICHT.xlsm"
    ActiveWorkbook.Close SaveChanges:=False
    On Error Goto 0
End Sub
 
toch nog iets gevonden.
heel excel crasht bij sluiten. dus werkt toch niet perfect.
 
Vervang dit: ActiveWorkbook.Close SaveChanges:=False
Eens door: ActiveWorkbook.Saved = True
 
Je blijft mijn held.

Het werkt. Ik ga het lijntje sluiten.

Thx Edmoor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan