Tag Archives: xlsx

Schnell wieder die Beine rasieren, bevor man zu den alten Nordmann-Tannen am Straßenrand gestellt wird.

Ich erstelle gerade ein größeres VBA-Projekt für einen Kunden. Und bin mal wieder verblüfft! Die größte Verblüffung hatte ich letzte Woche. Man erstelle in Excel eine XLSM-Datei mit Makros. Ein Makro wird über eine Schaltfläche (oder ein Bild, ein SmartArt, eine Form, ein Diagramm) aufgerufen:

Ich kopiere das Tabellenblatt in eine andere Datei

und speichere die Datei OHNE Makros als XLSX! Ich schließe alles, öffne die XLSX-Datei und werde gefragt, ob ich die Makros aktivieren möchte:

Okay. Ich aktiviere die Datei. Ein Klick auf die Schaltfläche und werde darauf hingewiesen:
Microsoft Office hat ein potenzielles Sicherheitsrisiko erkannt.

Was passiert? Die andere Datei wird im Hintergrund geöffnet, das Makro wird ausgeführt! Denn: hinter der Schaltfläche steht noch immer der Dateiname und Makroname.

Fazit: Mein Glaubenssatz: XLSX-Dateien sind sicher, denn sie können keine Makros enthalten, ist erschüttert! Zwar enthalten XLSX-Datei weiterhin keine Makros, können aber Makros aus anderen Dateien aufrufen!

Und dann, eines Tages werde ich die Fenster putzen. Rein aus Neugier.

Amüsiert hat es mich schon. Visio 2019 Professional stellt einen Assistenten zur Verfügung, mit dem man aus einer Exceltabelle ein Ablaufdiagramm erzeugen kann (Daten/Aus Daten erstellen/Erstellen). Im ersten Schritt kann man eine Excel-Arbeitsmappe auswählen.

Ein Klick auf die Schaltfläche „Durchsuchen“ startet den Öffnen-Dialog. Das Kombinationsfeld, in dem verschiedene Dateitypen ausgewählt werden können bietet nur eine einzige Option: Microsoft Excel-Arbeitsmappen (*.xlsx, *.xlsm, *.xlsb, *.xls, *.xlw). Erstaunlich, dass man hier von einer Auswahl spricht, wenn nur eine Variante angeboten wird.

Noch erstaunlicher: Microsoft stellt eine Dummy-Datei zur Verfügung, mit deren Hilfe man den Assistenten ausprobieren kann:

AUDIT_DATAVISUALIZERPROCESSMAP.XLTX

Trägt man nun das Textfeld *.xl* oder *.* ein, wählt diese Datei aus, so erhält man eine Fehlermeldung:

Die ausgewählte Datei ist keine Excel-Datei (!)

Okay – also die Datei als XLSX speichern (besser noch: die Liste in eine leere Arbeitsmappe kopieren und diese als XLSX speichern. Dann funktioniert der Assistent.

Dann komm ich halt in die Hölle…im Himmel kenn ich eh keinen…!

Perfide!

gestern war ein Freund von mir bei mir – wir haben ein paar Excel-Probleme diskutiert. Er wollte „nochmal“ wissen, wie man in Excel Tabellenblätter „verstecken“ kann. „Nochmal“, weil ich es ihm bereits gezeigt hatte.

Kein Problem: Wir wechseln in den Visual Basic-Editor und schalten in den Eigenschaften die Sichtbarkeit des Blattes von xlSheetVisible auf xlSheetVeryHidden. Ich erkläre ihm den Unterschied zwischen xlSheetHidden und xlSheetVeryHidden – xlSheetHidden kann vom Anwender in Excel wieder eingeblendet werden; xlSheetVeryHidden dagegen nicht.

Und dann zeigt ich Axel, wie man einen Kennwortschutz auf das VBA-Projekt legen kann: über Kontextmenü in den Eigenschaften:

Gespeichert, geschlossen, geöffnet – der Kennwortschutz war weg! Noch ein Versuch: speichern, schließen, öffnen – alles sichtbar in VBA! Unglaublich! Ich wurde rot und blass, fing an zu zittern und stammelte wirre Dinge … Wir probierten ein paar Mal – ältere Dateien, die ich für Firmen erstellt hatte …

Nach ein paar versuchen war klar: eine XLSX-Datei erlaubt keinen Kennwortschutz. Eine XLSM-Datei, die mindestens ein (leeres) Modul enthält dagegen schon. Also: Einfügen / Modul und Speichern unter XLSM (mit Makros – auch wenn keine Makros im Projekt / in der Arbeitsmappe sind). Das klappt. Und ich wischte mir den Schweiß von der Stirn.

Danke an Axel für die „nochmalige“ Frage.

Nur hohle Menschen urteilen nicht nach dem Schein. Das wahre Geheimnis der Welt ist das Sichtbare, nicht das Unsichtbare. (Oscar Wilde)

Excel-Schulung. Thema Pivot. Frage einer Teilnehmerin: „Warum sieht Ihre Pivottabelle anders aus als unsere? Wir verwenden doch beide Excel 2016 und die gleichen Daten.“

Die Antwort war schnell gefunden: Ich hatte auf meinem Laptop noch eine alte *.xls-Version der Beispieldatei erwischt – während ich den Teilnehmern die Datei als *.xlsx zur Verfügung gestellt hatte.