Tag Archives: Tabellenblatt

Ich hab mal nachgedacht. Das Sportlichste bei mir zu Hause ist der Läufer im Flur.

Tabellenblätter in Excel in Excel haben nicht nur einen (sichtbaren) Namen, der vom Anwender oder von der Anwenderin geändert werden kann. Im VBA-Editor gibt es auch noch einen Name (Codename), der nur dort und nur per Hand geändert werden kann. Ich kann nun per Programmierung leicht überprüfen, ob alle Tabellen, die ich benötige, noch vorhanden sind. Ich habe eine Funktion GibtEsTabellenblatt geschrieben, die überprüft, ob die aktuelle Datei ein Tabellenblatt mit einem solchen Codenamen hat. Ich möchte die Arbeitsmappe nicht schützen, weil der Anwender oder die Anwenderin neue Blätter hinzufügen, löschen, umbenennen darf. Allerdings: meine Blätter dürfen nicht gelöscht werden. Ich sehe nach:

Jedes der Tabellenblätter hat ein Ereignis BeforeDelete:

Dieses Ereignis hat allerdings kein Abbruchkriterium (Cancel), mit dem man das Löschen verhindern könnte.

Der zweite Blick fällt auf das Objekt Workbook. Gibt es dort ein Abbruchparameter?

Das Ereignis dort heißt SheetBeforeDelete und hat auch keinen solchen Parameter:

