Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
La macro è stata registrata manualmente copiando cella per cella da quella che mi interessava del foglio1 a quella di destinazione nel foglio2
su visualbase la vedo così
...
Ciao Federico,
il problema delle macro ottenute con il registratore di macro è la 'staticità' e la complessità nell'intervenire per renderle dinamiche. Come, ad esempio, fare in modo che non incolli le celle copiate sempre nella riga 17 ma su una riga diversa mano a mano che sono aggiunte nuove righe.
Ti suggerisco qualche modifica per rendere il codice più snello, prima di aggiungere la riga variabile:
- duplica la tua macro e chiamala con un altro nome, su quest'ultima andrai a fare le modifiche;
- cancella tutte le righe che iniziano con ActiveWindow.ScrollColumn, che sono assolutamente inutili,
- la copia avviene a gruppi di due celle, quindi separa con una riga bianca i vari blocchi di copia (solo per chiarezza), dopodiché:
questo gruppo di righe (che copia il range da B2:C2 del foglio MASCHERA in A17:C17 del Foglio1:
Sheets("MASCHERA INPUT").Select
Range("B2:C2").Select
Selection.Copy
Sheets("Foglio1").Select
Range("A17:B17").Select
ActiveSheet.Paste
può essere tranquillamente sostituito da questa riga:
Sheets("MASCHERA INPUT").Range("B2:C2").Copy Sheets("Foglio1").Range("A17:B17")
e così anche:
Sheets("MASCHERA INPUT").Select
Range("B8:C8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio1").Select
Range("C17:D17").Select
ActiveSheet.Paste
con
Sheets("MASCHERA INPUT").Range("B8:C8").Copy Sheets("Foglio1").Range("C17:D17")
e così via per tutti gli altri blocchi simili.
Se hai dei dubbi, prima di procedere, puoi verificare il funzionamento con una macro separata, ad esempio così:
Sub SalvaNuovo()
Sheets("MASCHERA INPUT").Range("B2:C2").Copy Sheets("Foglio1").Range("A17:B17")
Sheets("MASCHERA INPUT").Range("B8:C8").Copy Sheets("Foglio1").Range("C17:D17")
End Sub
Se ti va, quando hai terminato, puoi postare la nuova macro ottenuta, per lo step successivo.
Andrea.