Knowledge-Base-Artikel (KB0156)

Ich kann keine Daten in das think-cell-Datenblatt einfügen oder das Format geht verloren.

Symptome

Sie verfügen über Daten in einer Excel-Arbeitsmappe (.xlsx) und möchten diese kopieren und in das interne Datenblatt eines think-cell Diagramms einfügen. Wenn Sie die Daten einfügen, tritt eines der folgenden Probleme auf.

  • Sie erhalten eine Nachricht: Microsoft Excel kann die Daten nicht einfügen.
  • Es werden lediglich leere Zellen eingefügt.
  • Ihr Datums- oder Zahlenformat ist verloren gegangen, z. B. wird aus 1.1.2012 40909 oder 3,5 € wird zu 3,5.
  • Nach dem Einfügen werden Prozentwerte falsch angezeigt. In 100%-Diagrammen kann sich das Layout des Diagramms ändern.
  • Zellenfarben werden im Diagramm nicht angezeigt, obwohl die Option Excel-Füllung überlagern aktiviert ist.

Das Problem kann auch auftreten, wenn Sie Excel-Datenverknüpfungen von think-cell verwenden.

Problem 1

Sämtliche der oben aufgeführten Probleme können auftreten, wenn die XLSX-Arbeitsmappe mehr als rund 3.000 Zellenformatvorlagen enthält. Sie können die Anzahl der Zellenformatvorlagen mit dem folgenden VBA-Befehl im Direktfenster überprüfen:
print Activeworkbook.Styles.Count

Dies sind die Schritte im Detail:

  1. Öffnen Sie den VBA-Editor durch Drücken von Alt+F11.
  2. Klicken Sie auf Direktfenster. Wenn dieses nicht angezeigt wird, können Sie es aktivieren, indem Sie auf AnzeigeDirektfenster klicken.
  3. Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
    print Activeworkbook.Styles.Count

Lösungen 1: Betroffene Arbeitsmappen säubern

  • Kopieren Sie Ihre Arbeitsblätter in eine neue Arbeitsmappe

    In Office 2013 und höher wird beim Kopieren von Arbeitsblättern zwischen Arbeitsmappen standardmäßig die Zusammenfassung von nicht verwendeten Zellenformatvorlagen unterbunden:

    • Wählen Sie alle Arbeitsblätter in Ihrer Arbeitsmappe aus: Halten Sie die UMSCHALTTASTE gedrückt und klicken Sie auf das erste und letzte Arbeitsblatt.
    • Klicken Sie mit der rechten Maustaste auf die Auswahl: Verschieben oder kopieren…Zur Mappe: (neue Arbeitsmappe) und aktivieren Sie Kopie erstellenOK.
    • Speichern Sie die neue Arbeitsmappe unter einem neuen Namen.

    In Office 2007 und 2010 werden beim Kopieren eines Arbeitsblatts in eine neue Arbeitsmappe auch alle nicht genutzten Zellenformatvorlagen kopiert. Um dies zu verhindern, aktivieren Sie zuvor bitte den folgenden Hotfix:

    Wenn Ihre Office-Version vollständig aktualisiert wurde, ist diesen Hotfix wahrscheinlich bereits installiert. Sie müssen dieses Fix entweder mithilfe der Lösung Fix it aktivieren, die von Microsoft bereitgestellt wird, oder in der Registrierung gemäß den Anweisungen in den folgenden Microsoft-Artikeln:

    Wenn das Aktivieren des Hotfix nicht funktioniert, wenden Sie das im Abschnitt Resolution in den Microsoft-Artikeln oben genannte Update an.

  • Säubern Sie Ihre Arbeitsmappen mit einem Säuberungstool

    Verwenden Sie das Säuberungstool XLCleanerDotNET4.0, das Microsoft in KB213904 empfiehlt. Klicken Sie nach dem Start des Tools auf Excel-Datei aufrufen, setzen Sie ein Häkchen bei der Option Alle Zellenformatvorlagen auf „Normal“ setzen, und klicken Sie auf Datei verarbeiten. Sobald Excel mit der gesäuberten Datei geöffnet wird, speichern Sie sie unter einem neuen Namen.

  • Entfernen Sie die benutzerdefinierten Zellenformate mithilfe eines VBA-Makros aus Ihrer Arbeitsmappe

    Öffnen Sie den VBA-Editor durch Drücken von Alt+F11. Wählen Sie Ihre Arbeitsmappe aus und klicken Sie auf EinfügenModul. Fügen Sie anschließend das folgende Makro ein und führen Sie es aus, indem Sie F5 drücken:

    DeleteCustomStyles() entfernt alle benutzerdefinierten Zellformate aus Ihrer Arbeitsmappe.

    Sub DeleteCustomStyles()
    Dim st As Style
    Dim i, i_cust As Long
    i_cust = 0
    For i = (ActiveWorkbook.Styles.Count) To 1 Step -1
    	With ActiveWorkbook.Styles(i)
    		If .BuiltIn = False Then
    			On Error Resume Next
    			.Locked = False
    			On Error GoTo 0
    			If Not .Locked Then
    				.Delete
    				i_cust = i_cust + 1
    			End If
    		End If
    	End With
    	If (i Mod 100) = 0 Then Debug.Print i
    Next
    MsgBox "Styles deleted: " & i_cust & " styles" & Chr(13) & "Styles left: " & ActiveWorkbook.Styles.Count
    End Sub

    Remove_Styles() entfernt lediglich nicht verwendete Zellstile aus Ihrer Arbeitsmappe. Das Makro ähnelt dem Beispiel oben, die Ausführung kann jedoch viel Zeit in Anspruch nehmen. Es wurde vom MS Office-Support bereitgestellt.

    Option Explicit
    Dim st_array() As String
    Dim i_x As Long
    Sub Remove_Styles()
    Dim stname As String
    Dim ustname As String
    Dim uc As Range
    Dim retval As Boolean
    Dim ust As Style
    Dim sh As Worksheet
    i_x = 0
    For Each sh In ActiveWorkbook.Worksheets
        For Each uc In sh.UsedRange
            stname = uc.Style.Name
            retval = Check_Array(stname)
            If retval = False Then
            ReDim Preserve st_array(i_x)
            st_array(i_x) = stname
            i_x = i_x + 1
            End If
        Next uc
    Next sh
    For Each ust In ActiveWorkbook.Styles
        If ust.BuiltIn = False Then
            ustname = ust.Name
            retval = Delete_Styles(ustname)
            On Error Resume Next
            If retval = True Then ust.Delete
            On Error GoTo 0
        End If
    Next ust
    End Sub
    Function Delete_Styles(stylename As String) As Boolean
    Delete_Styles = True
    Dim i_y As Long
    For i_y = 0 To i_x - 1
        If st_array(i_y) = stylename Then Delete_Styles = False
    Next i_y
    End Function
    Function Check_Array(stylename As String) As Boolean
    Check_Array = False
    Dim i_y As Long
    For i_y = 0 To i_x - 1
        If st_array(i_y) = stylename Then Check_Array = True
    Next i_y
    End Function

