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

Opgelost Subscript buiten bereik na installatie Windows 11

Dit topic is als opgelost gemarkeerd

NiekvanMeer

Gebruiker
Lid geworden
30 sep 2013
Berichten
123
Beste,

Al verscheidene jaren gebruiken wij op het werk een rooster wat middels VBA bepaalde zaken vergemakkelijkt. Dit heeft tot voor kort altijd prima gewerkt.
Sinds een paar weken terug zijn ze hier gestart met het vernieuwen van de computers, waar nu ook de nieuwste Windows versie op geïnstalleerd is. We gebruiken nu Windows 11 Enterprise.

Helaas geeft dit rooster nu een foutmelding bij het openen.
Fout 9; het subscript valt buiten het bereik.
(Op de computers waar nog Windows 10 op staat, komt deze foutmelding niet naar voren. Ook is de lay-out van het rooster op de computers met Windows 11 ietsje anders.)

Mijn kennis omtrent VBA laat helaas nogal te wensen over.
Ik heb al vrij intensief gezocht op het internet, maar vooralsnog heeft dit geen soelaas geboden.
Daarom zou ik graag een beroep doen op jullie expertise.
Hopelijk weet iemand wat er hier mis gaat en hoe ik dit op zou kunnen lossen.
(Bijgevoegd het rooster waarin persoonsnamen verwijderd zijn)

Vast bedankt voor de genomen moeite!

Groeten,
Niek
 

Bijlagen

  • Kopie van Ploegenrooster 2024.xlsm
    409,7 KB · Weergaven: 13
Opent hier in Windows 11 zonder probleem.

Open het document en klik de fout weg.
Ga dan in VBA naar de code in ThisWorkbook en loop met F8 de code van Workbook_Open() door.
Lata dan weten op welke regel het fout gaat.
 
Oke, bij mij is bijvoorbeeld regel 5 (waarin de dagen benoemd staan) op elk werkblad wat ontwricht, waardoor er ### komt te staan ipv de dag.

Verder komt de foutmelding in bij deze VBA regel;
Sheets(MonthName(Month(Now))).Select
 
Gaat bij mij allemaal prima.
De dagen zien er dus goed uit en de fout krijg ik niet.

Wat geeft dit terug in het Direct venster?
Code:
?Sheets(MonthName(Month(Now))).Name
 
Apart. Wederom de foutmelding Fout 9; het subscript valt buiten het bereik.
Deze fout komt overigens op alle vernieuwde computers naar voren.
 
En het antwoord op mijn vraag in #4?
 
Dat is leeg...

Edit: excuus. Ik begreep het niet.
Daar geeft het 'compileerfout' Blok if zonder end if
 
Dan is dat de oorzaak van je probleem.
Dat werkblad kan hij niet vinden.
 
Dan kan niet, het is geen If functie.
Je moet die regel, dus inclusief dat vraagteken, in het direct venster plakken en dan op Enter drukken.
 
Verwijder alle code uit de macromoduel van thisworkbook.
Vervang die door:

CSS:
Private Sub Workbook_Open()
  Application.Goto Sheets(Month(Date)).Cells(5, Day(Date) + 2)
End Sub

- schakel alle vormen van 'beveiliging' uit
- verwijder alle samengevoegde cellen.
- geef het werkblad 'januari volgend jaar de codename Blad13
- verwijder alle code uit de macromodules van de werkbladen.
- vewijder het overbodige Userform
 
Laatst bewerkt:
@snb; van waar tot waar in de code doel je precies? Ik heb meerdere dingen geprobeerd, maar ik krijg telkens foutmeldingen.

@edmoor; dat is wederom Fout 9; het subscript valt buiten het bereik.
 
Dan gaat die code in je document dus fout.
Vreemd, hier werkt het prima in het document dat je plaatste.
 
Ik ondervind op de Windows 10 computers ook geen enkel issue. Op de Windows 11 computers daarentegen.. Ik neem aan dat je ook op 11 draait
 
Ik heb ook WIndows 11 inderdaad.
Maak er eens dit van:
Code:
Sheets(Format(Date, "mmmm")).Select
 
Helaas edmoor. Ook hierbij eenzelfde foutmelding.
De versies zijn overigens beide Office 365, al ziet Excel in Windows 11 er wat frisser uit.
(Ik moet helaas nu gaan, dus ik kan nu helaas pas dinsdag reageren. In elk geval vast bedankt voor het meedenken!) Een prettige avond :)
 
Welke naam zie je als je dit
Code:
? MonthName(Month(Now))
in het venster Direct intoetst?
Een Engelse maandnaam?
 
Het is weer een prachtig voorbeeld hoe je een ploegenrooster niet moet maken:
- gebruik 1 werkblad voor de gegevens
- gebruik 1 werkblad voor de grafische representatie.

Check ook eens
CSS:
Sub M_snb()
   MsgBox Blad1.Cells.FormatConditions.Count
End Sub
en huiver (want dat voor 13 werkbladen......)
 

Bijlagen

  • __Ploegenrooster 2024.xlsb
    317,7 KB · Weergaven: 3
Laatst bewerkt:
Ja dat klopt 'AHulpje'.
En inderdaad snb; het lijkt er op dat het opnieuw bouwen van dit ploegenrooster de betere oplossing is
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan