Excel 2013 VBA Grundkurs

Worksheets

Testen Sie unsere 1985 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Tabellen sind in der Worksheets-Auflistung enthalten und lassen sich darüber programmieren. Wenn darin Daten enthalten sind, die Sie ausschließlich für VBA benötigen, können Sie diese besonders gut verstecken.

Transkript

Die Auflistung der Worksheets, der Tabellen oder einer einzelnen Tabelle ist das nächste Objekt, mit dem ich mich beschäftigen möchte. Da fragen wir erstmal einfach wieder, wie viele Tabellen es eigentlich gibt. Also, Sub AnzahlTabellen. Das ist ganz banal, Debug.Print und dann innerhalb... Ich schreibe mal ThisWorkbook, ActiveWorkbook ist es zufällig auch, Punkt. Und dann die Worksheets-Auflistung und Count. Das Ganze gespeichert und F5 sehen Sie dann, es gibt im Moment acht Tabellen. Das lässt sich hier oben direkt überprüfen. Jede Tabelle bringt ein eigenes Tabellen-Modul mit, nur deswegen stehen die überhaupt hier. Sie sehen schon einige sind anders benannt. Hier steht der Name, den der Benutzer und Benutzerin sehen. Hier ist so ein interner, der Code-Name. Also, es gibt insgesamt acht Tabellen. Dann gucken wir doch mal, wie die erste Tabelle heißt. Also, Sub NameDerErstenTabelle. Die ist auch relativ banal, wieder mit Debug.Print, ThisWorkbook, oder wir nehmen ruhig mal allgemeiner, ActiveWorkbook.Worksheets. Und es ist eine Eins-basierte Auflistung und deswegen kann ich die Eins schreiben. Und jetzt würde ich gerne .Name schreiben. Ich werde das auch tun, aber ich kriege hier keinen Tipp. Also, das ist noch nicht perfekt, aber funktionsfähig. Mit F5 steht da die erste Tabelle: heißt "Tabelle1". Klappt, sieht aber nicht gut aus. Ich schreibe direkt eine neue Prozedur Sub NameDerErstenTabelleBesser. Denn besser wird es, wenn Sie sich eine entsprechende Objekt-Variable, in diesem Fall eine Worksheet-Variable, deklarieren. Also, wksDiese nenne ich die mal, As Worksheet. Und schreibe dann Sub wksDiese gleich. Und dann kann ich das von da oben zitieren, ActiveWorkbook, da die Arbeitsmappe, in der ich mich befinde. Worksheets und von allen - dasjenige mit der Nummer 1, Klammer zu. Und jetzt kommt die entscheidende Zeile wieder, wo ich drauf zugreifen will, nämlich wksDiese. Und weil dieses Objekt weiß von sich, das es ein Worksheet-Objekt ist. Das wusste es da oben nicht, das ist nämlich ein sehr gar allgemein gehaltenes Sheets-Objekt. Jetzt kann es mir auch sagen, was es alles an Eigenschaften und Methoden hat, z.B. die Name-Eigenschaft. Achtung: Name im Singular, nicht die Names-Auflistung, die ist ja ganz was anderes. Das liefert jetzt den gleichen Begriff wie eben auch, aber besser programmiert sozusagen. Und das kann ich direkt kopieren. Es gibt zu dem Worksheet noch einen anderen Namen... Da muss ich natürlich hier entsprechend umbenennen. ...nämlich den so genannten CodeName. Das ist eine Eigenschaft, die hier drinsteckt, eine Eigenschaft der Tabelle, und zwar dieser Name. Der kommt also harmlos her, der ist ungemein praktisch. Also, wenn ich von der ersten Tabelle den CodeName ausgebe, dann steht da scheinbar das Gleiche, nämlich auch "Tabelle1". Diese "Tabelle1", ich kann ja Ihnen die einmal kurz zeigen. Das ist hier, "Tabelle1" ist diejenige, die das Logo enthält, wo auch die meisten Versuche drin gelaufen sind. Die möchte ich für mich kennzeichnen. Und das bedeutet: egal wie der Benutzer die benennt. Der könnte diesen Namen umbenennen oder noch leichter: an welche Stelle er die schiebt, das würde mich hier reinreißen. Ich möchte sie immer sicher im Zugriff haben. Deswegen markiere ich sie hier und werde das, was eigentlich CodeName heißen müsste, hier umbenennen. Ich nenne die mal einfach tblLogo. Dann sehen Sie, die steht da jetzt auch alphabetisch sortiert in einer Reihenfolge. Es ist immer noch die "Tabelle1", aber sie hat jetzt einen CodeName. Wenn ich das Gleiche also nochmal ablaufen lasse mit F5, steht da jetzt: der CodeName hat sich geändert. Und das macht diesen ganzen Aufwand plötzlich viel viel kürzer. Also, das kopiere ich mir mal schnell runter. Da gibt es nämlich ein NochBesser. Es ist wohl nicht wirklich die erste Tabelle, sondern ich schreibe mal deutlicher dazu DerLogoTabelle. Die kann ich nämlich direkt so ansprechen, mit ihrem CodeName und dann weiß die schon, was die alles hat. Und z.B. einen normalen Name, aber den will ich natürlich mit Debug.Print ausdrucken. Das was hier, als es zufällig die erste Tabelle war, in drei Zeilen - besser, aber mühsamer programmiert wurde. Hier in einer Zeile, aber riskant, vielleicht ist es nämlich gar nicht mehr die erste Tabelle. Ist hier perfekt, es ist garantiert. Wir können das einmal laufen lassen. Die Tabelle, die ich intern von meiner Programmierung aus als tblLogo benannt habe, und zwar mit ihrem CodeName. Für den Benutzer heißt die immer noch "Tabelle1" und ich kann sie mal hier umbenennen. Da nenne ich die mal "Hier steht das Logo". Und wenn Sie dann mit Alt +F11 wieder zurückwechseln, sehen Sie, das hat sich hier geändert. Und ich kann sie sogar verschieben, dann werden die hier alle scheitern, das ist stabil. Also, wenn Sie mit fremden Tabellen arbeiten, sprich: aus anderen Arbeitsmappen, müssen Sie wahrscheinlich auf die Worksheets-Auflistung zurückgreifen und entweder den Namen der Tabelle oder ihre Position nennen. Da ist ein gewisses Risiko. Oder wenn Sie mit eigenen Tabellen arbeiten, sprich: in dieser Datei, ThisWorkbook, dann können Sie an ihrem Code-Namen eindeutig benennen. Und dann auch sicher darauf zugreifen, egal ob der Benutzer damit was macht, außer natürlich, wenn er es löscht. Aber diese Tabellen, aus denen Sie z.B. für Ihre Programmierung Daten holen. Das gibt es ja öfter mal so Nachschlage-Tabellen, die sollten Sie sowieso verstecken. Und das ist das Letzte, was ich an dieser Stelle noch empfehlen kann: eine Tabelle zu verstecken. Ich mache das erstmal, wie man es normalerweise machen würde. Also, mit Alt + F11 rüber, hier die Tabelle "Test" und dann würde ich jetzt hier Rechtsklick auf Ausblenden, Rechtsklick auf dem Reiter hier, auf Ausblenden. Dann ist die weg. Nur jeder anderer Benutzer kann leider auch hingehen und mit Rechtsklick auf Einblenden, findet die in der Liste und sagt: "Ok, da ist sie wieder". Wenn ich da Daten für mich im Programm ablege, auf die ich ungestört zugreifen will, ist es leider nicht so klasse. Wenn Sie sich aber das entsprechende Stück mal angucken, Test, heißt die hier... Tabelle (Test) ist markiert und sich die Eigenschaften angucken, gibt es... Da muss ich ein bisschen mehr Platz schaffen. ...hier eine Eigenschaft, die heißt Visible. Die habe ich so eben umgeschaltet zwischen 1 - xlSheetVisible und xlSheetHidden - 0. Und nur hier oder per Programmierung, das ginge auch, gibt es einen VeryHidden. Sie können das ja einstellen, das funktioniert. Ich möchte es Ihnen nur der Vollständigkeit halber im Programm zeigen. Sub TestRichtigVerstecken. Und das bedeutet nämlich, dass ich die Tabelle, die "Test" heißt... Das ist im Moment, die spreche ich jetzt mal direkt als "Tabelle3" an, Tabelle3.Visible-Eigenschaft. Und da sehen Sie es jetzt im Angebot, nach dem Gleicherzeichen kommt das automatisch, wird auf VeryHidden gesetzt. Das kann man per Programmierung machen oder wie eben gezeigt zu Fuß. Wenn ich das jetzt mit F5 ausführe, davon sehen Sie nicht viel, außer das die Eigenschaft der Tabelle3 sich jetzt geändert hat. Und wenn ich jetzt als normaler Benutzer hier hingehe und sage: "Ich würde das gerne einblenden", fällt schon auf: "Nanu, gar nicht aktiv". Ich muss ein anderes nochmal ausblenden. Und wenn ich jetzt wieder versuche Einblenden, ist es immerhin aktiv, aber die Test-Tabelle taucht hier nicht auf, weil sie eben VeryHidden ist. Also, Normalbenutzer kommen nur an Hidden und Visible dran. Aber mit der Eigenschaft xlSheetVeryHidden, die Sie entweder per Programmierung oder hier einsetzen können, können Sie Tabellen auch von Benutzern wirklich verstecken.

Excel 2013 VBA Grundkurs

Holen Sie aus Excel 2013 mit der integrierten Programmiersprache VBA auch das letzte Quäntchen an Funktion heraus und lassen Sie sich dazu zeigen, was alles möglich ist.

6 Std. 18 min (63 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!