Die beste Lösung wäre, das Einfügen nicht verwendeter Zellenformatvorlagen zu verhindern, aber dafür muss Microsoft einen Bug in Excel 2007 oder höher beheben. Bislang meint Microsoft, dass der Fehler nicht schwerwiegend genug ist, um eine Lösung zu entwickeln. Wenn Ihr Unternehmen mit Microsoft einen Servicevertrag für den Office-Support abgeschlossen hat und Sie sich wegen einer Lösung an Microsoft wenden möchten, geben Sie bitte folgende Microsoft-interne Fallnummer an: REG:113012810172527.

Erläuterung 1

Das Dateiformat, das beim Einfügen von Daten in das think-cell Datenblatt oder bei der Übertragung über eine Excel-Datenverknüpfung verwendet wird (Biff8-/XLS-Dateiformat), unterstützt nur rund 3.000 Zellenformatierungen. Beim Übertragen von Daten aus einer XLSX-Arbeitsmappe mit einer größeren Anzahl von Zellenformatvorlagen in das think-cell Datenblatt gehen entweder die Formatierungsdaten verloren oder ist das Einfügen nicht möglich.

Einige XLSX-Arbeitsmappen enthalten aufgrund von Fehlern und eines problematischen Code-Designs in Excel eine große Zahl an Zellenformatvorlagen (einige Zehntausend). Ein weiterer Faktor können Berichterstellungstools sein, die manchmal unnötig viele Zellenformatvorlagen erzeugen. Unter bestimmten Bedingungen werden auch alle nicht genutzten Zellenformatvorlagen kopiert, wenn Zellen oder Arbeitsblätter zwischen Arbeitsmappen kopiert werden.

  • Kopieren eines neuen Arbeitsblatts mit Excel 2007 oder 2010:
    Klicken Sie mit der rechten Maustaste auf die Registerkarte des Arbeitsblatts → Verschieben/kopieren…Zur Mappe: (neue Arbeitsmappe) und aktivieren Sie Kopie erstellen.
  • Zellen (sogar eine einzige Zelle) kopieren und in eine andere Arbeitsmappe in einem separaten Excel-Prozess oder in eine interne Arbeitsmappe von think-cell einfügen
    • Starten Sie einen separaten Excel-Prozess, indem Sie mit der rechten Maustaste auf das Excel-Symbol in der Taskleiste und dann auf Microsoft Excel 20… So starten Sie einen separaten Excel-Prozessklicken.
    • In Excel 2013 und höher halten Sie die Taste ALT gedrückt, um einen separaten Prozess zu starten. Bestätigen Sie die Meldung Möchten Sie eine neue Instanz von Excel starten? mit Ja.
    • think-cell ist davon betroffen, da unser Datenblatt auf einem Excel-Arbeitsblatt in einem separaten Excel-Prozess basiert.