Allerdings einen Parameter Sh mit dem ich gezielt überprüfen kann, welches Blatt nicht gelöscht werden darf (und die Liste schnell erweitern kann:

Select Case Sh.CodeName
    Case "tbl_Unternehmen", "tbl_Standorte", "tbl_Zuordnung1", "tbl_Organisationseinheit", "tbl_Zuordnung2", "tbl_Geschaeftsprozesse", "tbl_Zuordnung3", "tbl_Uebungstyp", "tbl_Szenario", "tbl_Verantwortlich", "tbl_Uebungsplanung", "tbl_Zuordnung4"
        MsgBox "Bitte löschen Sie nicht das Tabellenblatt """ & Sh.Name & """!", vbCritical

End Select

Problem: Die Meldung wird angezeigt und DANN das Blatt gelöscht. Doof!

Nächster Versuch: Und wenn ich DANACH die Arbeitsmappe schütze?

Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
    On Error Resume Next
    Select Case Sh.CodeName
        Case "tbl_Unternehmen", "tbl_Standorte", "tbl_Zuordnung1", "tbl_Organisationseinheit", "tbl_Zuordnung2", "tbl_Geschaeftsprozesse", "tbl_Zuordnung3", "tbl_Uebungstyp", "tbl_Szenario", "tbl_Verantwortlich", "tbl_Uebungsplanung", "tbl_Zuordnung4"
            MsgBox "Bitte löschen Sie nicht das Tabellenblatt """ & Sh.Name & """!", vbCritical
            ThisWorkbook.Protect
    End Select
End Sub

Klappt! Hier die drei Meldungen, die erscheinen:

Allerdings: DANN ist die Arbeitsmappe geschützt. Was ich ja eigentlich nicht wollte. Also flux den Arbeitsmappenschutz wider aufheben. Wo? Am besten beim Wechseln auf ein anderes Arbeitsblatt:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    On Error Resume Next
    ThisWorkbook.Unprotect
End Sub

Ich hätte gerne den Schokoriegel mit dem Löwen. – Lion? – Nein, kaufen!

Ich bereite gerade eine Excelschulung vor. Dabei bin ich über einen Artikel von Andreas Thehos gestolpert. Er beschreibt folgenden Bug in Excel:

Angenommen man hat eine Tabelle mit Berechnungen und wandelt sie in eine intelligente Tabelle um. Dabei werden in Bezügen der eigene Tabellenblattname genannt.

Sortiert man nun diese Tabelle, beispielsweise nach Spalte C (Radius), so wird die berechnete Spalte nicht mitsortiert.

Für „normale“ Listen habe ich diesen Bug hier auf excel-nervt.de schon mehrfach beschrieben. Das Erstaunlich ist, dass dieses Phänomen auch bei intelligenten Tabellen eintritt, die doch eigentlich die Aufgabe haben sollten, die Zeilen zusammenzuhalten.

Danke an Andreas Thehos für diesen Hinweis.

Ich bin gut aussehend und gelangweilt. Anscheinend bin ich eine Prinzessin.

Ich würde es nicht tun. Dennoch – das Ergebnis ist sehr interessant:

Auf einem Tabellenblatt befinden sich Informationen:

Auf einem zweiten Tabellenblatt befinden sich ebenfalls Informationen:

Sie werden verknüpft, indem man zuerst auf das erste Blatt klickt und anschießend auf das zweite Tabellenblatt. Das Ergebnis der Formel lautet:

=Tabelle1!A1&Tabelle2!A1

Das Ganze noch einmal – diesmal jedoch ohne den lästigen Bezug auf das gleiche Blatt:

=Tabelle1!A1&A1

Das Ergebnis ist das Gleiche. Jedoch beim Sortieren ergeben sich Unterschiede:

In der ersten Spalte wird sortiert:

=Tabelle1!A2&Tabelle2!A2 // =Tabelle1!A2&Tabelle2!A9 // =Tabelle1!A2&Tabelle2!A16 …

In der zweiten Spalte jedoch:

=Tabelle1!A2&A1 // =Tabelle1!A2&A2 // =Tabelle1!A2&A3 …

Danke an Dominic Dauphin für diesen Heinweis.

Je größer der Dachschaden, desto freier der Blick zu den Sternen.

In der letzten Excelschulung rief mich eine Teilnehmerin zu sich, weil sie nicht mehr sortieren und filtern konnte:

Die Antwort war schnell gefunden: Sie hatte zwei Tabellenblätter markiert:

Warum? Wir hatten zuvor gelernt, dass man in großen Tabellen schnell mit [⇑] + [Strg] + [↓] (beziehungsweise den anderen drei Pfeiltasten/Cursortasten markieren kann. Sie hatte fälschlicherweise gedrückt: [⇑] + [Strg] + [Bild↓]. Damit wird zum aktuellen Tabellenblatt das nächste hinzugruppiert.

Paradox ist, wenn einer sich im Handumdrehen den Fuß bricht.

Hallo Herr Martin,

ich weiß nicht, was passiert ist: Ich habe eine Tabelle in Excel angelegt:

Die neue Tabelle

Die neue Tabelle

Ich wollte nun ein neues Tabellenblatt einfügen – und nun das:

???

???

Die Antwort: Wenn Sie genau hinsehen, haben Sie nicht ein neues Blatt, sondern ein Diagramm eingefügt. Wahrscheinlich wollten Sie die Tastenkombination [Shift] + [F11] drücken, haben aber nur [F11] gedrückt. löschen Sie das Diagramm und versuchen es noch einmal!

Die Antwort

Die Antwort

Hoffnung ist nicht die Gewissheit, dass alles gut wird. Sondern der Glaube daran, dass etwas Sinn macht.

Uff!

In einer Liste stehen Zahlenwerte. Daneben eine Spalte mit Berechnungen, beispielsweise die Mehrwertsteuer:

20160831Sort01

Trägt man nun statt der Zelle H2 den Tabellennamen und den Zellnamen ein (dies passiert, wenn man beispielsweise bei der Formeleingabe auf ein anderes Blatt wechselt), dann hat Excel kein Problem damit.

Jedoch: Sortiert man die Liste, so erstaunt das Ergebnis: Die Werte sind falsch. Schaut man sich die Formeln an, stellt man fest, dass die Bezüge nicht sortiert wurden. Anders wenn wenn man statt Blattname!Zellname nur Zellname eingegeben hätte.

Uuuuuaaaaahhhh!

Uuuuuaaaaahhhh!

Danke an Andreas Thehos für diesen wunderbaren Hinweis!

Ingroup-Verhalten

Hallo Herr Martin,

ich habe gelernt, dass man mit gedrückter [Strg]-Taste oder [Shift]-Taste mehrere Tabellenblätter markieren kann und gleichzeitig auf diesen Blättern arbeiten kann. Ich habe auch gelernt, dass ich dort die Ausrichtung eines Textes in mehreren Zellen auf mehreren Blättern gleichzeitig ändern kann, ebenso die Spaltenbreite, einen Text einfügen, die Kopfzeile verändern, die Hintergrundfarbe und noch einiges mehr.

Allerdings: Die Schriftfarbe kann ich nicht ändern, oder?

Auf dem Blatt Österreich wird der Text rot formatiert ...

Auf dem Blatt Österreich wird der Text rot formatiert …

... auf dem  Blatt Schweden wird diese Farbe nicht übernommen.

… auf dem Blatt Schweden wird diese Farbe nicht übernommen.

Die Antwort: Sie haben zwar alle Blätter markiert, haben dann aber auf dem Blatt „Österreich“ die Zelle editiert.. Das heißt: Text in der Zelle markiert und formatiert. DAS dürfen Sie nicht! Sie müssen „auf“ der Zelle „sitzen“ und die Schriftfarbe ändern – dann funktioniert es auch!