Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 19-02-2016, 23.48.13   #1
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
VBA XL: Filtra, copia, incolla su fogli multipli

Buongiorno a tutti,
da neofita di VBA mi sto arrovellando da settimane per creare un codice che mi permetta di fare quanto esporrò, ma ahimè senza venirne fuori.
Sicuramente saprete facilmente risolvermi la questione, grazie in anticio.
Foglio 1 origine,seleziona rng D3:H(ultima cella valorizzata tra riga 3 e riga 2500)
filtra D3 criterio "a", seleziona rng D3:H(ultima cella valorizzata tra riga 3 e riga 450) e copia valori e incolla su foglio(a) in B3.
Mostra tutti i dati su foglio 1.
Ripetere il ciclo di operazioni per foglio(b) con filtro sempre in d3, criterio "b" (stessi range).
E così via fino al foglio X.
Per i fogli Y e z invece...
Foglio 1 origine,seleziona rng D3:H(ultima cella valorizzata tra riga 3 e riga 2500)
filtra D3 criterio1 "y" end campo G3 criterio2 "prima riga valorizzata in rangeK1:K13 di foglio1", seleziona rng D3:H(ultima cella valorizzata tra riga 3 e riga 55) e copia valori e incolla su foglio(y) in B3.
ripetere operazione precedente con criterio2 del filtro "seconda riga valorizzatarangeK1:K13 di foglio1"
...
copia valori e incolla su folgio(y) in B60.
Ripetere con terza riga e incolla su folgio(y) in B120 e così via fino all'ultima cella valorizzata del range di righe (circa una dozzina)
.
Idem per il foglio(z).

Nota di colore: colonne origine del foglio 1 e tutti i fogli destinazione sono protetti!
Vi ringrazio della disponibilità e dell'aiuto.
Giulio
ziousso non è collegato   Rispondi citando
Vecchio 20-02-2016, 00.22.40   #2
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

Dimenticavo...
per tutte le operazione di filtro, oltre ai criteri già espressi, necessita che ci sia sempre anche un criterio di ordine crescente nel campo E.
ziousso non è collegato   Rispondi citando
Vecchio 20-02-2016, 11.16.31   #3
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

io non ho capito cosa devi fare. potresti postare un file di esempio?
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 27-02-2016, 12.23.53   #4
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Bollino rosso Rif: VBA XL: Filtra, copia, incolla su fogli multipli

Ecco il file, ho provato a scrivere il codice su modulo 2 sub calcola, però mi sembra lentissimo e non proprio corretto. il file allegato ha formule e riferimenti solo per 120 righe nel foglio CLC (quello originale invece ne ha per 2500 righe)
Provo a rispiegarmi:
in sostanza vorrei automatizzare un filtro ordinato in questo modo:
foglio di origine dei dati: CLC
colonna C contiene riferimenti, quindi ho pensato di copiarla e incollarne solo i valori in colonna D per scongiurare eventuale malfunzionamento del filtro.
ciclo:
filtrare colonne dalla D alla I tra le righe 3 e l'ultima compilata rispetto alla colonna D ma con massimo riga 2500 (ovvero se vi sono valori nelle righe dalla 3 alla 200 e poi valori dalla 2501 alla 2503, filrtri solo righe dalla 3 alla 200); criteri del filtro: colonna D contenente il valore "a", ordine crescente rispetto alla colonna E.
Copia del range così filtrato, ovvero: I3(ultima riga contenente valori nell'intervallo riga3:riga600).
Incolla valori nel foglio "a" a partire dalla cella B5 (ad esempio).
Mostrare tutti i valori nel foglio CLC.
Ripetere il ciclo filtro/copia/incolla con criterio "b" invece che "a" e copia su foglio relativo ("b"), e così via per tutti i fogli con lettere dell'alfabeto fino alla lettera "x".
Per i fogli "y" e "z" invece introdurre un criterio sullo stesso modello di quello sopra descritto, ma che preveda anche un filtro su colonna G ovvero: filtrare colonne dalla D alla I tra le righe 3 e l'ultima compilata rispetto es. alla colonna D ma con massimo riga 2500 (ovvero se vi sono valori nelle righe dalla 3 alla 200 e poi valori dalla 2501 alla 2503, filrtri solo righe dalla 3 alla 200); criteri del filtro: colonna D contenente il valore "y", colonna G contenente un valore t variabile (sotto descritto), ordine crescente rispetto alla colonna E.
La variabile t prende il valore dal foglio "nomenclatura" alla colonna k passando dalla prima cella valorizzata del range K3:k18 fino all'ultima valorizzata. il filtrato ottenuto di volta in volta (criterio "y" colonna D, criterio t colonna G, ordine crescente rispetto a colonna E, viene copiato ... Copia del range così filtrato, ovvero: I3(ultima riga contenente valori nell'intervallo riga3:riga55).
Incolla valori nel foglio "y" a partire dalla cella B5 (ad esempio) per il primo valore preso da t .
Mostrare tutti i valori nel foglio CLC.
Ripetere il filtro con criterio2 su colonna G contenete il secondo valore preso dalla variabile t e Incolla valori nel foglio "y" a partire dalla cella B60 (ad esempio) per tale secondo valore.
Ripetere così il ciclo fino all'ultimo valore preso da t incollando di volta in volta su foglio "y" colonna B e riga incrementata di 60 ad ogni nuovo valore assunto da t . Terminato ultimo valore per t (valore dell'ultima cella valorizzata dell'intervallo k3:k18 del foglio "nomenclatura", mostrare tutti i valori nel foglio CLC.
Ripetere quanto fatto per il foglio "y" anche per il foglio "z".
...

