Le risorse del sistema sono insufficienti per una visualizzazione completa

Anonimo
2012-10-31T08:29:13+00:00

Ciao a tutti,

ho un foglio excel con sotto una macro per estrarre i dati da SQL. Una voltra caricati i dati, premendo un tasto, vengono salvati vari excel in base al contenuto dell'estrazione. Purtroppo però, alla fine del salvataggio, compare l'errore riportato sopra.

Cosa posso fare?

Grazie

S.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2012-11-02T15:29:57+00:00

Ciao Mauro,

ho risolto il problema della grandezza del file salvato semplicemente cancellando le righe vuote prima di salvarlo. Infatti la grandezza di questi si è ridotta giustamente a qualche decina di kb. Però continua a darmi il messaggio delle risorse del sistema ed inizio a pensare che sia colpa della tante attività (selezione, copia, apertura nuovo e salvataggio) che fà. E magari influisce anche che sia un server con su un po' di utenti.

Per cui, se hai una risposta pronta, bene, altrimenti lascia perdere e lo lascio così.

Grazie per la pazienza di avermi seguito in questo delirio. :)

S.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-10-31T11:38:28+00:00

    Ciao Mauro, innanzitutto grazie per la risposta.

    Ho fatto come suggerito, ma non và mai in errore. Espone il messaggio alla fine di tutto.

    Non è un vero errore, ma voglio solo evitare la comparsa del messaggio, perchè se è vero che basta clikkare ok, sono sicuro che gli utenti mi chiameranno 1000 volte per sto problema.

    S.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-10-31T10:14:07+00:00

                   

    Ho notato che il messaggio non compare sempre, dipende da quanti record ho estratto da SQL.

    Nel caso che sto vedendo adesso, l'excel ha 5600 record per 25 colonne e premendo il tasto che attiva la macro, crea 75 nuovi excel.

    Ti ricordo che con la versione 2003 hai a disposizione 64536 righe.

    5600 non dovrebbero quindi essere un problema.

    E nel contesto che ho creato non riesco a riprodurre l'errore (lavoro però in ambiente 64 bit con Office a 64 bit).

    Prova, per favore, ad aggiungere:

    On Error GoTo 0

    On Error GoTo RigaErrore

    Prima di:

     For Each varNomeFoglio In colCollection

    e:

    ExitSub

    RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    prima di End Sub

    Fai quindi il passo passo (con F8) e vedi dove si scatena l'eccezione. Riporta poi qui.

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-10-31T09:28:03+00:00

    Ciao Mauro,

    non posso pubblicare l'excel per problemi di policy aziendale (lavoro in banca e sono dati sensibili). Posto qui sotto la macro che tra l'altro mi avevi suggerito tu e che ho leggermente modificato per ulteriori esigenze.

    Ho notato che il messaggio non compare sempre, dipende da quanti record ho estratto da SQL.

    Nel caso che sto vedendo adesso, l'excel ha 5600 record per 25 colonne e premendo il tasto che attiva la macro, crea 75 nuovi excel.

    Grazie

    S.

    Private Sub CommandButton1_Click()

    Dim wsWorkSheet As Worksheet

    Dim wkNew As Workbook

    Dim colCollection As Collection

    Dim lRiga As Long

    Dim lnContatore As Long

    Dim varNomeFoglio As Variant

    Set colCollection = New Collection

    Set wsWorkSheet = ThisWorkbook.Worksheets("Riassegnazioni")

    With Application

    .ScreenUpdating = False

    .DisplayAlerts = False

    End With

    With wsWorkSheet

    .Range("A9").AutoFilter Field:=15, Criteria1:="=Con valorizzazione", Operator:=xlOr, Criteria2:="=Con valorizzazione x cessazione"

    'Si salva il numero di righe

    lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

    'Salva in collection partendo dalla riga in cui ci sono effettivamente i valori

    For lnContatore = 10 To lRiga

    On Error Resume Next

    'Se con valorizzazione, salvo in una collection

    If .Cells(lnContatore, 15).Value = "Con valorizzazione" Or .Cells(lnContatore, 15).Value = "Con valorizzazione x cessazione" Then

    colCollection.Add CStr(Trim(.Cells(lnContatore, 16).Value) & "_" & Trim(.Cells(lnContatore, 21).Value)), CStr(Trim(.Cells(lnContatore, 16).Value) & "_" & Trim(.Cells(lnContatore, 21).Value))

    End If

    Next

    For Each varNomeFoglio In colCollection

    'Applica il filtro all'excel principale con il campop interessato uguale al contenuto della collection

    .Range("A9").AutoFilter Field:=16, Criteria1:=CStr(Left(Trim(varNomeFoglio), 7))

    .Range("A9").AutoFilter Field:=21, Criteria1:=CStr(Right(Trim(varNomeFoglio), 7))

    ' Copia

    .Range("A9").SpecialCells(xlCellTypeVisible).Copy

    'Incolla nel nuovo file

    Set wkNew = Workbooks.Add

    wkNew.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    wkNew.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    'La riga qui sotto cancella le colonne che non si vogliono nel nuovo excel

    wkNew.Worksheets(1).Range("L:Y").Delete

    wkNew.Worksheets(1).Range("A:A").Delete

    wkNew.Worksheets(1).Range("A10").Select

    wkNew.SaveAs Filename:="C:\Prova" & Format(Date, "yyyymmdd") & "_" & CStr(varNomeFoglio) & ".xls"

    wkNew.Close

    Set wkNew = Nothing

    Next

    .Range("A1").AutoFilter

    End With

    With Application

    .CutCopyMode = False

    .ScreenUpdating = True

    .DisplayAlerts = True

    End With

    Set colCollection = Nothing

    Set wsWorkSheet = Nothing

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-10-31T09:02:35+00:00

    La risposta è stata utile?

    0 commenti Nessun commento