Knowledge base KB0156

Non è possibile incollare dati nel foglio dati think-cell o il formato viene perso

Sintomi

Sono disponibili dei dati in una cartella di lavoro di Excel (.xlsx) e si desidera copiarli/incollarli nel foglio dati interno di un grafico think-cell. Al momento di incollare i dati, si osserva uno dei seguenti problemi:

  • Si riceve un messaggio: Impossibile incollare i dati.
  • Vengono incollate solo le celle vuote.
  • La data o il formato del numero è stato perso, ad esempio 1/1/2012 diventa 40909 o $3,5 diventa 3,5.
  • Dopo aver incollato, i valori percentuali vengono visualizzati in maniera scorretta. Nei grafici 100%, il layout del grafico potrebbe modificarsi.
  • I colori delle celle non vengono visualizzati nel grafico anche se l'opzione Usa riempimento Excel sopra è selezionata.

Questi problemi possono verificarsi anche quando si utilizzano i collegamenti dati di think-cell.

Problema 1

Uno qualunque dei problemi elencati si verifica se la cartella di lavoro .xlsx contiene più di 3000 stili di cella circa. È possibile verificare il numero di stili di cella con il seguente comando VBA nella Finestra Immediata:
print Activeworkbook.Styles.Count

I passaggi necessari per questa verifica sono:

  1. Premere ALT+F11 per aprire l'editor di VBA.
  2. Accedere alla Finestra di controllo immediato. Se non è visibile, è possibile visualizzarla facendo clic su VisualizzaFinestra immediata.
  3. Digitare il seguente comando e premere INVIO
    print Activeworkbook.Styles.Count

Soluzione 1: Pulire le cartelle di lavoro interessate

  • Copiare i fogli di lavoro in una nuova cartella di lavoro

    In Office 2013 e versioni successive, la copia di fogli di lavoro tra cartelle di lavoro evita l’accumulo di stili di cella inutilizzati per impostazione predefinita:

    • Selezionare tutti i fogli nella cartella di lavoro: tenere premuto MAIUSC e fare clic sul primo e sull'ultimo foglio di lavoro
    • Fare clic con il pulsante destro del mouse sulla selezione: Sposta o copia…Alla cartella: (nuova cartella) e selezionare Crea una copiaOK
    • Salvare la nuova cartella di lavoro con un nuovo nome

    In Office 2007 e 2010, copiare un foglio di lavoro in una nuova cartella di lavoro consente di copiare tutti gli stili di cella inutilizzati. Per evitare che succeda, attivare prima il seguente hotfix:

    Se la versione di Office è completamente aggiornata, questo hotfix è probabilmente già installato. Tuttavia, è anche necessario attivare questo aggiornamento utilizzando la soluzione Correggi fornita da Microsoft o nel Registro di sistema, come spiegato nei seguenti articoli di Microsoft:

    Se l'attivazione dell'hotfix non funziona, applicare l'aggiornamento citato nella sezione Risoluzione negli articoli di Microsoft citati sopra.

  • Pulire le cartelle di lavoro con uno strumento di pulizia

    Utilizzare lo strumento XLCleanerDotNET4.0 , raccomandato da Microsoft in KB213904. Dopo aver avviato lo strumento, fare clic su Get Excel File, spuntare Force all cell styles to 'Normal', quindi fare clic su Process File. Quando Excel si apre con il file pulito, salvarlo con un nuovo nome.

  • Rimuovere gli stili di cella personalizzati dalla cartella di lavoro utilizzando una macro VBA

    Aprire l'editor di VBA editor con ALT+F11. Selezionare la cartella di lavoro e fare clic su InserisciModulo. Incollare una delle seguenti macro ed eseguirla premendo F5:

    DeleteCustomStyles() rimuove tutti gli stili cella personalizzati dalla cartella di lavoro.

    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() rimuove soltanto gli stili di cella personalizzati inutilizzati dalla cartella di lavoro. È simile alla macro sopra riportata, tuttavia richiede un tempo molto lungo per l'esecuzione. La macro è stata fornita dal supporto tecnico Microsoft Office.

La soluzione migliore sarebbe impedire di copiare gli stili di cella inutilizzati, ma richiede la correzione di un bug da parte di Microsoft in Excel 2007 e versioni successive. Fino ad ora Microsoft non ha ritenuto l'impatto economico del bug sufficiente per decidere di provvedere alla correzione. Se la società ha un contratto di assistenza Microsoft Office e desidera contattare Microsoft per risolvere un errore, occorre fare riferimento al numero di caso Microsoft REG:113012810172527.

Spiegazione 1

Il formato di file utilizzato per incollare i dati nel foglio dati think-cell o per trasferirli tramite un collegamento dati Excel (formato di file Biff8/.xls) supporta solo 3000 stili di cella circa. Quando si trasferiscono dati da una cartella di lavoro .xlsx contenente un numero maggiore di stili cella a un foglio dati think-cell, vengono perse le informazioni relative alla formattazione oppure non è possibile incollare i dati.

