Macro copia dati a blocchi
Hai un problema con Excel? 
Macro copia dati a blocchi
di Pascà60 (utente non iscritto) data: 19/02/2015 12:53:42
Buon giorno a tutti. Premetto che non conosco il linguaggio VBA e che quando mi serve una macro la creo con il registratore di Excel 2010.
Ho necessità di copiare dei dati a blocchi (Range D12:G18, D21:G27, D30:G34 e così via) da un file ad un altro sempre nelle stesse celle (D12:G18, D21:G27, ecc.). Mentre le colonne sono sempre 4 da D a G, le righe che compongono ogni blocco variano da 1 a più di 40. I blocchi sono più di 80 ed i dati sono il risultato di sommatorie, quindi devo fare copia ed incolla valori.
Sono riuscito a creare, con il registratore di Excel e poi adattandola, una Macro (vedi codice allegato) con un pulsante. Il problema è che, oltre ad essere molto lunga, quando variano alcuni blocchi, per l’aggiunta o l’eliminazione di righe, sono costretto a variare tutti i riferimenti della macro, vanificandone l’utilità.
E’ possibile un aiuto per sfoltirla e per una manutenzione futura più comoda e veloce?
In una vecchia discussione, che non sono riuscito a ritrovare, qualcuno scrisse (non ricordo se Vecchio Frac o MisterX) che per copiare un Range non era necessario selezionarlo. Come si fa?
Allego il file da cui copio i dati (foglio Impieghi)
Range("D12:G18").Select
Selection.Copy
Windows("gte.xls").Activate
Range("D12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Totale II.xls").Activate
Range("D21:G27").Select
Selection.Copy
Windows("gte.xls").Activate
Range("D21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Totale II.xls").Activate
Range("D30:G34").Select
Selection.Copy
Windows("gte.xls").Activate
Range("D30").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
"e così via per tutti gli altri blocchi da copiare". |
di Pascà60 (utente non iscritto) data: 19/02/2015 12:57:48
Non riesco ad allegare il file. Sul computer dell'ufficio non ho un programma per zipparlo.
di Pascà60 (utente non iscritto) data: 19/02/2015 15:41:42
Salve ragazzi, sono riuscito ad allegare il file snellendolo un pò. Se qualcuno volesse darci un'occhiata.
Grazie a tutti e buona serata.
Pascà.
di lepat (utente non iscritto) data: 19/02/2015 16:20:18
si fa così, ma non risparmi molto a meno che tu non trovi una regola per far variare gli indici in un for
Range("D12:G18").Copy
Windows("gte.xls").Activate
Range("D12").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Totale II.xls").Activate
Range("D21:G27").Copy
Windows("gte.xls").Activate
Range("D21").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Totale II.xls").Activate
Range("D30:G34").Copy
Windows("gte.xls").Activate
Range("D30").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False |
Vuoi Approfondire?