Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Problem mit Laufzeitfehler 9

VBA Problem mit Laufzeitfehler 9
06.11.2017 02:13:09
Marco
Hallo alle zusammen,
ich sitze seit Stunden da und grübel wieso ich den Laufzeitfehler 9 "Index außerhalb des gültigen Bereichs" erhalte. Der Code hat wunderbar funktioniert und seitdem ich die Anzahl der Stationsbezeichnungen und Materialnummern erweitert habe kommt dieser Fehler.
Zu meinem Code:
Wenn ich auf den Button im Dashboard klicke werden in Abhängigkeit von Zelle E7 und E8 die ein Datum von bis enthalten, mir die häufigsten 3 Fehler, mit Anzahl der Fehlerhäufigkeit und Fehlerbeschreibung an der jeweiligen Stationen die Links aufgeführt sind zu den jeweiligen Materialnummern aufgelistet.
Ich weiß einfach nicht mehr weiter. Hat Excel hier seine Grenzen? Ich kann es mir nicht vorstellen da ich ein anderes Toll habe das wesentlich mehr zu arbeiten hat. Ich habe schon so viel Zeit und Schweiß investiert. Ich wäre echt froh wenn mir jemand weiterhelfen könnte. In der Beispiel ist der Extrem Fall von meinem Toll abgebildet.
Beispiel Datei:
https://www.herber.de/bbs/user/117459.xlsm

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Problem mit Laufzeitfehler 9
06.11.2017 02:45:17
Mullit
Hallo,
Ich weiß einfach nicht mehr weiter. Hat Excel hier seine Grenzen? 