Alcune cartelle di lavoro .xlsx contengono un numero elevato (diverse decine di migliaia) di stili cella a causa di bug e problemi di progettazione codice in Excel. Un fattore contributivo è rappresentato anche dagli strumenti di reporting che a volte generano troppi stili cella rispetto al necessario. In determinate condizioni anche tutti gli stili cella non utilizzati vengono copiati, quando si copiano celle o fogli di lavoro tra diverse cartelle di lavoro.

  • Copia di un foglio di lavoro in una nuova cartella di lavoro con Excel 2007 o 2010:
    Fare clic con il pulsante destro del mouse sulla scheda del foglio di lavoro → Sposta o copia…Alla cartella: (nuova cartella) e selezionare Crea una copia.
  • Copiare/incollare celle (anche solo una) in un'altra cartella di lavoro in un processo di Excel separato o nel foglio dati interno di think-cell
    • Per avviare un processo di Excel separato, fare clic con il pulsante destro del mouse sul simbolo Excel sulla barra delle applicazioni e fare clic su Microsoft Excel 20… Come avviare un processo di Excel separato
    • In Excel 2013 e versioni successive, tenere premuto il tasto ALT contemporaneamente per avviare un processo separato. Confermare il messaggio Avviare una nuova istanza di Excel? con .
    • think-cell è interessata dall'errore perché il nostro foglio dati si basa su un foglio di lavoro di Excel in un processo separato di Excel.

Copiando delle celle in una nuova cartella di lavoro all'interno dello stesso processo di Excel non si copiano gli stili cella non utilizzati.

Problema 2

Potrebbe essere possibile che il primo tentativo di copiare/incollare i dati da una cartella di lavoro Excel (.xlsx) in un foglio dati interno di un grafico think-cell vada a buon fine, ma che i tentativi successivi di copiare/incollare (anche una cella vuota) nello stesso foglio dati causino il messaggio di errore Impossibile incollare i dati. In questo caso, gli altri problemi citati nella sezione Sintomi riportata sopra non si verificano.

Questo problema accade quando si copiano dati tra processi Excel separati quando sia nel file sorgente che nel file target esiste uno stile tabella personalizzato con lo stesso nome. Dal momento che il primo copia/incolla copia anche gli stili tabella personalizzati, il tentativo successivo fallisce. È possibile riprodurre il problema senza think-cell.

Riproduzione senza think-cell

  1. Apre due processi Excel. Quando Excel è già aperto e si crea una nuova cartella di lavoro con Ctrl+N, la seconda cartella di lavoro è mantenuta all'interno dello stesso processo Excel.

    • Per avviare un processo di Excel separato, fare clic con il pulsante destro del mouse sul simbolo Excel sulla barra delle applicazioni e fare clic su Microsoft Excel 20…Come avviare un processo di Excel separato
    • In Excel 2013 e versioni successive, tenere premuto il tasto ALT contemporaneamente per avviare un processo separato. Confermare il messaggio Avviare una nuova istanza di Excel? con .
  2. Nella cartella di lavoro aperta nel primo processo di Excel, selezionare ExcelHomeStiliFormatta come tabellaNuovo stile tabella …OK. Verrà inserito un nuovo stile tabella personalizzato chiamato "Stile tabella 1".
  3. Copiare/incollare una cella dalla cartella di lavoro che contiene lo "Stile tabella 1" nell’altra cartella di lavoro del secondo processo Excel. Questo funziona per la prima volta.
  4. Copiare/incollare nuovamente una cella dalla cartella di lavoro che contiene lo "Stile tabella 1" nell’altra cartella di lavoro del secondo processo Excel. La seconda volta che non è possibile effettuare l'operazione viene visualizzato il messaggio Impossibile incollare i dati.

Soluzione 2

  • Excel 2007 e versioni precedenti non sono interessati da questo problema.
  • In Excel 2010, il problema si verifica ancora a novembre 2015. Se la società ha un contratto di assistenza Microsoft Office e desidera contattare Microsoft per risolvere un errore, occorre fare riferimento al numero di caso Microsoft for Excel 2013, REG:114021711190574.

    Nel frattempo è possibile utilizzare le seguenti soluzioni alternative:

    • Copiare i dati come testo nel foglio dati think-cell:
      foglio dati think-cellIncollaAltro (il piccolo pulsante a triangolo vicino al pulsante Incolla) → Incolla speciale …TestoOK.
    • Fare clic sul pulsante Cancella formati di tutte le celle nel foglio dati interno di think-cell. In questo modo, verranno rimossi tutti gli stili tabella personalizzati dal foglio dati e i successivi comandi incolla funzioneranno almeno una volta.
  • Microsoft ha risolto il problema in Excel 2013. Installare la versione KB2881014 dell’aggiornamento per Microsoft Office del 10 giugno 2014 o l’aggiornamento rapido KB2881042.