Beim Kopieren von Zellen in eine neue Arbeitsmappe des gleichen Excel-Prozesses werden nicht genutzte Zellenformatvorlagen nicht kopiert.

Problem 2

Möglicherweise können die Daten einmal aus einer Excel-Arbeitsmappe (XLSX) kopiert und in das interne Datenblatt eines think-cell-Diagramms einfügt werden. Alle nachfolgenden Versuche, Daten zu kopieren und in das gleiche Datenblatt einzufügen (sogar bei leeren Zellen), führen jedoch zu der Meldung Microsoft Excel kann die Daten nicht einfügen. In diesem Fall tritt keines der anderen Probleme auf, die im Abschnitt Symptome aufgeführt sind.

Dieses Problem tritt beim Kopieren von Daten zwischen separaten Excel-Prozessen auf, wenn ein benutzerdefiniertes Tabellenformat desselben Namens sowohl in der Quelldatei als auch in der Zieldatei vorhanden ist. Da beim ersten Kopier- und Einfügevorgang auch sämtliche benutzerdefinierten Tabellenformate kopiert werden, schlagen die nachfolgenden Versuche zum Kopieren und Einfügen von Daten fehl. Der Fehler lässt sich ohne think-cell reproduzieren.

Reproduktion ohne think-cell

  1. Starten Sie zwei Excel-Prozesse. Wenn Excel bereits geöffnet ist und Sie mit Strg+N eine neue Arbeitsmappe erstellen, wird die zweite Arbeitsmappe im gleichen Excel-Prozess erzeugt.

    • Starten Sie einen separaten Excel-Prozess, indem Sie mit der rechten Maustaste auf das Excel-Symbol in der Taskleiste und dann auf Microsoft Excel 20… So starten Sie einen separaten Excel-Prozessklicken.
    • In Excel 2013 und höher halten Sie die Taste ALT gedrückt, um einen separaten Prozess zu starten. Bestätigen Sie die Meldung Möchten Sie eine neue Instanz von Excel starten? mit Ja.
  2. Klicken Sie in der Arbeitsmappe, die im ersten Excel-Prozess geöffnet ist, auf ExcelStartFormatvorlagenAls Tabelle formatierenNeue Tabellenformatvorlage …OK. Dadurch wird ein neues benutzerdefiniertes Tabellenformat mit der Bezeichnung "Tabellenformat 1" eingefügt.
  3. Kopieren Sie eine Zelle aus der Arbeitsmappe, die das "Tabellenformat 1" enthält, und fügen Sie sie in der anderen Arbeitsmappe im zweiten Excel-Prozess ein. Beim ersten Mal funktioniert dieser Vorgang.
  4. Kopieren Sie nun erneut eine Zelle aus der Arbeitsmappe mit dem "Tabellenformat 1", und fügen Sie sie in der anderen Arbeitsmappe im zweiten Excel-Prozess ein. Beim zweiten Mal schlägt der Vorgang fehl und es wird die Meldung Microsoft Excel kann die Daten nicht einfügen angezeigt.

Lösung 2

  • Excel 2007 und frühere Versionen sind von diesem Problem nicht betroffen.
  • Mit Stand vom November 2015 tritt das Problem in Excel 2010 weiterhin auf. Wenn Ihr Unternehmen mit Microsoft einen Servicevertrag für den Office-Support abgeschlossen hat und Sie sich wegen einer Lösung an Microsoft wenden möchten, geben Sie bitte folgende Microsoft-interne Fallnummer an: for Excel 2013, REG:114021711190574.

    In der Zwischenzeit können Sie die folgenden Lösungsansätze verwenden:

    • Fügen Sie die Daten im think-cell-Datenblatt als Text ein:
      think-cell-DatenblattEinfügenMehr (die kleine rechteckige Schaltfläche neben der Schaltfläche "Einfügen") → Inhalte einfügen …TextOK.
    • Klicken Sie im internen Datenblatt von think-cell auf die Taste Formate aller Zellen löschen. Dadurch werden alle personalisierten Tabellenstile aus dem Datenblatt entfernt und nachfolgende Einfügen-Befehle funktionieren mindestens einmal.
  • Microsoft hat den Fehler in Excel 2013 behoben. Installieren Sie bitte entweder KB2881014 aus den Microsoft Office-Updates: 10. Juni 2014 oder den Hotfix KB2881042.