Un pò arzigogolato, ma spero si capisca.
Files allegati
Tipo file: rar contab10 - x forum.rar (200,6 Kb, 5 visite)
ziousso non è collegato   Rispondi citando
Vecchio 27-02-2016, 12.27.16   #5
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

si è inserito uno smile x errore, riscrivo...


Ecco il file, ho provato a scrivere il codice su modulo 2 sub calcola, però mi sembra lentissimo e non proprio corretto. il file allegato ha formule e riferimenti solo per 120 righe nel foglio CLC (quello originale invece ne ha per 2500 righe)
Provo a rispiegarmi:
in sostanza vorrei automatizzare un filtro ordinato in questo modo:
foglio di origine dei dati: CLC
colonna C contiene riferimenti, quindi ho pensato di copiarla e incollarne solo i valori in colonna D per scongiurare eventuale malfunzionamento del filtro.
ciclo:
filtrare colonne dalla D alla I tra le righe 3 e l'ultima compilata rispetto alla colonna D ma con massimo riga 2500 (ovvero se vi sono valori nelle righe dalla 3 alla 200 e poi valori dalla 2501 alla 2503, filrtri solo righe dalla 3 alla 200); criteri del filtro: colonna D contenente il valore "a", ordine crescente rispetto alla colonna E.
Copia del range così filtrato, ovvero: I3 : D (ultima riga contenente valori nell'intervallo riga3:riga600).
Incolla valori nel foglio "a" a partire dalla cella B5 (ad esempio).
Mostrare tutti i valori nel foglio CLC.
Ripetere il ciclo filtro/copia/incolla con criterio "b" invece che "a" e copia su foglio relativo ("b"), e così via per tutti i fogli con lettere dell'alfabeto fino alla lettera "x".
Per i fogli "y" e "z" invece introdurre un criterio sullo stesso modello di quello sopra descritto, ma che preveda anche un filtro su colonna G ovvero: filtrare colonne dalla D alla I tra le righe 3 e l'ultima compilata rispetto es. alla colonna D ma con massimo riga 2500 (ovvero se vi sono valori nelle righe dalla 3 alla 200 e poi valori dalla 2501 alla 2503, filrtri solo righe dalla 3 alla 200); criteri del filtro: colonna D contenente il valore "y", colonna G contenente un valore t variabile (sotto descritto), ordine crescente rispetto alla colonna E.
La variabile t prende il valore dal foglio "nomenclatura" alla colonna k passando dalla prima cella valorizzata del range K3:k18 fino all'ultima valorizzata. il filtrato ottenuto di volta in volta (criterio "y" colonna D, criterio t colonna G, ordine crescente rispetto a colonna E, viene copiato ... Copia del range così filtrato, ovvero: I3 : D (ultima riga contenente valori nell'intervallo riga3:riga55).
Incolla valori nel foglio "y" a partire dalla cella B5 (ad esempio) per il primo valore preso da t .
Mostrare tutti i valori nel foglio CLC.
Ripetere il filtro con criterio2 su colonna G contenete il secondo valore preso dalla variabile t e Incolla valori nel foglio "y" a partire dalla cella B60 (ad esempio) per tale secondo valore.
Ripetere così il ciclo fino all'ultimo valore preso da t incollando di volta in volta su foglio "y" colonna B e riga incrementata di 60 ad ogni nuovo valore assunto da t . Terminato ultimo valore per t (valore dell'ultima cella valorizzata dell'intervallo k3:k18 del foglio "nomenclatura", mostrare tutti i valori nel foglio CLC.
Ripetere quanto fatto per il foglio "y" anche per il foglio "z".
...