das wär ja noch schöner, klar wie Kloßbrühe, Deine Variable NA für den Index der 1.Dim. Deines Arrays nimmt einen größeren Wert an, als in Deiner Deklaration vorgesehen, kannst Du einfach über Debugging rausfinden, bei der Gelegenheit solltest Du gleich Deinen Programmier-Stil verbessern und tunlichst Option Explicit verwenden, sowie die Variablen auch explizit mit ihren Typen deklarieren und nicht unbest. als Variant stehenlassen...
Userbild
Userbild
Gruß, Mullit
Anzeige
AW: VBA Problem mit Laufzeitfehler 9
06.11.2017 07:19:53
Marco
Morgen Mullit danke für die Info das Excel hier doch nicht seine Grenzen hat. Aber das Problem ist der Code ist nicht von mir. Der ursprüngliche schon aber andere haben diesen Code netterweise total überarbeitet und ich habe ihn nur an einigen Stellen angepasst oder erweitert. Daher weiß ich auch nicht welche Variable ich wie verändern oder anpassen soll. Meine VBA Kenntnisse sind nämlich sehr begrenzt. Manches weiß ich und versteh ich anderes wieder nicht so.
AW: VBA Problem mit Laufzeitfehler 9
06.11.2017 07:31:54
mumpel
Hallo!
Da müsstest Du uns sagen was Du genau erreichen möchtest.
Gruß, René
AW: VBA Problem mit Laufzeitfehler 9
06.11.2017 07:47:58
Luschi
Hallo Marco,
durch Ahnungslosigkeit und Nichtbedenken aller Nebenwirkungen durch
- Erweiterungen und
- Anpassungen
hat die ESA den Erststart der 'Ariane 5' in den Sand gesetzt und 500 Mio. $ verpulvert.
Auch dort waren die Argumente:
- eigentlich war alles gut geplant
- das Vorgängermodell Ariane 4 lief ja auch sehr gut
siehe:
http://www.deutschlandfunk.de/der-absturz-der-ariane-5.676.de.html?dram:article_id=25637
Gruß von Luschi
aus klein-Paris
PS: Wer sich in die Gefilder einer Programmiersprache begibt, sollte dieses Gejammer:
- VBA Kenntnisse sind nämlich sehr begrenzt
- manches weiß ich und versteh ich anderes wieder nicht so
ganz schnell bei Seite schieben und edwas dagegen tun; auf Youtube gibt es genug Videos zum Thema Excel-Vba'
Dazu gehört auch, daß man mit folgenden Begriffen etwas anfangen kann:
- Debugging
- Haltepunmkte
- F8 , Shift+F8, Strg+F8
um eingebaute Fehler auch finden zu wollen und nicht immer nur in den Foren 'HILFE' zu rufen
Anzeige
Ergänzung
06.11.2017 09:52:26
Zwenn
  • Kommentare sollte man schon für sich selbst schreiben, um auch nach längerer Zeit möglichst direkt zu wissen, was da eigentlich steht

  • In Projekten, in denen mehrere Leute am gleichen Code arbeiten ist das Pflicht

  • Es sollte mindestens im Kopf des Moduls eine Erklärung stehen, was mit dem folgenden Quellcode eigentlich erreicht werden soll

  • Arbeiten mehrere Leute am Code, sollte drin stehen, wer was zuletzt geändert hat. Sonst wird es mit Nachfragen schwierig

  • Gegen die Nutzung globaler Variablen kämpft man leider gegen Windmühlen. Deshalb spare ich mir das an dieser Stelle ;-)

  • Anzeige
    AW: ihr habt recht
    06.11.2017 16:31:22
    Marco
    Hallo ihr beiden Luschi und Zwenn, ich gebe euch voll und ganz recht, was das rum jammern, Ahnungslosigkeit und Nichtbedenknen angeht. Aber die Erweiterungen und Anpassungen haben nicht zu dem Fehler geführt.
    Ich habe die Änderungen ausgiebig getestet und mich vorher im Internet schlau gemacht so gut es geht. Danach hat es auch den Anschein gehabt das alles funktioniert. Deswegen habe ich das Excel Tool mit realen Daten getestet und dann hat sich rausgestellt das es doch nicht geht. Ich habe auch die ursprüngliche Datei verwendet bei der ist die gleiche Fehlermeldung erschienen.
    Es liegt also nicht daran das ich irgendwas verstellt habe sondern vll eher daran das der Code noch nie mit realen Daten getestet wurde. Und ich habe versucht den Code zu verstehen und auch nachgelesen das es an den Variablen liegen muss/kann, aber ich bin nicht drauf gekommen an welchem Rad ich drehen muss damit es funktioniert. Ich habe auch die Werte in der Klammer (100) von 100 auf 600 erhöht, aber das hat nichts gebracht. Und deswegen bin ich mit meinem Anliegen hier hergekommen, weil ich nicht mehr weiter weiß.
    @Zwenn:
    Ich habe die Sachen die mir mitgeteilt wurden und ich in Erfahrung bringen konnte kommentiert. Es liegt ja nicht daran das ich nicht weiß für was der Code verwendet wird sondern daran das ich den Code nicht ganz blicke und deswegen den Fehler nicht beheben kann.
    @Luschi:
    Debugging kenn ich, aber ich verstehe nicht immer was genau damit gemeint ist. Ich habe mir auch YouTube Videos angeschaut und verschiedene Sachen nachgebaut, um es zu verstehen. Das heißt aber nicht das ich Code Teile von anderen sofort verstehe und nachvollziehen kann.
    Anzeige
    AW: VBA Problem mit Laufzeitfehler 9
    06.11.2017 19:19:12
    Marco
    Hi Mullit, ich habe deinen Rat befolgt, den Wert von 100 überall auf 300 gesetzt und NA, NM, NF wie folgt deklariert:
    Dim NA, NM, NF
    
    Jetzt funktioniert es, aber ich werde es später noch genauer testen. Habe ich die Variablen jetzt richtig deklariert oder soll ich all Global machen und gleich als double Int?
    Ist dir noch irgendwas aufgefallen was ich besser machen sollte. Könntest du mir auch vielleicht sagen warum 300 in den Klammern steht und was bringt?
    Public Anl(300) As String
    Public Mat(300) As String
    Public AnlMatFehl(300, 300, 300) As Integer
    

    Datei: https://www.herber.de/bbs/user/117478.xlsm
    Anzeige
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 08:56:21
    mumpel
    Damit sind die Variablen wieder Variant. Du solltest doch kein Variant verwenden. ;-)
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 10:02:50
    Marco
    Oh man dann versteh ich es doch nicht das würde vielleicht auch erklären warum mein VBA Code immer noch nicht richtig läuft.
    Hätte ich es so schreiben sollen?
    Option Explicit
    'Modulweite Variablen deklarieren.
    Dim NA, NM, NF As long
    

    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 10:26:03
    mumpel
    Nicht auf Modulebene deklarieren. Schon in der Prozedur.
    Und so wie Du es jetzt gemacht hast ist nur "NF" vom Typ Long, der Rest dürfte immernoch Variant sein. Ich empfehle Dir jede Variable in einer eigenen Zeile zu deklarieren.
    Anzeige
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 10:42:53
    Marco
    ah jetzt habe ich es, das ist die Prozedurebene oder z.B.
    Sub VarA()
    Dim NA As Long
    Dim NM As Long
    Dim NF As Long
    End Sub
    

    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 10:47:14
    mumpel
    Funktioniert jetzt alles wie gewünscht?
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 10:50:50
    mumpel
    Übrigens:
    Als ich vor 19 Jahren in VBA angefangen habe, habe ich auch alles/vieles falsch gemacht. Ich habe es so gemacht wie es andere Programmierer vorgemacht haben. Auch in einem "Fachbuch" war einiges nicht korrekt. Später bin ich dahintergekommen dass es so wie es viele Programmierer vormachen nicht unbedingt richtig sein muss. Also wenn Dir am Anfang vieles nicht gelingt, nur nicht aufgeben. ;)
    Anzeige
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 11:21:16
    Marco
    Ne ne Mumpel ich gebe schon nicht auf allein aus dem Grund, weil ich das unbedingt benötige. Aber es funktioniert immer noch nicht.
    Was bedeutet eigentlich diese Deklaration
         Dim FeSum(100)
    
    Ist das ein String mit einer Zeichenlänge von 100?
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 11:30:19
    mumpel
    Das ist m.W. ein Datenfeld (Array). Würde ich als Long deklarieren. Dim FeSum(100) As Long. Auch darüber findet man reichlich über Google.
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 17:00:25
    Marco
    Hi Mumpel, könntest/würdest du wenn ich meinen Code heute Abend nochmal überarbeite, teste, ausführlich kommentiere und sage was für was gebraucht wird ihn dir mal anschauen und sagen ob es passt/sinn macht. Also was die Deklarierung angeht und ich werde vielleicht noch 1 - 2 Fragen zum Code stellen.
    Anzeige
    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 11:15:06
    Marco
    ah jetzt habe ich es, das ist die Prozedurebene oder z.B.
    Sub VarA()
    Dim NA As Long
    Dim NM As Long
    Dim NF As Long
    End Sub
    

    AW: VBA Problem mit Laufzeitfehler 9
    07.11.2017 13:43:39
    Mullit
    Hallo Marco,
    hast ja schon sehr gute Tipps bekommen, vielleicht solltest Du wirklich am Anfang anfangen, ich geb Dir mal ein paar Links zu Einstiegs-Tutorials...
    http://msdn.microsoft.com/de-de/VBA/Language-Reference-VBA/articles/declaring-variables
    http://www.online-excel.de/excel/singsel_vba.php?f=4
    http://www.online-excel.de/excel/singsel_vba.php?f=152
    http://www.office-loesung.de/ftopic243735_0_0_asc.php
    ...sowie generell alle Tutorials auf den beiden Office-Seiten zu empfehlen sind...
    Gruß, Mullit
    Anzeige

    37 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige