Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
SAP Weiterbildung - so wirksam wie eine gute Tasse Espresso


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

3 Kommentare - - Office

Artikel datenschutzfreundlich teilen

🌎 Facebook 🌎 Twitter 🌎 LinkedIn


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 28.2.2021)

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


Kommentare

Anonym am 8.3.2019 um 12:52 Uhr
Habe ich dringend gesucht!


Fritz Frey am 7.4.2020 um 07:27 Uhr

Bei diesem Programm bekomme ich die Fehlermeldung (Laufzeitfehler 9
Index ausserhalb des gülitgen Bereichs
Was kann ich tun?

Private Sub Com_Verifier_Click()


Dim Compld As Range

Set Compld = Range("C10:G10").Find(What:=Range("C8").Value, LookIn:=xlValues, LookAt:=xlWohle)
If Not finden Is Nothing Then
MsgBox "Gefunden"
Else
MsgBox "nicht Gefunden"
End If

End Sub


Andreas Unkelbach Homepage am 7.4.2020 um 08:50 Uhr
Guten Morgen Fritz Frey,

leider löse ich meine Excel Probleme oftmals ohne VBA, daher kann ich dir hier nur einen Ansatz zur Fehlersuche geben.

Wie definierst du in deinen Codebeispiel xlValues, xlWohle?
Ferner ist FINDEN meiner Meinung nach kein VBA Statement, so dass hier die Variable definiert werden muss?

Ansonsten dürfte auch das Beispiel auf https://www.excel-vba-lernen.de/excel-vba/2-die-wichtigsten-befehle/12-suchfunktion/ hilfreich sein.

Viele Grüße
Andreas Unkelbach




Auch 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« oder unter »Kontakt«. 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
Andreas Unkelbach Blog
ISSN 2701-6242

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

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter XING Linkedin

Amazon Autorenwelt Librarything

Schnelleinstieg ins SAP-Controlling (CO) von Martin Munzel und Andreas Unkelbach – 2., erweiterte Auflage
Privates

Kaffeekasse 📖 Wunschliste