Un pò arzigogolato, ma spero si capisca.
ziousso non è collegato   Rispondi citando
Vecchio 27-02-2016, 21.20.41   #6
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

Da come è esposto a me sembra un rompicapo, mi piacerebbe sapere a cosa serve questo file.

in pratica vuoi copiare tutti i dati con lo stesso indice contenuto nella colonna D dalla riga 3 alla riga 200 nel foglio che ha lo stesso nome dell'indice
Inoltre per 2 fogli ripeti quanto sopra e se sono presenti dei dati dalla riga 2501 alla 2503 copi anche questi valori nel foglio che ha lo stesso nome dell'indice

Perchè un filtro? io prima ordinerei tutti i dati in base all'indice della colonna D e poi userei un cerca per copiare i vari dati

Una volta copiati i dati nei vari fogli si deve svuotare il foglio CLC?
nei vari fogli i dati vanno incollati nella prima riga libera oppure si deve svuotare anche questi fogli prima di eseguire la copia?
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 29-02-2016, 00.29.39   #7
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

eh eh...
un rompicapo si!!
Allora...
Forse con ordina e poi cerca si ottiene più agevolmente il risultato, come dici tu.
No il foglio CLC non deve essere svuotato!
Nemmeno i foglio a-z.
In sostanza ecco a cosa serve il file, descrivo così magari mi proporrai una soluzione più semplice:
il foglio immissione serve ad immettere voci di spesa; è non protetto.
il foglio CLC serve a definire per ciascuna voce di spesa (riga) la relativa categoria di bilancio a cui appartiene in base all'elenco =nomenclatura!E11:E36; il foglio è protetto con pw, pensavo ad una macro per sbloccare con altra pw solo le colonne A e B (necessarie all'immissione della categoria)
i fogli a-z sono le categorie di bilancio con tutte le spese suddivise; rigorosamente protetti
infine pensavo ad una macro per nascondere le righe vuote nei fogli a-z
Che ne pensi?
Le voci di spesa devono essere sempre editabili dal foglio immissione e ridefinibili dal foglio CLC, cosicché pensavo ad un pulsante che ripetesse il ciclo filtra/copia/incolla x tutti i fogli a-z sovrascrivendo i dati già presenti ad ogni lancio (forse però è meglio prima uno svuotamento come dici tu).

ziousso non è collegato   Rispondi citando
Vecchio 29-02-2016, 09.04.18   #8
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

ziousso non è collegato   Rispondi citando
Vecchio 29-02-2016, 09.09.57   #9
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

ziousso non è collegato   Rispondi citando
Vecchio 29-02-2016, 21.44.11   #10
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

secondo me c'è qualche problema
Se tu non svuoti il foglio CLC continui a riscrivere gli stessi dati negli altri fogli. Mi spiego meglio.
Se tu hai 10 righe compilate nel foglio CLC e inserisci altre righe, quando le trasferisci nei relativi fogli ti porti dietro anche quelle che erano già presenti.

Potresti si usare una cella per inserire un flag che quel movimento è già stato registrato, ma il livello di errore umano è molto elevato, e non sarebbe il caso di correre questi rischi quando parliamo di contabilità.

