Wikiup:Technik/Text/Basic/EXCEL-Tabellenumwandlung

aus Wikipedia, der freien Enzyklopädie

For an English translation of this text please look here.

Beschreibung

Das ist Version V1x des Excel-VBA-Makros format_as_wikitable. Das Makro konvertiert einen beliebig selektierten Excel-Tabellen-Bereich in einen Wiki-Text, der dann via Zwischenablage in die Wikipedia übertragen werden kann.

Funktionsumfang

  • Konvertiert einen beliebig selektierten Zellbereich ins Wiki-Tabellenformat inklusive den wesentlichen Formatierungen.
    • Textauszeichnungen (Größe, Farbe, Stil (kursiv, fett, unterstrichen)) bleiben erhalten.
    • Textausrichtungen innerhalb von Zellen (horizontal und vertikal) bleiben erhalten.
    • Spaltenbreiten und Zeilenhöhen bleiben erhalten.
  • Im Weiteren wird die Ausgabe volumenoptimiert, d.h. für die Zellenformatierung werden keine repetitive, redundante Attributinformationen geschrieben.
  • Aufgrund der inkompatiblen Konzepte bezüglich der Rahmenformatierung wird die Rahmenformatierung nicht in die Ausgabe übernommen.

Kommentare und allfällige Problemmeldungen sollten hier auf der Diskussionsseite hinterlegt werden. Sie steht auf der Beobachtungsliste des Programmautors.

Tipps für anwendungsbezogene Formatierung in Excel

Nachfolgend wird auf einige Probleme und Grenzen in den Darstellung hingewiesen. Einen Überblick über die Darstellungsmöglichkeiten erhalten Sie hier.

Grenzen der Darstellungsmöglichkeiten

Dieses Makro verfolgt das Ziel, eine Excel-Tabelle möglichst so in Wiki-Code umzuwandeln, dass die Tabelle in Wikipedia gleich dargestellt wird wie in Excel. Die Darstellungsmöglichkeiten vom Wiki-Tabellencode setzen dieser Zielsetzung in gewissen Bereichen aber Grenzen:

  • Rahmenformate: In Excel kann der Rahmen jeder Zelle individuell formatiert werden. Das ist in Wiki nicht möglich. Hier erfolgt die Rahmendarstellungen einheitlich für die ganze Tabelle mittels Standardvorlage.

Vermeidung von Quellformaten, die zu unerwünschten Ergebnissen führen

Eine Excel-Tabelle, die mit VBA-Programmcode ausgelesen wird, gibt den Zelleninhalt z. T. nicht so wieder, wie er dargestellt wird. Folgende Probleme sind bekannt und können durch entsprechende explizite Formatierungen in Excel vermieden werden:

  • Lokale Datumsformate werden vom Excel-Makro nicht korrekt exportiert.
    • Problem-Beispiel: 24.05.2012 wird in 05.24.2012 umgewandelt.
    • Lösung: Format für Excel Zelle: TT.MM.JJJJ;@ oder TT.MM.JJJJ hh:mm;@
  • Das Zahlenformat Standard sollte vermieden werden. Es transferiert den Zelleninhalt nicht korrekt. Die Zahl „1000“ wird z.B. dargestellt als „(1000)“.

Vermeidung von Darstellungskonflikten aufgrund unterschiedlicher Standardeinstellungen

Weiter gibt es Unterschiede in den Standardeinstellungen zwischen Excel und Wiki, welche zu implizieten Umformatierungen von Zelleninhalten führen. Diese können vermieden werden, wenn in Excel explizit formatiert wird. Dies betrifft insbesondere:

  • Horizontale Ausrichtung
  • Vertikale Ausrichtung

Installation

VBA-Makro

Im Prinzip: Den Makrotext in einem VBA-Modul einfügen und starten. Folgende Ausführungen beziehen sich auf EXCEL 2003, die Anleitung kann für andere Excel-Versionen leicht abweichen:

  1. Mit Excel die Datei öffnen, die umgewandelt werden soll
  2. Den VBA-Editor öffnen (Menü: Extras/Makro/Visual-Basic-Editor) oder 'Alt-F11'
  3. In der linken Spalte sind die geöffneten VBA-Projekte angezeigt
  4. Dort auf 'VBA-Projekt' (mit dem Namen des aktuellen Dokuments, also nicht z.B. bei Eurotools!) mit der rechten Maustaste hinklicken
  5. Im Kontextmenü Einfügen/Modul wählen
  6. Im rechten großen Fenster erscheint eine leere weiße Seite (evtl. steht oben Option Explicit)
  7. Den gesamten Quelltext kopieren und in diese leere weiße Seite einfügen. Quellcode siehe Link unter Abschnitt VBA-Makro.
  8. Im aktuellen Arbeitsblatt den Zellenbereich auswählen, der in eine Wiki-Tabelle konvertiert werden soll. Der Bereich darf keine verbundene Zellen enthalten.
  9. Das Makro ausführen (Menü → Extras → Makro → Ausführen)
  10. Den Text aus dem neuen Arbeitsblatt „Wikioutput“ in die Zwischenablage kopieren und von dort in das Wikipedia-Textfeld einfügen.
  11. In Wikipedia die Vorschaufunktion verwenden
  12. Wenn Resultat befriedigend, Wiki-Text speichern

