Andreas Unkelbach
Werbung


Dienstag, 8. Mai 2018
20:46 Uhr

VBA Fehlermeldung Index außerhalb des gültigen Bereich beim Zugriff auf Tabellenblätter in Excel 2016

Im Rahmen einer Makroarbeitsmappe werden über ein Makro "Ergebnisdateien erzeugen" für die jeweiligen Berichtsempfänger Dateien erstellt und über ein zweites Makro "Ergebnisdateien befüllen" aus einer Hochrechnung Daten gefiltert und in den entstehenden Arbeitsmappen eingefügt.

Mit den Wechsel auf Office 2016 (siehe dazu auch meinen Artikel "Arbeitsrechner neu einrichten Wechsel auf Windos 10, aktuelle Office Version sowie SAP und Excel anpassen") funktioniert zwar noch die Erstellung der Ergebnisdateien aber nicht mehr das Makro "Ergebnisdateien befüllen".

Hier kommt es zum "Laufzeitfehler 9 Index außerhalb des gültigen Bereichs" und das Makro stoppt im Debugmodus bei der Anweisung wbErgebnisdatei.Worksheets(2).Activate . Da das Makro auch noch mit unterschiedlichen Funktionen arbeitet fällt es etwas Schwer hier im VBA-Coding die einzelnen Schritte nachvollziehen zu können insbesondere, da die Lösung doch sehr spezifisch für einen Bericht ist.

Hier zahlt es sich aber aus, dass eine Dokumentation über das Makro und die Berichtsmappen erstellt worden ist und der Satz "Zuletzt wird die Ergebnisdatei formatiert und ihre Registerblätter mit den Werten aus dem Zellbereich beschriftet." brachte dann die Ursache hervor.

Manchmal kann ein Wechsel zu Office 2016 unerwartete Effekte haben. Im Standard ist in den Excel-Optionen (zu finden unter DATEI->OPTIONEN) im Register "Allgemein" im Abschnitt "Beim Erstellen neuer Arbeitsmappen" die Option "So viele Arbeitsblätter einfügen" mit 1 aktiviert.

Bei den vorherigen Excel-Versionen werden immer automatisch drei Tabellenblätter angelegt (Tabelle1, Tabelle2, Tabelle3).

Beim Erstellen eines Finanzberichtes werden automatisch über das Makro "Ergebnisdateien erzeugen" für jeden Berichtsempfänger eine eigene Datei erstellt in der über das zweites Makro die Tabellenblätter umbenannt und mit gefilterten Daten versorgt werden.  

Bei der Datenbefüllung kommt es im Makro nun aber zur oberen Fehlermeldung, da die Blätter "Tabelle2" und "Tabelle3" fehlen und hierauf Bezug genommen wird.

Neben der Möglichkeit über die Optionen wieder drei Tabellenblätter automatisch anzulegen ist eine zweite Option im Makro "Ergebnisdateien erzeugen" die Anweisung zur Anlage von entsprechenden Berichtsdateinamen um die Anweisung

ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)

vor der Anweisung

ActiveWorkbook.Close

hinzuzufügen, so dass weitere Tabellenblätter erstellt werden und im Ergebnis wieder drei Tabellenblätter vorhanden sind.

Danach können die erstellten Ergebnisdateien auch mit entsprechenden gefüllten Daten befüllt werden. Das Makro an sich ist natürlich wesentlich umfangreicher, aber zumindest anhand der Fehlermeldung war dann nachvollziehbar, woher dieser Fehler entstanden ist und weswegen es hier zu Problemen gekommen ist.

Zusammenfassend würde ich das gesamte Problem wohl unter "Kleine Änderung und große Wirkung" beschreiben. Insgesamt sind solche Änderungen aber wohl bei jeder Software, egal ob nun VBA Projekt in Excel oder eine Datenfeldänderung in SAP, ein Problem und zeigt die Notwendigkeit von Pflege und Wartung auch von bisher problemlos laufenden Programmen.
 

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionen und Bestellmöglichkeit zu finden.
Espresso Tutorial - die digitale SAP Bibliothek

Tags: Excel

Keine Kommentare - - Office

Artikel datenschutzfreundlich teilen

🌎 Facebook 🌎 Twitter 🌎 Google
Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Keine Kommentare

Kommentieren?


Beim Versenden eines Kommentars wird mir ihre IP mitgeteilt. Diese wird jedoch nicht dauerhaft gespeichert; die angegebene E-Mail wird nicht veröffentlicht: beim Versenden als "Normaler Kommentar" ist die Angabe eines Namen erforderlich, gerne kann hier auch ein Pseudonyme oder anonyme Angaben gemacht werden (siehe auch Kommentare und Beiträge in der Datenschutzerklärung).

Eine Rückmeldung ist entweder per Schnellkommentar oder (weiter unten) als normalen Kommentar möglich. Eine persönliche Rückmeldung (gerne auch Fragen zum Thema) würde mich sehr freuen.

Schnellkommentar (Kurzes Feedback, ausführliche Kommentare bitte unten als normaler Kommentar)

Name (sofern kein Name angegeben wird erscheint Anonym):



Ich nutze zum Schutz vor Spam-Kommentaren (reine Werbeeinträge) eine Wortliste, so dass diese Kommentare nicht veröffentlicht werden. Sollte ihr Kommentar nicht direkt veröffentlicht werden, kann dieses an einen entsprechenden Filter liegen.

Im Zweifel besteht auch immer die Möglichkeit eine Mail zu schreiben oder die sozialen Medien zu nutzen. Meine Kontaktdaten finden Sie auf »Über mich«. Ansonsten antworte ich tatsächlich sehr gerne auf Kommentare und freue mich auf einen spannenden Austausch.

Normaler Kommentar

Name:

E-Mail (wird nicht veröffentlicht und ist nicht erforderlich):

Homepage:

Kommentar:





* Amazon Partnerlink
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Hinauf




Werbung



Logo Andreas-Unkelbach.de
© 2004 - 2018 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de
Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter Google+

»Schnelleinstieg ins SAP Controlling (CO)« und »Berichtswesen im SAP ® ERP Controlling«
Privates

Kaffeekasse 📖 Wunschliste