Allora io propongo di procedere in questo modo:
1)-Nel file RIEPILOGO crei un foglio “Analitico” che sara’ popolato con i dati prelevati dai singoli Modelli. Intesti su riga 1 la colonna A con ”Nominativo” e la B con “Data”.
2)-Per importare i dati useremo la seguente macro, che inserirai su Modulo2 del vba:
- Codice: Seleziona tutto
Sub popola()
ThisWorkbook.Activate
Sheets("Analitico").Select
Imp_Da = "Modello.xls" ‘<<<<<--- CAMBIARE SE NECESSARIO
'Summary_Wb = ActiveWindow.Caption
Windows(Imp_Da).Activate
Range("A1").End(xlDown).Select
Data_Mod = Selection.Value
Selection.End(xlDown).Select
Prima_Riga = Selection.Row
Last_Row = Range("A65536").End(xlUp).Row
For I = Prima_Riga - 1 To Last_Row
Application.ScreenUpdating = False
Windows(Imp_Da).Activate
C_val = Range("A1").Offset(I, 0).Value & " - " & Range("A1").Offset(I, 3).Value ‘<<<<< Vedi NOTA
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
ActiveCell.Value = C_val
ActiveCell.Offset(0, 1).Value = Data_Mod
Next I
Application.ScreenUpdating = True
Sheets("Riepilogo").Select
ActiveSheet.PivotTables("Tabella_pivot1").PivotCache.Refresh
End Sub
Eventualmente assegna un tasto di scelta rapida alla macro.
NOTA: la macro riportera’ sul file RIEPILOGO.xls, nel foglio Analitico, i nominativi in formato “Nome – Cognome”; se si preferisce il formato “Cognome – Nome” modificare l’ istruzione evidenziata in
- Codice: Seleziona tutto
C_val = Range("A1").Offset(I, 3).Value & " - " & Range("A1").Offset(I, 0).Value
3)-Apri il file Modello e lancia la macro Popola(); la macro andra’ in errore alla fine perche’ non c’ e’ ancora la tabella pivot: dai Fine per terminare.
4)-Pulisci completamente il foglio Riepilogo del file RIEPILOGO.xls
5)-Vai sul foglio Analitico, seleziona le colonne A:B, e attiva un Rapporto tabella pivot; come layout sceglierai:
>nell’ area Righe: Nominativo
>nell’ area Colonne: Data
>nell’ area Dati: “Conteggio di” Data
>Chiudi il layout con Ok
>Scegli di generare la tabella sul foglio Riepilogo, a partire dalla cella C3; termina con Ok.
6)-Clicca col tasto dx nella tabella, seleziona “Opzioni tabella”, togli la spunta alle voci “Totali complessivi per colonne” e idem “per righe”, togli anche la spunta a “Salva i dati con il layout della tabella” e mettila su “Aggiorna all’ apertura”. Chiudi con Ok.
A questo punto dovrebbe aver calcolato le occorrenze di ogni nominativo sotto la colonna Data, e la tabella sara’ aggiornata man mano che nei giorni successivi altri elenchi verranno importati; per vedere l’ effetto, puoi ripetere piu’ volte l’ importazione da macro dello stesso file, cambiando a mano la data del foglio Modello, a simulare piu’ giorni di dati.
Nelle colonne A e B calcoleremo Somma presenza e Totale giorni; poiche’ il primo nominativo dovrebbe essere in C5, scriveremo in A5 la formula
- Codice: Seleziona tutto
=SE(C5="";"";SOMMA(D5:IV5))
e in B5
- Codice: Seleziona tutto
=SE(C5="";"";CONTA.SE(D5:IV5;">0"))
Copia queste due formule e incollale in verticale per un numero sufficiente di righe, tenendone qualcuna di riserva.
Inserisci i titoli di colonna A e B e se vuoi abbellisci con le fincature.
Per assicurarsi che le date uscirano in ordine crescente, attiva la visualizzazione del layout, poi doppioclick sulla voce Data (nell’ area Colonne), scegliere “Avanzate”, scegliere “Crescente” e come Campo da utilizzare seleziona Data; chiudi con Ok, Ok; se vuoi, ripeti l’ operazione per ordinare anche i Nominativi in ordine crescente.
Cosi’ ti puo’ andare?
Ciao.