› Sviluppare funzionalita su Microsoft Office con VBA › PageSetup MEMORIA INSUFFICIENTE
-
AutoreArticoli
-
Set SS = Workbooks("STAMPA.xls").Worksheets("Foglio1") RIG = SS.Range("BM3") + 10 With SS.PageSetup .PrintTitleRows = "$1:$10" .PrintTitleColumns = "" .PrintArea = "A10:BK" & RIG .Orientation = xlPortrait .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 2 .CenterHorizontally = True End Withdurante l'esecuzione di una macro di stampa, la sub, arrivata all'istruzione di cui sopra, da errore di MEMORIA INSUFFICIENTE.
Ho provato a separare le varie opzioni per vedere quale poteva essere quella che dava l'errore, ma, comunque scambiate, l'errore si ripeteva, sempre, nell'esecuzione dell'ultima di turno.
Avete idea del perché? l'intera sub è questa (l'istruzione PageSetup è spezzata nelle varie opzioni per vedere quale poteva essere quella che causava l'errore, ma come detto, l'errore è sempre sull'ultima, comunque scambiate)
Sub C_STA_COD() ' Set MM = Workbooks("LOGISTA_MACRO.xls").Worksheets("MACRO") Call X_MSG_ini("", "STAMPA ORDINE CALCOLO", -1) Call X_MSG_ese("Controllo Esecuzione ...") ' *** NON ESEGUIRE SE NO CALCOLO If MM.Cells(18, "W") <> "CALCOLO" Then Call X_MSG_err("NO ORDINE CALCOLO") End End If Call X_MSG_beg("STAMPA PER CODICE FIT", "", 25) Call C_CANCELLA PERCORSOX = MM.Range("A34").Value PERCORSOY = MM.Range("A35").Value If CC.Cells(1, "A") = "_ORDINE" Then PERCORSOZ = PERCORSOX Else PERCORSOZ = PERCORSOY End If If MM.Cells(21, "I") = "VENDITE" Then Call X_SAVE(PERCORSOX, "LOGISTA_VENDITE.xls") Call X_CLOSE("LOGISTA_VENDITE.xls") End If Call M_CALC_NASCONDI ' *** SALVA ORDINE CALCOLO Call X_MSG_ese("Salva ORDINE_CALCOLO ...") Call X_SAVE(PERCORSOZ, "ORDINE_CALCOLO.xls") ' *** CREA STAMPA Call X_MSG_ese("Crea Ordine Stampa ...") Call X_CLOSE("STAMPA.xls") Call X_SAVEAS(PERCORSOX, "ORDINE_CALCOLO.xls", "STAMPA.xls") Set SS = Workbooks("STAMPA.xls").Worksheets("Foglio1") SS.Unprotect ' *** VALORI Call X_MSG_ese("Valori ...") SS.Range("A1:X400") = SS.Range("A1:X400").Value SS.Range("Z1:DZ400") = SS.Range("Z1:DZ400").Value ' *** BIANCO NERO Call X_MSG_ese("Bianco e Nero ...") SS.Range("A11:DZ400").Interior.ColorIndex = xlNone SS.Range("A11:DZ400").Font.ColorIndex = 1 ' *** TITOLO Call X_MSG_ese("Titolo ...") If SS.Cells(1, "A") = "_ORDINE" Then SS.Cells(2, "A") = "LOGISTA_CALCOLO PER ORDINE LOGISTA" Else SS.Cells(2, "A") = "LOGISTA_CALCOLO PER CARICO MATRIX" End If ' *** ORDINA PER CODICE Call X_MSG_ese("Ordina per Codice FIT ...") SS.Rows("11:400").Sort Key1:=SS.Range("BM11"), Order1:=xlDescending, _ Key2:=SS.Range("A11"), Order2:=xlAscending ' *** ZEBRA Call X_MSG_ese("Zebrato ...") ZEBRA = 40 With SS.Range("A11:Y11") .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Interior.ColorIndex = ZEBRA End With With SS.Range("A12:Y12") .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Interior.ColorIndex = xlNone End With SS.Range("A11:Y12").Copy SS.Range("A13:Y400").PasteSpecial Paste:=xlFormats ' *** COLONNE Call X_MSG_ese("Colonne ...") SS.Columns("B:C").EntireColumn.Hidden = True SS.Columns("F:F").EntireColumn.Hidden = True SS.Columns("H:N").EntireColumn.Hidden = True SS.Columns("O:O").EntireColumn.Hidden = True SS.Columns("W:W").EntireColumn.Hidden = True SS.Columns("V:X").EntireColumn.Hidden = True SS.Columns("Z:CU").EntireColumn.Hidden = True SS.Columns("CW:DZ").EntireColumn.Hidden = True SS.Columns("D:D").ColumnWidth = 55 SS.Columns("P:P").ColumnWidth = 17 SS.Columns("Q:Q").ColumnWidth = 15 SS.Columns("R:R").ColumnWidth = 15 ' *** FORMATI Call X_MSG_ese("Formati ...") SS.Range("G11:G400") = " " ' *** CARATTERE Call X_MSG_ese("Carattere ...") SS.Range("A11:CV400").Font.Size = 14 ' *** PAGINA Call X_MSG_ese("Pagina ...") RIG = SS.Range("BM3") + 10 Call X_MSG_ese("Pagina Title ...") SS.PageSetup.PrintTitleRows = "$1:$10" Call X_MSG_ese("Pagina Area ...") SS.PageSetup.PrintArea = "A10:CV" & RIG Call X_MSG_ese("Pagina Wide ...") SS.PageSetup.FitToPagesWide = 1 Call X_MSG_ese("Pagina Tall ...") SS.PageSetup.FitToPagesTall = 2 'Call X_MSG_ese("Pagina Columns ...") 'SS.PageSetup.PrintTitleColumns = "" 'Call X_MSG_ese("Pagina Orientation ...") 'SS.PageSetup.Orientation = xlPortrait 'Call X_MSG_ese("Pagina Zoom ...") 'SS.PageSetup.Zoom = False 'Call X_MSG_ese("Pagina Horizontally ...") 'SS.PageSetup.CenterHorizontally = True Call C_STA_FONT_C ' *** STAMPA Call X_MSG_ese("Stampa ...") SS.PrintOut Copies:=1 ' *** CHIUDE STAMPA Call X_MSG_ese("Chiude Ordine Stampa ...") Call X_SAVE(PERCORSOX, "STAMPA.xls") Call X_CLOSE("STAMPA.xls") ' *** RIAPRE ORDINE_CALCOLO Call X_MSG_ese("Riapre Ordine Calcolo ...") Call X_OPEN(PERCORSOZ, "ORDINE_CALCOLO.xls") Call X_OPEN(PERCORSOX, "LOGISTA_VENDITE.xls") MM.Activate MM.Cells(15, "W") = "" Call X_MSG_end("STAMPA PER CODICE FIT", "", "", 25) ' End Subla riga
.PrintArea = "A10:BK" & RIG
è corretta ? mi sembra un range di colonne troppo esteso da A a BK
In realtà, coerente con la sub allegata sarebbe "CV" invece che "BK" (sono tre stampe diverse).
Molte colonne sono nascoste, le colonne in stampa sono una decina ...
-
AutoreArticoli
