GoTo VBA-Befehl

Mittels dem VBA-Befehl "GoTo" kann in einen beliebigen Bereich des Codes gesprungen werden. Dieser Beitrag zeigt ein Beispiel auf, wie dies funktioniert.

An einer Stelle im Code erfolgt der Befehl "GoTo Zielbereich" und an einem beliebigen anderen Ort steht "Zielbereich:" gefolgt von den entsprechend auszuführenden Befehlen:

Sub MeinGoToMakro()
...
GoTo Zielbereich
...
Zielbereich:
Hier auszuführender Code
...
End Sub

Schauen wir uns ein konkretes Beispiel an: Angenommen das Programm soll zwei mögliche Prozeduren vornehmen - entweder die Befehle in Sektion1 oder diejenigen in Sektion2. Je nach dem, welcher Zelleninhalt in "B1" ist, soll Sektion1 oder Sektion2 ausgeführt werden. In diesem Fall wird das Programm einfach die entsprechende Sektion mit ".Select" auswählen. Meine Exceltabelle sieht wie folgt aus:

GoToSheet

Und der vollständige Code in VBA dazu lautet:

Sub GoToMacro()

If Range("B1") = 1 Then
Range("A5").Select
GoTo Ende
Else: GoTo Sektion2
End If

Sektion2:
Range("A9").Select

Ende:
End Sub

Es gibt zwei Aspekte, die ich genauer hervorheben möchte: Der Doppelpunkt hinter der jeweiligen Sektion ("Sektion2:" und "Ende:") ist zwingend notwendig. Zudem ist der Sprung zu eben diesem "Ende:" in unserem obigen Programm wichtig, damit die Befehle in Sektion2 im Falle von B1 = 1 gar nicht erst ausgeführt werden. Da ganze Teile im Code je nach Szenario übersprungen werden, wird die Ausführungszeit des Makros im Generellen beschleunigt.

Statusupdate August 2016

Excelblog.ch ist nun bereits mehr als 1 Jahr live. Darüber habe ich im Juni berichtet und einige Statistiken und Zahlen offen gelegt. Vor Kurzem wurde eine weitere Unterseite auf dem Blog eröffnet: "English Users". Es gibt immer wieder Besucher "jenseits" des deutschen Sprachraums, welche unter dieser neuen Seite einige Infos finden. Nach wie vor werden meine Artikel auf Deutsch veröffentlicht – abgesehen von Makro-/VBA-Code, welcher ohnehin in englischer Sprache ist. Ich kann mir durchaus vorstellen, die publizierten Inhalte auch unter Verwendung von englischen MS Excel/Office-Versionen im Bereich "English Users" hochzuladen. Dies allerdings zu einem späteren Zeitpunkt. Schauen wir in diesem Statusupdate nicht ganz so weit nach vorne: Was kannst Du als Leserin oder Leser in nächster Zeit erwarten?

Excel-Kurse & -Beratung

Wie die Unterseite "English Users" wird gegen Anfang September ein weiterer Bereich auf dem Blog zugänglich sein: Excel-Kurse & -Beratung. Ich hatte in einer früheren Tätigkeit bereits Excel-Kurse für beinahe 100 Personen geleitet - von Anfängerkursen bis hin zu VBA-Einführung. Einen eigenen Schulungsraum werde ich dazu vorerst nicht einrichten, eine Zusammenarbeit mit Firmen mit einer solchen Infrastruktur oder grösseren Sitzungszimmern sind deshalb ein logischer Startpunkt dafür. Desweiteren werden sämtliche Infos bezüglich Excel- und Prozessberatung sowie Projektmanagement unter dieser neuen Unterseite zu finden sein. Bei Fragen kannst Du mich gerne jederzeit kontaktieren!

MS Office 2016