Optional: Makro als Add-in installieren

Eine Excel-Datei mit dem Makro-Code kann auch als XLA-Datei gespeichert werden. Danach kann das Makro als Add-In-Kommando verwendet werden, muss also nicht in jede neue Datei kopiert werden.

Nachdem das Makro in einer Datei installiert und erfolgreich getestet ist, kann eine XLA-Datei erzeugt werden:
  • Sinnvollerweise enthält die Datei nur ein leeres Arbeitsblatt und das Makroprojekt – alle anderen Seiten werden gelöscht.
  • Speichern als XLA-Datei: Datei → speichern unter. Im Speicherdialog muss der Dateityp auf XLA geändert werden. Das ist ganz unten in der Liste (Dateityp: Microsoft Excel-Add-In (*.xla)). Der Datei einen sinnvollen Namen geben (Bsp: Writewikitable.xla). Der Pfad wird automatisch auf C:\Dokumente und Einstellungen\myUsername\Anwendungsdaten\Microsoft\AddIns eingestellt. Speichern.
  • Excel schließen und erneut öffnen.
  • Unter Extras → Addins erscheint nun das neue XLA. Dieser wird durch Ankreuzen aktiviert.
  • Das Makro „Format_as_wikitable“ steht nun zur Verfügung – auch wenn es unter Extras → Makro → Ausführen nicht sichtbar ist.
Natürlich ist es nun etwas mühsam, jedes Mal den Makronamen blind einzutippen – dem kann aber abgeholfen werden, indem ein benutzerdefinierter Menüeintrag definiert wird, dem dann das Makro zugeweisen wird. Danach erscheint der Befehl mit dem Makroaufruf im Menü. Im Detail geht das so:
  • Ansicht → Symbolleisten → Anpassen…, dort im Reiter Befehle im Fenster Kategorien markieren: Makros. Sodann aus dem anderen Fenster Befehle den Befehl Benutzerdefiniertes Menüelement an den gewünschten Ort im Menü ziehen (Drag&Drop). Sinnvoll ist sicher ein Eintrag unter dem Extras-Menü.
  • Diesem neuen Menüeintrag kann man einen sinnvollen Namen geben, z.B. Markierten Bereich in Wikitext konvertieren. Hierzu neuen Menüeintrag auswählen und im Kontextmenü, d. h. mit der rechten Maustaste anklicken. Eingabe erfolgt unter Feld Name.
  • Im selben Kontextmenü kann man weiter unten das Makro Format_as_wikitable zuweisen. Das kann man nicht auswählen, sondern muss es eintippen.
  • Erst wenn diese Arbeiten abgeschlossen sind, darf die Dialogbox Anpassen geschlossen werden bzw. muss jetzt geschlossen werden. Damit verlässt man die anwenderspezifischen Anpassung der Menüstruktur. Warnung: Solange die Dialogbox offen ist, funktionieren die Befehle nicht als Befehle, sondern können verschoben oder gelöscht werden. Besser man geht mit Bedacht vor und zerstört nicht die von Microsoft ausgelieferten Menüstrukturen.
  • Fertig, diese Arbeiten werden als persönlichen Einstellungen automatisch gespeichert, sollten also fortan immer verfügbar sein.

VBA-Makro

VBA-Code für EXCEL-2003, EXCEL 2013 (PC-Version) und früher

Wikipedia:Technik/Text/Basic/EXCEL-2003 Tabellenumwandlung VBA

Umgekehrt: Wikitable in Excel wandeln

Wie geht das? Danke, --Markus 00:05, 19. Jul. 2011 (CEST)

Wiki-Tabelle als HTML speichern, HTML in Excel kopieren, ggf Überflüssiges löschen, Excel als XLS speichern. --Markus 01:59, 19. Jul. 2011 (CEST)