Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

macro copia e incolla

Ultimo Aggiornamento: 15/11/2017 10:59
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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:27. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com