Mi pare che devi riempire di formule tutte le righe che hanno un contenuto in colonna A; per calcolare l' ultima riga di colonna A vanno bene tutte le istruzioni che ti sono state presentate, es:
- Codice: Seleziona tutto
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
Poi invece di
Selection.AutoFill Destination:=Range("B2:B140") metterai
- Codice: Seleziona tutto
Selection.AutoFill Destination:=Range("B2:B" & UR)
Ti avevo detto di possibili semlificazioni al codice della precedente macro...
Con riferimento al tuo listato, immagino che al momento della tua Range("A2").Select il foglio attivo sia Foglio3.
Allora, invece di
Range("A2").Select
Sheets("Foglio1").Select
Range("D2:D140").Select
Selection.Copy
Sheets("Foglio3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=FalsePuoi usare direttamente
- Codice: Seleziona tutto
Sheets("Foglio1").Range("D2:D140").Copy
Sheets("Foglio3").Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Mentre gli step successivi possono diventare
- Codice: Seleziona tutto
Sheets("Foglio1").Range("F2:F140").Copy Destination:=Sheets("Foglio3").Range("C2")
Sheets("Foglio1").Range("E2:E140").Copy Destination:=Sheets("Foglio3").Range("D2")
Lascio a te indovinare come articolare la copia di G2:G140.
La controindicazione di queste abbreviazioni e' una minore semplicita' di debugging, in quanto procedendo eventualmente in passo-passo (con F8) non vedi i passi intermedi ma solo l' esito finale.
Se Foglio3 e' il foglio attivo al momento della macro (cosa che puoi ottenere con Sheets("Foglio3").Select allora specificare "Foglio3" nella macro puo' essere superfluo, quindi ad esempio puoi scrivere direttamente
Destination:=Range("D2")Ciao