Salve, questa volta mi sembra che il problemino sia un po più complicato degli altri.
Mi succede questo:
Ho realizzato due cartelle di EXCEL (una di prova e una definitiva).
Nel file di prova funziona tutto perfettamente, in quello definitivo no, e vorrei riuscire a capire dov’è lo scalino.
Il problema è quello di generare una sequenza di celle nate da alcune variabili.
Mi spiego meglio: nella cartella ufficiale ho realizzato il primo foglio (base) con la logica di avere una sorta di cruscotto dove vengono imputati dei valori e richiamati altri da tabelle presenti nella stessa cartella ma da altri fogli (richiamo di codici da elenchi a discesa).
Questi valori grazie alle formule applicate mi vanno a generare una sequenza di celle nel foglio “DATI”; le celle coprono il range che va da A1 a E10000, anche se dalle prove fatte non dovremmo superare le 20 valorizzazioni per colonna.
Queste colonne devono andare a realizzare un tabellone composto da tutti gli elementi delle prime colonne.
Es.
A B C D E
1 AZ 2 WL KH 5
2 aZ 4 10
3 6 15
4
per arrivare ad ottenere il tabellone cosi composto

AZ 2 WL KH 5
AZ 2 WL KH 10
AZ 2 WL KH 15
AZ 4 WL KH 5
AZ 4 WL KH 10
AZ 4 WL KH 15
AZ 6 WL KH 5
AZ 6 WL KH 10
AZ 6 WL KH 15
aZ 2 WL KH 5
aZ 2 WL KH 10
aZ 2 WL KH 15
aZ 4 WL KH 5
aZ 4 WL KH 10
aZ 4 WL KH 15
aZ 6 WL KH 5
aZ 6 WL KH 10
aZ 6 WL KH 15

Il problema è che nella cartella di prova funziona perfettamente, nella cartella ufficiale anche se i valori sono i medesimi mi considera le 5000 celle per ogni colonna anche se vuote.
Sapete darmi una drittona?

questa è la mia macro:
Sub Macro1()
Sheets("Foglio3").Select
'ASSEGNAZIONE VALORE ALLE VARIABILI
With ThisWorkbook
Set sh1 = .Worksheets("Foglio3")
Set sh2 = .Worksheets("Foglio1")
End With
'COPIA CELLE(CONTENUTO) TRA FOGLI
With sh1
.Range("A4:E15000").Copy
sh2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With

Sheets("Foglio1").Select

Dim lastRowA As Long, lastRowB As Long, lastRowC As Long, lastRowD As Long, lastRowE As Long, row As Long
'Clear colonne
Worksheets("Foglio1").Columns(10).ClearContents
Worksheets("Foglio1").Columns(11).ClearContents
Worksheets("Foglio1").Columns(12).ClearContents
Worksheets("Foglio1").Columns(13).ClearContents
Worksheets("Foglio1").Columns(14).ClearContents
'Calcolo range
lastRowA = Range("A" & Rows.Count).End(xlUp).row
lastRowB = Range("B" & Rows.Count).End(xlUp).row
lastRowC = Range("C" & Rows.Count).End(xlUp).row
lastRowD = Range("D" & Rows.Count).End(xlUp).row
lastRowE = Range("E" & Rows.Count).End(xlUp).row
'Generazione prodotto
row = 1
For i = 1 To lastRowA
For j = 1 To lastRowB
For k = 1 To lastRowC
For w = 1 To lastRowD
For r = 1 To lastRowE
Worksheets("Foglio1").Cells(row, 10) = Cells(i, 1)
Worksheets("Foglio1").Cells(row, 11) = Cells(j, 2)
Worksheets("Foglio1").Cells(row, 12) = Cells(k, 3)
Worksheets("Foglio1").Cells(row, 13) = Cells(w, 4)
Worksheets("Foglio1").Cells(row, 14) = Cells(r, 5)
row = row + 1
Next
Next
Next
Next
Next

Sheets("Foglio3").Select

End Sub