Die neue Microsoft Office 2016 Palette ist erhältlich und wird vermehrt eingeführt. Geschäftsbetriebe sind hier verständlicherweise eher vorsichtig, da eine Umstellung stets mit Unsicherheit verbunden ist. Funktioniert tatsächlich alles wie bis anhin? Wie steht es um die "Abwärtskompatibilität" von neuen Funktionen? Zudem kann nicht jede Person/jeder Mitarbeiter ein "neues" Programm intuitiv erlernen, es besteht – kurzfristig zumindest – ein Effizienzverlust. Künftig werden hier vermehrt neue Aspekte und Möglichkeiten sowie Herausforderungen und "Kniffs" von Excel 2016 präsentiert werden. Eine tolle Neuerungen: Es gibt sechs neue Diagrammtypen – beispielsweise das Wasserfall-/Brücken-Diagramm, welches die in diesem Beitrag erwähnte Vorgehensweise erübrigt. Neue Möglichkeiten mit PivotTabellen und dem gesamten PowerView werden ebenfalls Bestandteile sein, welche in Zukunft abgedeckt werden.

Video-Beiträge

Eine Anleitung in Textform zu lesen, das ist eine Art, wie man sich neues Wissen aneignen kann. Ohne grafische Unterstützung fällt dies jedoch vielen Leuten schwer – insbesondere, wenn man mit der Materie nicht sehr vertraut ist. Um das Spektrum auf Excelblog.ch zu erweitern, habe ich mich entsprechend vorbereitet, um Euch schon bald zu den einzelnen Beiträgen auch Videos zur Verfügung zu stellen: Open Broadcaster Software (OBS) ist installiert, es kann schon bald losgehen!

Ich hoffe, Du verbringst weiterhin einen tollen Sommer und ich freue mich auf einen spannenden Herbst. Natürlich interessiert mich Euer Feedback - Du kannst jederzeit einen Kommentar bei meinen Beiträgen hinterlassen oder mich via Kontakt persönlich erreichen.

Zellen mit Formeln schützen

Nehmen wir an, Du möchtest ein Spesenformular generieren. Unbedingt vorhanden sein muss eine Kilometerabrechnung für Fahrten mit einem Privatwagen sowie unterschiedliche Mehrwertsteuersätze. Im besten Fall werden solche Berechnungen direkt im Formular hinterlegt, ohne dass der Benutzer viel überlegen und selbst kalkulieren muss - somit reduzierst Du potentielle Fehler im Vornherein. Ob man dadurch gewisse Checks vernachlässigt und etwas übersieht, das ist ein ganz anderes Thema. Wie dem auch sei: Da an allen Formeln nichts mehr geändert werden soll, wollen wir diese Zellen spezifisch schützen. Dazu gehst Du wie folgt vor:

  • Markiere zuerst Dein gesamtes Tabellenblatt ("CTRL + A" oder im linken oberen Rand neben Spalte A und Zeile 1) und gehe mittels Rechtsklick in die Optionen "Zellen formatieren". Unter dem Register "Schutz" kannst Du zunächst für sämtliche Zellen das "Gesperrt" entfernen:

ZellenFormatierenGesperrt

  • Als Nächstes stelle bitte sicher, dass nach wie vor alle Zellen markiert sind. Gehe dann mittels "CTRL + G" in den "Gehe zu ..."-Dialog und dort auf "Inhalte..." (alternativ kannst Du mit der Maus via "Start" → "Suchen und Auswählen" → "Inhalte auswählen" dorthin gelangen). Wähle die Option "Formeln" aus und klicke auf OK. Nun sind in Deinem gesamten Tabellenblatt alle Zellen mit Formeln selektiert worden.

InhalteFormeln

  • Gehe wie in Schritt 1 erneut in die Zellenformatierung (das geht übrigens auch mit der Tastenkombination "CTRL + 1") und setze den Haken bei "Gesperrt" für diese Zellen im Register "Schutz" erneut.
  • Daraufhin aktivierest Du den Blattschutz im Menüband unter "Überprüfen" → "Blattschutz aktivieren" und entfernst den Haken bei "Gesperrte Zellen auswählen":

BlattSchutzGesperrteZellen

Nach diesen wenigen Schritten können generell die Zellen mit Formeln nicht mehr bearbeitet und selektiert werden.