20:46 Uhr
VBA Fehlermeldung Index außerhalb des gültigen Bereich beim Zugriff auf Tabellenblätter in Excel 2016
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 AnweisungActiveWorkbook.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.
Berichtswesen nicht nur mit Excel
Beruflich ist ein Schwerpunkt meiner Arbeit das Controlling und Berichtswesen. Neben Excel arbeite ich hier auch besonders gerne mit SAP. Schon bei der Konzeption eines umfangreichen Berichtes und etwaiger Dashboards ist es hier hilfreich sich im Vorfeld passende Gedanken zu machen. Hier habe ich im Buch »Berichtswesen im SAP®-Controlling« (Buchvorstellung, für 19,95 EUR bestellen) einige Punkte festgehalten.
Im Blog finden Sie aber auch regelmäßig Praxisbeispiele rund um die Themen SAP, Berichtswesen und Controlling. Viele Beispiele sind dabei mit Bezug zur Hochschule aber können, wie der Artikel "Statistische Kennzahlen für Verrechnung in SAP - Umlage und Verteilung nicht nur im Hochschulcontrolling und Hochschulberichtswesen" auch für andere Branchen genutzt und als Grundlage zum Aufbau eines eigenen Berichtswesens genutzt werden.
Ich würde mich freuen, wenn meine Bücher (Publikationen) aber auch Schulungen (Workshop & Seminare) auch für Sie interessant wären. Weitere Partnerangebote, wie auch eine Excel Schulung zu Pivot finden Sie ebenfalls unter der Rubrik Onlineshop.
ein Angebot von Espresso Tutorials
unkelbach.link/et.books/
unkelbach.link/et.reportpainter/
unkelbach.link/et.migrationscockpit/
Diesen Artikel zitieren:
Unkelbach, Andreas: »VBA Fehlermeldung Index außerhalb des gültigen Bereich beim Zugriff auf Tabellenblätter in Excel 2016« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 8.5.2018, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=932 (Abgerufen am 21.12.2024)
3 Kommentare - Permalink - Office
Artikel datenschutzfreundlich teilen
🌎 Facebook 🌎 Twitter 🌎 LinkedIn