for an english Discussion of the tool please look here.
Hallo, ich habe versucht ein Excel-Diagramm (Excel 2000) auf die beschriebene Weise umzuwandeln. Das beschriebene Makro habe ich in die Visual Basic-Seite einfügen können. Als ich das Makro ausführen wollte, kam die Fehlermeldung: Laufzeitfehler 13: Typen unverträglich. Nach dem ich auf "Debuggen" klickte, wurde dieser Text gelb markiert: : Set selrange = Selection. Was kann ich tun? Viele Grüße Rabe19
kenne mich mit Excel leidlich aus. Mit Makros nicht. Mir ist die Kopiererei in verschiedene Tabellen einfach zu umständlich. Es funktioniert im großen und ganzen hervorragend. Trotzdem kann ich trotz deiner Beschreibung keine Add-ins einfügen. Bin zu doof. Bitte genauer beschreiben. --Calloberian 15:11, 26. Jul 2006 (CEST)
Frage/Antwort von allgemeinem Interesse und deshalb ins gleichnamige Unterkapitel auf der Projektseite verschoben.
Ich hoffe das hilft. Freundliche Grüsse --ollio 18:51, 26. Jul 2006 (CEST)
Ein Super-Makro, leider habe ich zwei kleine Probleme festgestellt, mit denen ich wie folgt umgegangen bin.
Aus für mich nicht nachvollziehbaren Gründen führt ein ursprünglich benutzerdefiniertes (Zell-) Datumsformat von TT.MM.JJJJ letztlich durch die Makrofunktionalität Numberformat zum (amerikanischen) Format m/d/yyyy. Das Beispieldatum 20.02.2006 wird dadurch konvertiert zu 2.20.2006 und so in den Wikitext übernommen.
Nach Umformatieren der Spalte in ein Standarddatumsfomat TT.MM.JJ funktioniert alles reibungslos.
Enthält eine Excel-Zelle einen manuellen Zeilenumbruch (eingebbar mit Alt+Eingabe), so führte dies bei mir beim direkten Cut-and-Paste in den Wiki-Editor zur Zuordnung dieses Textes zur falschen Spalte und zum Verlust von Formatierungen, da ein Teil der Wiki-Syntax plötzlich in Gänsefüßchen eingekleidet wurde.
Umgehen ließ sich dies relativ einfach dadurch, dass man den Text von Excel zuerst nach Word kopiert, dort dann die entstandene Word-Tabelle in Text umwandelt, nochmal kopiert und erst dann in den Wiki-Editor einfügt. Andere "Umwege" führen leider nicht zu akzeptablen Ergebnissen (z.B. Speichern im TXT-Format oder ähnliches).
Am besten wäre es natürlich, wenn das Makro diesen problematischen "halben" Zeilenumbruch – VBA-seitig handelt es sich hier um ein Chr(10)-Zeichen ohne das in anderen Dateiformen normalerweise davorstehende Chr(13) – in einen "echten" Zeilenumbruch umsetzen würde → z.B. <br>.
Folgende Änderung wäre in process_cellcontent erforderlich (ganz am Ende):
'Excel-Zeilenumbrüche in <br>-Tag umsetzen process_cellcontent = Suchen_und_Ersetzen(process_cellcontent, vbLf, "<br>")
und zusätzlich die neue Function Suchen_und_Ersetzen mit dem Inhalt:
Function Suchen_und_Ersetzen(strUrsprungsstring As String, _ strSuchstring As String, _ strErsatzstring As String) As String On Error GoTo Err_ Dim iStartpos As Integer, iLänge As Integer Dim bSuchstringGefunden As Boolean Dim strTempString As String iStartpos = InStr(strUrsprungsstring, strSuchstring) If iStartpos = 0 Then 'nicht gefunden Suchen_und_Ersetzen = strUrsprungsstring Else iLänge = Len(strSuchstring) bSuchstringGefunden = True strTempString = strUrsprungsstring While bSuchstringGefunden strTempString = Mid(strTempString, 1, iStartpos - 1) & strErsatzstring & _ Mid(strTempString, iStartpos + iLänge) iStartpos = InStr(strTempString, strSuchstring) If iStartpos = 0 Then bSuchstringGefunden = False Wend Suchen_und_Ersetzen = strTempString End If Exit_: Exit Function Err_: MsgBox "Error - " & Err.Description & " (ErrNo=" & Err.Number & ")", vbOKOnly, _ "Suchen_und_Ersetzen" Resume Exit_ End Function
--ManWing2 16:05, 26. Sep 2006 (CEST)
Hallo Ollio, leider gibt es die VB-Funktion Replace erst ab VB6 (=Excel2000) (siehe z.B. http://vb-helper.com/howto_replace.html); daher funktioniert das Makro in Excel 97 nicht. Da ich aus Lizenz-Gründen noch mit Excel97 arbeite, habe ich dadurch ein Problem.
Könntest du doch die Funktion von ManWing2 benutzen? Danke --Mjoppien 16:26, 3. Nov. 2006 (CET)
Hallo, super macro, alles funktionert sehr gut wie beschrieben (incl. limitations bei combined cells etc.) allerdings habe ich es nicht geschafft, dass Zellen mit vertical orientation in Excel 2003 SP2 auch vertikal in Wiki dargestellt werden.
Habe getestet mit nur einer einzigen Zelle im sheet und expliziter Formattierung:
Right mouse menu - Format Cells ...
Number tab: Category: Text
Alignment tab: Horizontal: General, Vertical: Bottom, Indent: 0
Orientation: 90 (Degrees)
Ausgabe ist jedoch eine normale horizontale Ausrichtung (mit dann entsprechend zu grosser Breite):
{| ((prettytable)) <hiddentext>generated with [[:de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion]] V14</hiddentext> |- valign="bottom" | width="48" Height="57.75" | available (A) |}
Idealerweise wuerde ich mit den obigen Einstellungen auch Zellen mit Zeilenumbruch darstellen, also mehrere Woerter vertikal ausgerichtet und von links nach rechts nebeneinander in derselben Zelle angeordnet. Stattdessen wird aber ebenfalls nach "normal" konvertiert:
{| ((prettytable)) <hiddentext>generated with [[:de:Wikipedia:Helferlein/VBA-Macro for EXCEL tableconversion]] V14</hiddentext> |- align="center" valign="bottom" | width="48" Height="102" | available (A)<BR>work in progress (wip)<BR>to be determined (tbd) |}
Can you help ? Besten Dank, Volker
Das Macro generiert mit Verlaub gesagt etwas arg angestaubten Wikicode: height- und width-Attribute ohne Einheit und dazu noch mit Nachkommaanteil (width=12,75). Einheitenlose width und height-Werte werden als px interpretiert, wo jedoch 0,75 Pixel einfach nicht darstellbar sind. Das height-Attribut ist nebenbei meistens überflüssig und sollte nur in Ausnahmefällen genutzt werden. Ausserdem sollte die Formatierung weg von den missbilligten/deprecated width-, height- und valign-Attributen hin zu einer css-basierten Lösung gehen. So ists ehrlich gesagt nicht gut. --Professor Farnsworth 08:34, 19. Jul. 2007 (CEST)
Hallo, also die Massangaben von HEIGHT und WIDTH werden in V17 nun gerundet - eine eher kosmetische Aenderung, machte doch der Browser das vorher auf dem Client wohl auch schon so :-) Das Makro produziert übrigends Wikicode und keinen HTML-Code, also argumentiert doch bitte mit dem Wikicode-Standard und mit Links auf entsprechende Wikicode-Spezifikationen. Bitte führt eine allfällige HTML-Purismusdiskussion erstmal dort und sorgt dort für einen Consens und in der Doku für einheitliche Aktualisierung eurer Anliegen. Wenn etwas in HTML deprecated ist, bedeutet dass nicht, dass dies im Wikicode ebenso ist. Welchen HTML-Code aus dem Wikicode gerendert wird, könnt ihr auch mit den Entwickler der Wikisoftware unter Mediawiki diskutieren. Die Umsetzung der HEIGHT und WIDTH Angaben in Inline-CSS führt nicht zu einem kompakteren Code und scheint mir deshalb der Mühe nicht wert zu sein. Gestaltung der Tabelle und Anpassung der Zeilenbreiten und -höhen an den Inhalt erfolgt bereits in EXCEL. Dort wird auch die vertikale Textausrichtung in der Zelle gewählt, wobei in EXCEL Valign=Bottom der default ist. Wers anders haben will, stellt es einfach in EXCEL anders ein, dann wird es auch so übernommen. Das Makro hat zum Ziel - soweit es es möglich ist - die Tabellenformattierung von EXCEL 1:1 zu übernehmen. Es werden keine impliziten Formattierung auf Formatparametern vorgenommen, die in EXCEL explizit vorgegeben werden können. --ollio 10:33, 30. Jul. 2007 (CEST)
Hallo, leider funktioniert der Export von € nicht. Es kommen ($) an. Gibt es da einen Trick? Grus, -- JW
'If .NumberFormat <> "General" And .NumberFormat <> "Standard" Then ' ??? ' cellcontent = skip_underline(Format(.Value, .NumberFormat)) ' ??? 'Else ' ??? If cellcontent = "" Then '<< 15.2.2007 If Not emptyCell_nbsp Then '<< 05.3.2007 cellcontent = " " '<< 05.3.2007 Else '<< 05.3.2007 cellcontent = " " '<< 15.2.2007 End If '<< 05.3.2007 Else cellcontent = .Text ' was: cellcontent = cellcontent End If '<< 15.2.2007 'End If ' ???
damit funktieren € hier. Änderungen: Zeilen 1-3 und letzte Zeile auskommentiert; dritt-letzte Zeile nun: "cellcontent = .Text" . -- Michael Bednarek 12:21, 30. Sep. 2008 (CEST)
Bei der Ausführung des Makros läuft Excel 2007 auf den Fehler 400 (keine weitere Beschreibung). Das Output-Tabellenblatt wird zwar erzeugt, aber es enthält keinen Text. --Abnonta 14:56, 20. Sep. 2008 (CEST)
Ich habe auch Excel 2007 und bei mir erscheint leider der Fehler "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt". --Ulli Ziegenfuß 14:29, 6. Mär. 2009 (CET)
Function formatstring_for_a_linecontent() As String
, nicht wahr? Welche Expertise im "Debuggen" von VBA Programmen has du denn?? selrange.Address
? iline
Ich würde mir noch wünschen:
Gruss, --Markus 12:01, 12. Mär. 2009 (CET)
Hallo Markus, die Aenderung class="wikitable sortable" kann man von Hand in den Output einfügen. Sollte kein Problem sein. Die Farbgebung der Zellen erfolgt mit den Farben die in EXCEL verwendet werden. Wenn z.B für Zellen keine Formattierung erwünscht ist, kannst Du diese in Deinem EXCEL-Input entfernen. Das Makro soll einfach zu handhaben sein. Es gibt deshalb nicht zig Steuerparameter, mit denen das Verhalten des Makros verändert werden kann. Eine EXCEL-Tabelle als Eingabeparameter ist aber denke ich schon mal recht flexibel. Anschliessend kann der Output auch noch manuell bearbeitet werden, wenn man unbedingt noch was anderes haben will. Freundliche Grüsse, ollio 18:26, 1. Jul. 2010 (CEST)
Hallo Olli, danke für das tolle Tool! Ich habe damit eben ene komplexe Tabelle ins Wiki gestellt.
Nun ist es ja aber so, dass die Tabelle im Wiki natürlich weiter bearbeitet und ergänzt wird. Und wenn ich nun meine Exceltabelle bearbeite, sind dabei die bereits getätigten Wiki-Bearbeitungen nicht berücksichtigt. Ich müsste also erst die aktuelle Wikitabelle nach Excel konvertieren, damit ich sie bearbeiten kann, um sie dann mit Deinem Tool wieder als Ganzes hochladen zu können.
Kannst Du dafür ein Tool schreiben? Wäre super! --Markus 12:01, 12. Mär. 2009 (CET)
Hallo Markus, dazu brauchst Du kein Tool. Mit Copy/Past geht das schon jetzt enifach un komfortabel.
Gruss, ollio 16:53, 1. Jul. 2010 (CEST)
Die Beschreibung sollte mal auf Excel 2007 geändert werden. Ich finde das Menü "Extras" nicht. Wo ist das? Στε Ψ 17:31, 26. Apr. 2009 (CEST)
Die Objektvariable ist nicht festgelegt. --Verwaltungsgliederung 11:11, 6. Jun. 2009 (CEST)
Hallo, ich hatte Probleme mit der Farbe des Tabellenkopfs. Diese wurde nicht richtig übernommen (Excel 2003) Habs gelöst. Wenn's Dich interessiert kann ich den Code reinstellen. Wo? Wie? -- Alexander
Ich sehe dass es ev. diverse Probleme und Anpassungsbedarfe gibt, die auf dem Releasewechsel von EXCEL auf 2007, 2010 basieren. Das ursprüngliche Makro wurde für ECEL 2003 geschrieben und getestet. Wenn Anpassungen für 2007 vorzunehmen sind, die auf 2003 nicht ebenfalls laufen und getestet worden sind, sollte der bestehende Code auf die Seite Wikipedia:Textverarbeitung/EXCEL-2007 Tabellenumwandlung VBA kopiert und dort für 2007 weitergepflegt werden. Habe derzeit 2007 nicht installiert und werde dies auch so lange wie möglich noch hinauszögern. Auch ich bin auf Anhieb noch kein Fan der neuen Menüsteuerung und für Office-2007 müsste ich auch noch definitiv meine Hardware aufrüsten. Der Wunsch ist aber auch noch in der grösseren Warteschleife. Wer kann und will, darf aber schon mal vorspuren. Gruss. ollio 22:54, 26. Nov. 2010 (CET)
Kannst Du denn den bestehenden Teil schonmal auf die Seite kopieren Wikipedia:Textverarbeitung/EXCEL-2007 Tabellenumwandlung VBA? Dann kann ich mal schauen wie hier eine 2010 Variante aussehen könnte... --Immo we (Diskussion) 15:46, 13. Mai 2013 (CEST)
Hallo Ollio, ich habe heute die Version Microsoft® Excel® für Microsoft 365 MSO (Version 2306 Build 16.0.16529.20100) 64 Bit verwendet. Die Tabelle wurde scheinbar richtig und ohne weitere Anpassung übersetzt, einschließlich funktionierender Permalinks als Quellennachweis, was mit .csv nicht möglich war. siehe: https://www.stadtwikidd.de/wiki/Fechtvereine Danke für das Tool (nicht signierter Beitrag von ThieleUwe (Diskussion | Beiträge) 18:39, 15. Jul. 2023 (CEST))
Habe mir erlaubt, die Anleitung zu ändern, so dass sie auf mein Excel 2002 passt ... weiß nicht, ob spätere Versionen genauso funktionieren, dann müsste man das im Text entsprechend unterscheiden. --BRFR 17:30, 18. Feb. 2011 (CET)
Vielen Dank, das Makro ist erste Sahne! (Schade, dass es so etwas nicht für OO/LO gibt.)--Zuviele Interessen 22:41, 11. Sep. 2011 (CEST)
Hallo, erst mal vielen Dank an den Autor dieses Makros, ich sitze gerade an einem Projekt, das durch dieses Makro sozusagen erst ermöglicht wird bzw. durch die Möglichkeit der Tabellenumwandlung in ganz anderen Dimensionen realisierbar ist.
Ich muss dazu allerdings ein paar Änderungen am Quelltext machen und habe dazu ein paar Fragen, da mein Visual Basic schon ein paar Jahre zurückliegt:
Und zwar habe ich hier eine Menge Excel Dateien, in denen vereinfacht gessagt Inventar verwaltet wird. Die Tabellen in den Dateien bestehen aus 2 Spalten, Bezeichnung und Anzahl. Sie existieren schon seit über 10 Jahren und nun will ich diese in ein internes Wiki einfügen und gleichzeitig auf jeden Gegenstand einen Link setzen, um dann zu jedem Gegenstand eine neue Seite mit Detailinformationen anlegen zu können. Dazu muss dann erst mal für die erste Spalte außer dem Text noch die Zeichen für einen Link vor und hinter dem Text ausgegeben werden, also jeweils 2x eckige Klammer. Kann mir jemand sagen an welcher Stelle man das ändern müsste bzw eigentlich müsste ich nur wissen wie der VBA Ausdruck für den Textinhalt einer Zelle in Excel lautet, da müsste ich ja dann einfach davor und dahinter die eckigen Klammern ausgeben lassen.
Außerdem sind die existierenden Excel Tabellen so angelegt, daß in der ersten Spalte auch Unterteilungen der Gegenstände in Kategorien o.ä. stehen, also zb steht in einer Zeile Raum 1 und darunter dann die Auflistung Gegenstand und Anzahl und irgendwann dann Raum 2 usw. Bei diesen Kategorieüberschriften soll dann kein Link erstellt werden, Vorteil ist, dass diese Kategorieüberschriften in Excel in fett geschrieben sind, ich müsste also nur wissen, wie man in VBA überprüfen kann ob der Zellinhalt in Excel fett formtiert ist und wenn nicht werden eben die eckigen Klammern für Wiki-Links hinzugefügt.
Also in Kurzform: Bei der Umwandlung von Excel nach Wiki sollen in der 1. Spalte immer Links auf den Zellentext angelegt werden, wenn der Zelltext in Excel nicht fett formatiert ist.
Kann mir da jemand helfen? Danke im voraus
Sub AddBrack()
' Surround non-bold text in selected area with a pair of square brackets: [[…]]
Dim rngCell As Range
Application.ScreenUpdating = False
For Each rngCell In Selection
If Not rngCell.Font.Bold Then
rngCell.Value = "[[" & rngCell.Value & "]]"
End If
Next rngCell
Application.ScreenUpdating = True
End Sub
Danke, habe auch schon selber etwas testweise geändert was auch funktioniert. Habe mir einfach einen globalen Merker gesetzt, ob der Zellinhalt fett ist, dieser wird beim ersten aufrufen des Makros auf False gesetzt (in der Funktion Format_as_wikitable) und in der Funktion formatstring_for_a_cellcontent an der Stelle auf True gesetzt, an dem auf .bold überprüft wird und auchd er wiki-Code für die Tabellenformatierung erzeugt wird. In der Funktion process_cellcontent wird ann einfach überprüft ob der Merker auf True steht und es in der ersten Spalte steht (mit der sowieso vorhandenen globalen Variable icolumn=1) und entsprechen die eckigen Klammern vor und hinter cellcontent eingefügt, ansonsten bleibt cellcontent wie es ist. Danach wird der Merker wider auf False gesetzt für den nächsten Durchlauf.
Funktioniert super, ich habe nur das Problem wenn ich einmal eine fette Überschrift habe und danach wieder die normalen Aufzählungen losgehen, macht er bei der ersten keinen Link, ebenso bei der allersten Zeile, wo in fett die Spaltenüberschriften stehen, da macht er komischerweise inen Link obwohl es fett ist, wobei ich das vorher schon anders hatte das die erste Zeile mit den Spaltenüberschriften immer fest ausgegeben wurde.
Weiß jemand ob in der jeweils ersten Zeile nach einer Leerzeile (bzw einer leeren Zelle) eine andere Funktion aufgerufen wird als die sonst? Dann müsste ich da wahrscheinlich einfach auch den Merker einfügen.
Noch ein zweites Makro ausführen zu lassen ist leider nichth für meine Zwecke geeignet, da später damit Leute arbeiten sollen, die nicht so viel mit PC zu tun haben (altersbedingt) und es denen schwierig zu erklären wäre vorher ein anderes Makro auszuführen, zumal mit diesem ja die Inhalte der eigentlichen Excel-Tabelle geändert werden und sie dann auf keinen Fall auf speichern drücken dürften.
EDIT: Funktioniert jetzt, hatte das Rücksetzen des Merkers ein paar Zeilen zu früh gemacht, so daß es in einer If-Struktur drinsatnd und bei leeren Zellen nicht ausgeführt wurde. Funktionert jetzt super. Danke nochmal an den ursprünglichen Autor.
Ich habe versucht, eine einfache Excel-Tabelle (... zu Testzwecken) in eine WP-Tabelle umzuwandeln. Bis Punkt 6. hat alles gut geklappt. Ab Punkt 7 bin ich nicht mehr weitergekommen; ich verstehe nicht, was mit "Quelltext UNTEN einfügen" gemeint ist. Den Quelltext aus Abschnitt "VBA-Makro"? Das habe ich versucht, aber kein Ergebnis erzielt. Kann mir jemand weiterhelfen? Viele Grüße--Dryhand58 (Diskussion) 17:34, 20. Sep. 2015 (CEST)