A mio avviso puoi usare il foglio CLC come fai adesso, ma quando salvi i dati e li trasferisci nei relativi fogli io svuoterei il foglio, oppure puoi eliminare il foglio CLC ed usare una Userform con i campi che ti interessano e quando archivi i dati si svuotano tutti.

prova a fare delle considerazioni in merito e poi vediamo come fare
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 03-03-2016, 13.41.28   #11
ziousso
Newbie
 
Registrato: 19-02-2016
Loc.: Venezia
Messaggi: 8
ziousso promette bene
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

L'operazione che ho pensato io dovrebbe ad ogni avvio svolgere la serie di operazioni per tutte le righe compilate in CLC, sovrascrivendo (o meglio, cancellando le presenti e scrivendo quelle nuove) quelle esistenti sui fogli destinazione ovvero a-z.
Lasciando tutte le righe compilate in CLC (che riferiscono ad !immissione per una parte di colonne e per l'altra sono compilate nello stesso foglio CLC) è possibile vederle, editarle, ... e sopratutto ordinarle in fase di filtro.
Potrebbe essere necessario inserire una voce con data precedente a quelle già processate e che deve essere inserita prima di queste.
Per questo ho pensato ad una ripetizione in toto del processo.
Esempio: dopo aver inserito ad esempio al 30 dicembre, 1400 voci di spesa e processate durante tutto l'anno, potrebbe capitare di dover inserire una spesa con data 7 gennaio, a questo punto la inserirei in coda in !immissioni, in foglio CLC definirei la voce di bilancio (esempio relativa al capitolo f) e lancerei la procedura che la colloca nel foglio f in ordine di data, con tutte le altre dell'anno.
Che ne pensi,
Da esperta...
E' folle?
___________________________________

Proiezione mentale del mio io digitale
ziousso non è collegato   Rispondi citando
Vecchio 03-03-2016, 16.28.24   #12
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: VBA XL: Filtra, copia, incolla su fogli multipli

Questa operazione mi sembra un po' strana sia dal punto di vista contabile che della programmazione.

Da come hai strutturato il tutto a mio avviso ti interessa avere un riepilogo delle spese suddivise per conto, ma a livello di programmazione hai reso le cose abbastanza ingarbugliate. Se il tuo obbiettivo è quello sopra scritto io farei una cosa del genere.

1) Un foglio (Inserimento) per inserire le varie spese
2) Un foglio (Archivio) in cui archiviare i dati

Il foglio inserimento sarà simile al tuo CLC in cui inserisci i dati e una volta compilati tramite un pulsante li memorizzi nel foglio Archivio. Fatta questa operazione svuoti il foglio Inserimento di tutti i dati.
Questa operazione la puoi svolgere anche tramite Userfom senza usare un foglio, il procedimento è uguale.

ora se tu vuoi consultare i dati memorizzati si deve solo avviare una ricerca nel foglio Archivio e caricare i dati che soddisfano i parametri di ricerca nel foglio Inserimento in modo da poterli visionare, stampare e fare le tue considerazioni.
I parametri di ricerca verranno inseriti in una Userform in cui ci sarà il periodo di interesse (dalla data .... alla data ....) il conto economico etc.. poi tramite un pulsante si avvia la ricerca e i dati verranno caricati nel foglio inserimento.

Se vuoi editare un dato lo puoi fare ma tramite Userform, tutti i fogli saranno protetti per evitare cancellazioni accidentali.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Copia e incolla che non va! luca2 Windows 7/Vista/XP/ 2003 11 05-12-2008 18.11.49
Excel: evitare virgolette con il copia incolla all'esterno? ghisirds Office suite 2 10-05-2007 23.41.42
[XP Pro] Non fa copia incolla e altro ^F117^ Windows 7/Vista/XP/ 2003 0 15-07-2006 10.48.43
FIREFOX E IL COPIA E INCOLLA? kirk Software applicativo 8 05-09-2005 13.18.00
copia & incolla SPARITI TiTTi Windows 9x/Me/NT4/2000 9 14-09-2003 13.44.29

Orario GMT +2. Ora sono le: 00.22.24.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.