Credo di avere un problema piuttosto semplice per chi conosce VBA, non per me che ne sono all'oscuro.
Il mio obiettivo è il seguente:
- copiare gruppi di 100 righe alla volta presenti nel foglio [DB]
- incollarli nel foglio [DB-macro]
-> a questo punto un modello excel calcola dei risultati sulla base di questi valori ed elabora dei risultati
- copiare i 100 risultati elaborati nel foglio [sub-output]
Ho impostato una prima macro per fare questi passaggi. La macro che ho impostato ragiona una riga alla volta (copio la macro al termine del posto). Vorrei capire come evitare di fare una riga alla volta, ma fare 100 righe alla volta. Chiaramente al primo giro la macro deve prendere le prime 100 righe, al secondo giro le seconde 100 righe, al terzo giro le terze 100 righe e via così.
Nello specifico, i due problemi che non riesco a risolvere sono:
- come copiare più di una riga alla volta
- come impostare il "next r" in modo che non vada al "next r", ma al "next r + 100" (altrimenti invece che copiare 0-100, 101-200, 201-300 mi ritrovo a copiare 0-100, 1-101, 2-102, ...)
Ecco la macro che ho sviluppato:
- Codice: Seleziona tutto
Sub Macro3()
'
' Macro3 Macro
'
For r = 7 To 100
Sheets("DB").Activate
Cells(r, 1).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("DB-macro").Activate
Range("A7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Sheets("Engine-I").Activate
Range("A7:C7").Select
Selection.Copy
Sheets("Sub-output").Activate
Cells(r, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Sheets("Engine-I").Activate
Range("S7:BA7").Select
Selection.Copy
Sheets("Sub-output").Activate
Cells(r, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Next r
End Sub
Grazie mille!!!
andrea
Per favore usare i tag Code sul listato di una macro: selezionare il testo, premere Code.
Anthony