Excel

VBA-Makros selbstsigniert

21. April 2011 · Anwendungen · andreas · 5 Kommentare

Sicherheit und Bequemlichkeit schließen sich oft gegenseitig aus - während man für ein Mehr an Sicherheit einen Teil Bequemlichkeit opfert, muß meist an der Sicherheit gespart werden, damit’s bequem wird.

vba_makro_02

Spürbar wird dies zum Beispiel bei der Verwendung von VBA-Makros: Ist in Excel die Makro-Sicherheit auf “Hoch” eingestellt, können Makros in der Regel keinen Schaden anrichten, da sie nicht ausgeführt werden dürfen. In der Einstellung “Mittel” muß bei jedem Öffnen einer Arbeitsmappe mit Makros entschieden werden, ob die Makros ausgeführt werden dürfen oder nicht. In der Einstellung “Niedrig” wird jedes Makro ohne lästige Nachfrage ausgeführt, inklusive eventuell darin enthaltenem Schadcode.

Eine elegangte Lösung dieses Szenarios stellt das Signieren selbst erstellter Makros dar - einmal als vertrauenswürdig eingestuft, werden diese auch auf Sicherheitsstufe “Hoch” ausgeführt und die Nachfrage auf Sicherheitsstufe “Mittel” entfällt.

Hierzu muß nicht unbedingt ein kostenpflichtiges Zerfitikat einer offiziellen Certificate Authority erworben werden, für den internen Einsatz reicht auch die Verwendung eines selbstsignierten Zertifikats, das mit frei verfügbaren Mitteln erstellt werden kann.

Weiterlesen


Diese Arbeitsmappe hat ihr VBA-Projekt, alle Active-X-Steuerelemente und alle anderen programmierbaren Elemente verloren

18. April 2011 · Anwendungen · andreas · Kein Kommentar

Meldet sich Excel beim Öffnen einer Arbeitsmappe mit der Fehlermeldung

so wurde auf dem betreffenden PC vergessen, Visual Basic for Applications zu installieren.


Excel aktualisiert Zelleninhalte nicht mehr automatisch

4. April 2010 · Anwendungen · andreas · Kein Kommentar

Sollte Excel plötzlich die Zelleninhalte nicht mehr automatisch aktualisieren, so lohnt ein Blick auf den Karteireiter “Berechnung” unter “Extras” / “Optionen”.

Wird hier von “Manuell” auf “Automatisch” umgestellt, klappt’s auch wieder mit der Aktualisierung.


Excel-Export quick & dirty

23. Januar 2009 · Anwendungen · andreas · Kein Kommentar

Zwar gibt es für PHP mit dem PHP Extension and Application Repository (PEAR) ein ähnliches Repository, wie es das Comprehensive Perl Archive Network (CPAN) für PERL darstellt, allerdings ist für die meisten Zwecke die Installation und Konfiguration von PEAR zu aufwendig im Hinblick auf das benötigte Ergebnis.

So gibt es zwar zum Schreiben von Excel-Dateien den “Spreadsheet::WriteExcel"-Clon “Spreadsheet_Excel_Writer”, der allerdings für einfache Exportzwecke deutlich überdimensioniert ist.

Diese kann man auch z.B. von Hand lösen, in dem man die Funktion von Excel ausnutzt, im “Notfall” auch HTML-Tabellen interpretieren zu können:

<?php
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=excel.xls");
?>
<table>
<tr>
<td>AA</td><td>BB</td>
</tr>
<tr>
<td>CC</td><td>DD</td>
</tr>
</table>

Beim Aufruf des Skripts öffnet sich der “Speichern unter”-Dialog des Browsers und man erhält in der Tat eine Excel-Tabelle, die u.U. den netten Charme hat, mit dem gleichen Code wie die Bildschirmausgabe nur mittles Template-Wechsel erzeugt werden zu können.


Excel-Daten in MySQL-Datenbank übernehmen

5. September 2008 · Anwendungen · andreas · Kein Kommentar

Steht man vor einer Aufgabe wie z.B. die Daten einer Excel-Tabelle in eine MySQL-Datenbank zu übernehmen, so geht entweder die Suche nach einem passenden Utility oder das Schreiben eines kleinen Skripts los.

Doch halt - eigentlich ist an Werkzeug schon alles, da, was man braucht:

  1. Excel: Zuerst werden mit Excel alle Daten soweit vorbereitet, wie sie später dann auch in der Tabelle stehen sollen. Dann wird die Excel-Tabelle als CSV-Datei abgespeichert.
  2. MySQL: Die Tabelle selbst wird angelegt und mit den benötigten Feldern versehen. Anschließend wird mittels des ‘LOAD DATA’-Kommandos die vorher erzeugte CSV-Datei in die Tabelle eingelesen.

Beispielhaft könnte der Aufruf des Kommandos wie folgt aussehen:

mysql> LOAD DATA INFILE 'D:/Temp/excel-daten.csv' INTO TABLE zieltabelle FIELDS TERMINATED BY ';';

Eine Ausführliche Beschreibung der Parameter gibt’s im MySQL Reference Manual