| | Post: 38 | Registrato il: 30/06/2016
| Città: MILANO | Età: 48 | Utente Junior | 2013 | | OFFLINE | |
|
14/11/2017 13:17 | |
ciao, ho un problemino con una macro, che allego.
devo copiare il contenuto (filtrato) di due fogli, in un terzo foglio. ma non riesco ad escludere i filtri.
mi spiego meglio allegando il foglio con esempio. qualcuno saprebbe darmi un suggerimento ?
grazie
Claudio |
|
| | Post: 467 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
14/11/2017 15:30 | |
Ciao
ho scaricato il tuo file ma non sono andato oltre (non ho visto in base a quali criteri hai filtrato i due fogli).
Diciamo che, in via puramente teorica, la macro deve fare questo:
Sub COPIA_INCOLLA()
'Cosa occorre sapere prima di iniziare
'a) devo cancellare il contenuto di TDL estero_Italia o devo mettere in coda?
'b) in base a quali criteri ho filtrato gli altri due Foglio (Estero e Italia)
'Dopo che hai questi dati certi continui in questo modo:
' assegni i criteri del primo foglio a delle variabili
' esegui un ciclo per tutte le righe e tutte le colonne del foglio
' quando incontri la congruenza con i criteri
' copi i valori della riga per le colonne interessate
' incolli nel foglio unico i valori copiati (attenzione a incrementare il n. di riga)
' completato il primo foglio inizio col secondo con lo stesso procedimento.
End Sub
Ovviamente la stesura è abbastanza semplice mentre la cosa si complica quando andiamo a realizzarla ma non mi sembra irrealizzabile.
Intanto fai dei tentativi. Poi dovresti precisare quali sono i criteri di filtro per ciascun foglio, quali sono le colonne che vuoi copia/incollare e, principalmente, se i dati devono essere accodati a dei precedenti oppure cancellarli.
Ciao,
Mario |
| | Post: 38 | Registrato il: 30/06/2016
| Città: MILANO | Età: 48 | Utente Junior | 2013 | | OFFLINE | |
|
14/11/2017 15:43 | |
ciao, devo copiare esattamente quello che risulta nei due fogli (tdl01 estero e tdl02 italia così come sono), tutte le colonne valorizzate e tutte le righe valorizzate.
non voglio copiarmi le righe nascoste.
ho provato a fare una macro delete delle righe nascoste ma si appesantisce molto il foglio di lavoro. |
| | Post: 3.555 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
14/11/2017 15:52 | |
Questa cosa che le macro appesantiscono mi giunge nuova. [Modificato da alfrimpa 14/11/2017 15:53]
Alfredo |
| | Post: 468 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
14/11/2017 16:47 | |
Ciao Claudio
Dopo un caro saluto ad Alfredo, ti dico che sono le formule ad appesantire non VBA.
Comunque, prova col seguente codice (è il tuo ma più snello dove ho lasciato i commenti per capire meglio).
Sub copia_incolla()
Set sh1 = Sheets("TDL-01 estero italia")
Set sh2 = Sheets("TDL-01 italia")
Set sh3 = Sheets("TDL-01 estero")
'elimina precedenti
sh1.Select
ActiveSheet.UsedRange.Select
uc = Cells(3, Columns.Count).End(xlToLeft).Column
cn = Chr(uc + 64)
Columns("A:" & cn).Select
Selection.Delete
'copia da Italia
sh2.Select
ActiveSheet.UsedRange.Select
Selection.Copy
'incolla
sh1.Select
sh1.Cells(1, 1).Select
ActiveSheet.Paste
'individua la riga a cui è arrivato
ur = Cells(Rows.Count, 1).End(xlUp).Row
'copia da Estero
sh3.Select
ActiveSheet.UsedRange.Select
Selection.Copy
'incolla
sh1.Select
sh1.Cells(ur, 1).Select
ActiveSheet.Paste
'elimina le 3 righe superflue
sh1.Rows(ur & ":" & ur + 2).Delete
Set sh1 = Nothing
Set sh2 = Nothing
Set sh3 = Nothing
End Sub
Fai sapere. Ciao,
Mario
[Modificato da Marius44 14/11/2017 16:47] |
| | Post: 805 | Registrato il: 24/04/2004
| Città: TERAMO | Età: 63 | Utente Senior | 2010 | | OFFLINE |
|
14/11/2017 17:24 | |
Ciao.
Solamente uno spunto; al posto di Selection.Copy si può usare
Selection.SpecialCells(xlCellTypeVisible).Copy che copia solo le celle visibili del range interessato. __________________________
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya) |
| | Post: 39 | Registrato il: 30/06/2016
| Città: MILANO | Età: 48 | Utente Junior | 2013 | | OFFLINE | |
|
15/11/2017 10:42 | |
Grazie,
Mario è più snello e mi piace di più come hai scritto il tuo codice.
solo una piccola cosa.
quando copio il 2 foglio (copia da estero) e accodo il contenuto dopo l'ultima riga ( delfoglio italia) , in realtà , copia sull'ultima riga.
l'ultima riga del foglio italia è la riga 10, io dovrei copiare il contenuto del foglio estero, partendo dalla riga 11, invece seleziona la riga 10 e sovrascrive, perdo così un record. per il resto poi va bene.
Claudio |
| | Post: 40 | Registrato il: 30/06/2016
| Città: MILANO | Età: 48 | Utente Junior | 2013 | | OFFLINE | |
|
15/11/2017 10:59 | |
ho risolto ( .row + 1 ), grazie a tutti, grazie Mario, sempre molto preciso e disponibile
Claudio |
|
|