Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA für Profis

Fehler unterscheiden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Verschiedene Arten von Fehlern machen jedem Programmierer das Leben schwer. Jeweils passende Techniken vermeiden die häufigsten Fehler und helfen Ihnen, besseren Code zu schreiben.

Transkript

Wenn es um Fehler in Excel 2016 VBA geht, dann geht es vor allem erstmal darum, diese Fehler zu unterscheiden. Es gibt nämlich verschiedene Fehlertypen. Es gibt Syntaxfehler, die sind sehr schnell zu finden, weil es direkt eine Meldung gibt, im Gegensatz zu logischen Fehlern, die genau deswegen nicht zu finden sind, weil sie keine Meldung verursachen. Und schließlich die Laufzeitfehler, das sind die bekanntesten, weil die für die Benutzer eben am häufigsten zu sehen sind. Zur Entwicklungszeit war alles in Ordnung, zur Laufzeit sieht es leider anders aus. Fangen wir an mit den Syntaxfehlern, die werden nämlich direkt gemeldet, z. B. beim Verlassen der Zeile. Stellen Sie sich Code vor wie diesen: "If" irgendeine Bedingung, in diesem Fall die Anzahl der Dokumente "99", dann wird irgendwas ausgeführt, und "End if". Wenn Sie diese Zeile verlassen, meldet sich der VBA-Editor sofort und sagt, da stimmt was nicht. Hinter einem "If" und einer Bedingung muss entweder ein "Then" oder ein "GoTo" kommen. Dann schreiben Sie das dahin und alles ist gut. Wenn das nicht mit Verlassen der Zeile festgestellt wird, dann spätestens beim Kompilieren, denn in so einem Code wie hier ist alles korrekt, was da steht. "Sub", irgendein Name, irgendwelche Code-Stückchen, "Sub", der nächste Name, ein anderer Code und wieder ein "End Sub". Und jede Zeile ist richtig bis auf die eine Zeile, die fehlt. Beim Kompilieren stellt der Compiler nämlich jetzt fest, da hätte ein "End Sub" hingehört. Auch deswegen rücke ich mir so was immer ein, damit ich sofort lesen kann, hier "Sub", "End Sub", "Sub", "End Sub", alles andere ist dann uninteressant. Und dann sollte es einem optisch schon direkt auffallen. Also, von daher ist an der Stelle relativ schnell Heilung zu erwarten, weil nämlich der Compiler sofort eine Fehlermeldung macht und damit weiß man, was zu tun ist. Die Syntaxfehler beim Verlassen der Zeile oder beim Kompilieren sind daher unkritisch und lassen sich entsprechend schnell heilen. Viel problematischer sind logische Fehler. Die sind nämlich syntaktisch in Ordnung, haben keine Fehlermeldung und sind trotzdem falsch. Da können Sie lange drüber nachdenken, wenn es Ihnen denn überhaupt auffällt, und werden trotzdem nicht auf Anhieb sehen, dass da ein Fehler drin ist. Etwa im Code wie diesem, der ist syntaktisch völlig korrekt, eine Integer-Zahl hier in dieser Variablen wird in einer "Select Case"-Anweisung untersucht. Nehmen wir bspw. die Zahl 99. Ist die kleiner 10? Nein. Steht Sie in einer Liste? Nein. Ist sie größer 5? Ja. Dann wird dieser Code hier ausgeführt. Dann nehmen wir die Zahl 7. Ist sie kleiner 10? Ja. Dieser Code wird hier ausgeführt und dann endet VBA typisch das "Select Case". Es gibt Programmiersprachen, wo mehrere Cases hintereinander ausgeführt werden können. Da muss man ausdrücklich z. B. ein Break dazwischen schreiben, aber in VBA endet der erste Treffer sozusagen und verlässt dann das gesamte "Select Case"-Statement. Nehmen wir jetzt die Zahl 5. Die Zahl 5 ist definitiv kleiner als 10. Es wird also dieser Code hier ausgeführt. Ich sehe aber hier, dass es einen "Case 5" gibt. Es ist offenbar der Wunsch, dass die 5 hier ausgeführt werden soll. Das passiert nie, nach dem "<10" endet das "Select Case". Oder meinetwegen die Zahl 6, auch die ist kleiner 10, nur dieser Code wird hier ausgeführt. Sie wäre auch größer 5, aber bis zu diesem Code schafft es die Zahl 6 nie. Deswegen ist dieser Code logisch falsch. Da kann ich sicher sein, mindestens mit der 5, dass die nicht da vorne schon hätte verarbeitet werden sollen, wenn sie so hier explizit genannt wird. Da gibt es eine ganz einfache Lösung, nämlich vermeiden Sie logische Fehler. Gut, das sagt sich jetzt einfacher als es getan ist. Es gibt im Grunde nur eine Lösung, um das hinzukriegen, indem Sie nämlich das sog. Pair Programming machen. Dabei sitzen zwei Programmierer, oder Programmiererinnen natürlich auch, nebeneinander an demselben Computer. Einer von beiden arbeitet, der sog. Pilot, und der andere guckt zu, der Co-Pilot. Und das wechselt alle Viertelstunde. Und weil beim Programmieren erstens ein bisschen erläutert wird, was da gerade passiert, und zweitens, der zweite immer mitguckt und mitdenkt, sind solche logischen Fehler kaum noch drin. Es gibt sofort einen, der das prüft, der das vielleicht auch anders besser lösen würde. Es wird also von den beiden immer die bestmögliche Lösung gemacht. Das gilt erstmal als teuer, weil natürlich zwei Programmierer beschäftigt werden, aber langfristig haben Sie natürlich sehr viel Fehlervermeidung, und gerade diese logischen Fehler sind sehr lästig und sehr zeitaufwendig zu beseitigen. Und letzten Endes kriegen Sie auch besseren Code, weil für jede Zeile sofort einer mitüberlegt, würde ich das vielleicht anders machen. Wichtig ist, dass laufend gewechselt wird, dass nicht einer programmiert und der andere immer nur zuguckt, sondern, dass auch beide abwechselnd was tun. Einen anderen Schutz gegen logische Fehler gibt es eigentlich nicht, als dass ein zweiter Kopf darüber nachdenkt und das durchdenkt. Dann kommen wir zu den Laufzeitfehlern. Die haben schon mal die gute Nachricht, die werden nämlich gemeldet, und zwar dann, das ist die schlechte Nachricht, wenn der Code ausgeführt wird. Das bedeutet, nicht unbedingt zur Entwicklungszeit, sondern auch viel viel später. Während der Entwicklung war bspw. alles in Ordnung. Sie schrieben eine Prozedur wie diese. Wenn das aktuelle Diagramm bspw. diesen Namen trägt, dann passiert irgendwas und fertig. Läuft wunderbar durch, aber der Benutzer macht irgendwas anders und dann kommt diese Fehlermeldung. Die hilft dem schon mal gar nicht. Die Nummer ist international gleich, der Text wechselt landessprachlich, d. h., wenn er Ihnen einen Screenshot schickt, kann es Ihnen sogar passieren, dass das hier auf Russisch steht oder auf sonst einer Sprache, die Sie nicht verstehen, dann haben Sie wenigstens noch die Nummer und müssen dann versuchen rauszukriegen, was passiert ist. In diesem Fall kann ich Ihnen einen Tipp geben. Möglicherweise gibt es gar keinen Active Chart, also sprich, es ist kein Diagramm markiert. Wenn das die Vorbedingung für den Code war und der das nicht überprüft, fällt der dann natürlich auf die Nase. Das ist aber immer erst später rauszukriegen, und zwar nicht bei jedem Test, wenn Sie zufällig, weil Sie wissen, was Sie tun, immer dieselben Sachen in derselben Reihenfolge machen, dann ist da alles in Ordnung, bis es mal jemand anders macht oder bis es mal eine andere Umgebung gibt. Bspw. hier, das ist der Zugriff auf eine Access-Datenbank. Da haben Sie eine Variable deklariert und nehmen dann ganz korrekt den Befehl "Open Database" und geben hier den Pfad an. Klappt wunderbar bei Ihnen, nur nicht woanders, weil nämlich dort entweder das Laufwerk gar nicht existiert oder die Datenbank nicht unter diesem Dateinamen. D. h. es gibt eine Menge zu beaufsichtigen, gerade bei Laufzeitfehlern, sowohl in dem Verhalten, was der Benutzer macht, oder in der Umgebung. Häufig sind es Pfad- und Dateinamen, die an dieser Stelle nicht funktionieren. Und mit diesen verschiedenen Arten Fehlern möchte ich mich jetzt beschäftigen.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!