Ciao osvaldino e benvenuto nel forum.
Puoi ottenere quasi tutto da solo, vediamo come.
Salva il file che ricevi dal gestionale con un nome fisso, diciamo PIPPO.xls
Supponiamo che il secondo file si chiami Riepilogo.xls
Nel file Riepilogo, occupa la riga 1 con i titoli di colonna, poi in una colonna libera (diciamo la N), inserisci questa formula in N1 (partire da N1 serve per la macro successiva):
- Codice: Seleziona tutto
=SE(A1="";"";CONTA.SE('[PIPPO.xls]Foglio1'!$A:$A;A1))
copia poi questa formula verso il basso per tutte le righe gia’ presenti in Riepilogo.
In questo modo potrai contare quante volte quel Cod. Articolo e’ presente nel file Pippo.
Applica il filtro automatico alla colonna N (Seleziona tutta la colonna, poi Menu /Dati /Filtro /Filtro automatico); clicca sulla freccina che compare su N1, scegli Personalizza, come criterio scegli “diverso da” e come valore scrivi 0 (se sei sicuro che nel file PIPPO non sia possibile avere 2 volte lo stesso Cod Articolo puoi anche scegliere “Uguale a” 1); completa con Ok.
A questo punto vedi tutte le righe di Riepilogo che esistono nel file Pippo, e da quello che hai detto le devi eliminare: seleziona tutte le righe, poi Menu /Modifica /Elimina righe.
Togli il filtro (Menu /Dati /Filtro /Mostra tutto.
Vai sul foglio Pippo, seleziona e copia le celle dei dati; vai sul foglio Riepilogo in coda ai dati presenti, e fai Menu /Modifica /Incolla speciale, spunta “Valori” completi con Ok; infine copia la formula di colonna N dall’ ultima riga che la contiene fino alla fine dei nuovi dati.
Quando riceverai il prossimo file dal gestionale, lo salvi col nome PIPPO (sovrascrivendo il vecchio) e ripeti l’ operazione, dall’ applicazione del filto in avanti.
Se vuoi automatizzare, lo fai con una macro autoregistrata:
- file Riepilogo e Pippo gia’ aperti; Pippo foglio attivo
- formula in col N gia’ inserita
-avvii la registrazione di una macro tramite Menu /Strumenti /Macro /Registra nuova macro; lasci il nome che ti propone, imposti come “tasto di scelta rapida” R (maiuscolo, R come Riepilogo), avvii con Ok.
-a questo punto:
--selezioni Riepilogo
--esegui passo dopo passo le istruzioni date, e cioe’
---imposti il filtro su N1
---selezioni tutte le righe con dati piu’ la successiva bianca
---elimini le righe
---togli il filtro
---vai sul foglio Pippo
---selezioni tutte le celle con dati e le copi
---vai sul foglio Riepilogo
---selezioni la prima cella libera di col A, dopo i dati presenti
---fai Incolla-speciale/valori, premi Escare
--fermi la registrazione con Menu /Strumenti /Macro /Interrompi registrazione
A questo punto devi fare alcune modifiche al codice della macro:
-fai Menu /Strumenti /Macro /Macro; scegli il nome della macro registrata e premi Modifica; ti si apre l’ editor delle macro.
-cerca l’ istruzione Windows("pippo.xls").Activate; l’ istruzione successiva dovrebbe essere qualcosa tipo Range("A1:G36").Select, dove A1:G36 sono il tuo range selezionato, da incollare su Riepilogo.
-sostituisci questa istruzione con
- Codice: Seleziona tutto
Range(Range("A1"), Range("G65536").End(xlUp)).Select
--se riga 1 contiene i titoli (da non portare su Riepilogo), il range iniziale sarebbe stato A2:G36, e nella formula da sostituire userai analogamente A2 al posto di A1; se l’ ultima colonna non e’ G, usa il suo vero valore al posto di G65536 (es “F65536” per colonna F)
- cerca l’ istruzione Windows("Riepilogo.xls").Activate; l’ istruzione successiva dovrebbe essere qualcosa tipo Range("A1000").Select, dove A1000 e’ la cella libera su cui hai incollato i dati provenienti da Pippo
-sostituisci l’ istruzione Range("A1000").Select con
- Codice: Seleziona tutto
Range("A65536").End(xlUp)).offset(1,0).Select
-vai in fondo, e subito prima di End Sub inserici queste:
- Codice: Seleziona tutto
LR = Range("A65536").End(xlUp).Row
Range("N1").Copy Destination:=Range(Range("N2"), Range("N2").Offset(LR, 0))
That’s all
Puoi subito collaudare la procedura, tornado su excel e premendo Contr-Maiusc-r, che dovrebbe far partire la macro.
Come sempre, prima di fare esperimenti fai 2 COPIE di BACKUP dei tuoi file.
Ciao, fai sapere.