Risultati da 1 a 12 di 12

Discussione: Modifica filtri su più fogli contemporaneamente



  1. #1
    L'avatar di rox983
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Montoro (Avellino)
    Età
    34
    Messaggi
    3
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Modifica filtri su più fogli contemporaneamente

    Ragazzi
    Avrei bisogno di un suggerimento.
    Ho creato una cartella Excel per il calcolo presenze operai; ciascun foglio è destinato ad un operaio ed alla fine c’è un riepilogo generale.
    Poiché in ogni foglio ho inserito un filtro per mese vorrei sapere se esiste un modo per cambiare i filtri di tutti i fogli contemporaneamente (selezionando i fogli insieme permette di fare operazioni su tutti i fogli contemporaneamente ma non di modificare tutti i filtri contemporaneamente).
    Dovrei trovare un modo per farlo per due ragioni:
    1. per risparmiare tempo: ogni volta che passa un mese ed entro la prima volta nel foglio di un operaio devo modificare manualmente il mese del filtro
    2. nel riepilogo generale ci sono dei calcoli che sono coerenti solo se in ciascun foglio è filtrato lo stesso mese: selezionare su tutti i fogli contemporaneamente mi permetterebbe di essere certa che i riepiloghi sono giusti senza dover scorrere tutti i fogli
    Spero di essermi spiegata.
    Vi ringrazio anticipatamente.
    Rossella

  2. #2
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buon Pomeriggio, Rossella;
    dopo la figura "barbina" con le Formule nell'ultimo riscontro alla Discussione: :187:
    http://www.forumexcel.it/forum/6-dom...z-della-befana
    per quello che mi è dato sapere, preferirei ricorrere a VBA.

    Prima, però, vorrei capire se questa potrebbe essere una soluzione accettabile per le Tue Necessità.

    In quesro caso, sarebbe gradito un Tuo File, senza dati sensibili, con un paio di Fogli di lavoro e il Riepilogo nel quale specificare il risultato desiderato.

    Sinceramente, non mi è chiaro come nel riepilogo generale ci siano calcoli coerenti solo se in, ciascun Foglio di lavoro, è filtrato lo stesso mese.
    Così come posso interpretare la Tua affermazione, potrebbe essere sufficiente una Funzione nativa di Excel condizionata ad un determinato periodo, ma, ripeto, un File chiarirebbe ogni dubbio.

    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  3. #3
    L'avatar di rox983
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Montoro (Avellino)
    Età
    34
    Messaggi
    3
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie Giuseppe.
    Ecco il file...
    File Allegati File Allegati

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    se non ti propongono altra soluzione ecco quella con VBA
    inserisci Modulo e copia:
    Codice: 
    Sub Macro1()
    Dim iRow As Long
    Dim Domanda As Integer
    
    
    Domanda = InputBox("Scegliere il mese da filtrare", "Scelta mese", Month(Date))
    
    
    Mese = Array("GENNAIO", "FEBBRAIO", "MARZO", "APRILE", "MAGGIO", "GIUGNO", "LUGLIO", "AGOSTO", "SETTEMBRE", "OTTOBRE", "NOVEMBRE", "DICEMBRE")
    
    
    iRow = Foglio1.Range("AB" & Cells.Rows.Count).End(xlUp).Row
       
    On Error GoTo fine
    
    
        Sheets("BIANCHI").Range("$AB$8:$AB$" & iRow).AutoFilter _
            Field:=1, _
            Criteria1:=Mese(Domanda - 1)
        Sheets("ROSSI").Range("$AB$8:$AB$" & iRow).AutoFilter _
            Field:=1, _
            Criteria1:=Mese(Domanda - 1)
        
    fine:
    
    
    End Sub
    eventualmente da collegare a pulsante

  5. #5
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera, Rossella;
    dopo aver preso buona nota di quanto proposto da @ Rubik72 (che saluto), allego la mia proposta.

    Non ho utilizzato Codici VBA; nel Foglio di lavoro "RIEPILOGO", nella Cella "D3", ho utilizzato la Funzione "Convalida dati" tramite la quale è possibile scegliere il Mese da valutare.

    Nei Fogli di lavoro "NomeCollaboratore", ho inserito:
    in Cella "AY2"
    Codice: 
     =SOMMA.PIÙ.SE(AY$12:AY$361;AB$12:AB$361;RIEPILOGO!$D$3)
    Da copiare nelle Celle "AZ2:BB2"

    A margine di quanto sopra, considera che la soluzione proposta permetterebbe, con qualche piccola modifica, di valutare il risultato di più mesi; esempio, trimestre, quadrimestre, semestre.

    A disposizione.

    Buona serata.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao a tutti,
    propongo un'alternativa con le formule in modo che non vengano considerati i filtri nei vari fogli.

    Come Giuseppe (un saluto) anche io ho aggiunto un convalida dati nella cella D3 del Foglio "Riepilogo" per scegliere il mese.
    Mentre nel range D8:D57 c'è un convalida dati per inserire i dipendenti.... La formula nel convalida dati per queste celle è:

    =SCARTO($AT$2;;;CONTA.VALORI($AT$2:$AT$200))

    Le colonne AS e AT si possono nascondere, servono solo per gli elenchi dei convalida dati.

    L'unico problema è che non posso usare un'unica formula (matriciale) da mettere nella cella H8 e copiare poi nel range H8:K57...tipo questa:

    =SE.ERRORE(MATR.SOMMA.PRODOTTO(SE.ERRORE((INDIRETTO($D8&"!$AB$12:$AB$361")=$D$3)*(INDIRETTO(D8&"!"&INDIRIZZO(12;RIF.COLONNA(AY1))&":"&INDIRIZZO(361;RIF.COLONNA(AY1))));""));"")

    non ho ben capito perchè non funzioni. :240:
    Forse dipende dal fatto che la funzione INDIRETTO non accetta i riferimenti variabili su fogli diversi.... mah!!!

    Quindi, si dovrà mettere questa formula (matriciale, quindi da confermare con CTRL+MAIUSC+INVIO) nella cella H8:

    =SE.ERRORE(MATR.SOMMA.PRODOTTO(SE.ERRORE((INDIRETTO($D8&"!$AB$12:$AB$361")=$D$3)*(INDIRETTO($D8&"!
    $AY$12:$AY$361"));""));"")

    questa nella cella I8:

    =SE.ERRORE(MATR.SOMMA.PRODOTTO(SE.ERRORE((INDIRETTO($D8&"!$AB$12:$AB$361")=$D$3)*(INDIRETTO($D8&"!
    $AZ$12:$AZ$361"));""));"")

    questa nella cella J8:

    =SE.ERRORE(MATR.SOMMA.PRODOTTO(SE.ERRORE((INDIRETTO($D8&"!$AB$12:$AB$361")=$D$3)*(INDIRETTO($D8&"!$BA$12:$BA$361"));""));"")

    e questa nella cella K8:

    =SE.ERRORE(MATR.SOMMA.PRODOTTO(SE.ERRORE((INDIRETTO($D8&"!$AB$12:$AB$361")=$D$3)*(INDIRETTO($D8&"!$BB$12:$BB$361"));""));"")

    e dopo copiare il range H8:K8 in basso.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  7. #7
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Cromagno.

    @ cromagno, scrive:
    Forse dipende dal fatto che la funzione INDIRETTO non accetta i riferimenti variabili su fogli diversi.... mah!!!
    Mi sono posto avuto anch'io la stessa domanda.

    Come puoi vedere dall'allegato in Risposta #5, nelle Celle "H8:K57" ho utilizzato la Funzione indiretto; speravo di poter copiare la Formula presente in Cella "H8"
    Codice: 
    =SE($D8<>"";INDIRETTO("'"&$D8&"'!AY$2");"")
    nelle Celle "I8:K8".
    Questo non mi è stato possibile; ho provato diverse alternative, poi, ho desistito e ho preferito modificare "a manina" i riferimenti.

    Sarei veramente curioso di capire se esiste un modo per indicare alla Funzione "Indiretto" di considerare i riferimenti in modo relativo.

    Ho pensato di evitare la Funzione "Filtro", intervenendo direttamente sui Fogli di lavoro "NomeCollaboratore" utilizzando la Funzione:
    - SOMMA.PIÙ.SE
    In questo caso non ho avuto difficoltà a copire la Formula presente in "AY2" nelle Celle "AZ2:BB2".

    Il Range "AY2:BB2" è possibile copiarlo, senza problemi, negli altri Fogli di lavoro "NomeCollaboratore".

    Così facendo ho evitato di utilizzare Formule matriciali, che per mè sono ancora piuttosto ostiche e laboriose da comporre.



    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Sarei veramente curioso di capire se esiste un modo per indicare alla Funzione "Indiretto" di considerare i riferimenti in modo relativo.
    Ciao Giuseppe,
    i riferimenti dinamici li accetta ma solo se sono nello stesso foglio.

    Forse è una conseguenza della limitazione della funzione INDIRETTO al "3D Sheets Reference":
    http://www.excel-easy.com/examples/3d-reference.html

    Ma il motivo proprio non lo saprei spiegare (magari conoscendo il codice natio della function) :256:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. #9
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera, Cromagno.

    Grazie della Tua Risposta; in altra circostanza, avevo notato anch'io che se la Funzione "Indiretto" è riferita a Dati presenti nello Stesso Foglio di lavoro i Riferimenti relativi funzionano correttamene:
    La mia delusione è stata quella di verificare che questa regola non è valida se i Dati risiedono in altro Foglio di lavoro; non si finisce mai di imparare.


    Grazie della Tua Attenzione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  10. #10
    L'avatar di rox983
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Montoro (Avellino)
    Età
    34
    Messaggi
    3
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie mille ragazzi siete stati fantastici!
    Penso che userò la soluzione di Giuseppe perchè mi sembra la più semplice anche per una non masterexcellenza come me.
    Per il riepilogo tutto risolto, quindi. Provo a chiedervi se c'è possibilità di fare in modo che si visualizzi un solo mese in ogni foglio collaboratore con un solo clic.
    Supponiamo che sia febbraio e devo lavorare sulle presenze di ciascuno. Attualmente entro in ogni foglio collaboratore e filtro il mese. Non c'è un modo per cambiare mese per tutti contemporaneamente? Chiedo troppo vero?
    Grazie ancora

  11. #11
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    @ cromagno, scrive:


    Mi sono posto avuto anch'io la stessa domanda.

    ciao ragazzi,
    sicuramente ho capito male e chiedo venia, ma io utilizzo sempre l'indiretto per acquisire dati da altri fogli.
    vi allego un mio esempio.
    sempre che ho capito.
    ciao
    ale
    File Allegati File Allegati

  12. #12
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera, Rossella.

    @ rox983 , chiede:
    Provo a chiedervi se c'è possibilità di fare in modo che si visualizzi un solo mese in ogni foglio collaboratore con un solo clic.
    Supponiamo che sia febbraio e devo lavorare sulle presenze di ciascuno. Attualmente entro in ogni foglio collaboratore e filtro il mese. Non c'è un modo per cambiare mese per tutti contemporaneamente?
    Per fare ciò che chiedi ho preferito utilizzare un Codice VBA
    Codice: 
    Option Explicit
    
    Sub Filtro()
    Const MioRange As String = "$AB$8:$AB$346"
        With Worksheets("RIEPILOGO")
        ActiveSheet.Range(MioRange).AutoFilter Field:=1, Criteria1:=.Cells(3, 4).Value
            End With
    End Sub
    Attivato con:

    Codice: 
    Option Explicit
    
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        If ActiveSheet.Name = "RIEPILOGO" Or ActiveSheet.Name = "Mese" Then End
        Filtro
    End Sub
    Il Codice "Filtro" viene attivato ogni volta che selezioni un Foglio di lavoro diverso da:
    - RIEPILOGO
    o da:
    - Mese

    In funzione del Mese selezionato nella Cella "D3" del Foglio di lavoro "RIEPILOGO", per ogni Foglio di lavoro "Collaboratore", verranno filtrati i Record relativi alla scelta fatta.

    Molto probabilmente c'è una soluzione meno contorta, ma, tant'è.




    A disposizione.

    Buona serata.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

Discussioni Simili

  1. Risposte: 0
    Ultimo Messaggio: 10/03/17, 12:53
  2. modifica codice macro per eliminazione dati da più fogli
    Di ceskonet13 nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 16/02/17, 15:56
  3. [Risolto] Modificare più grafici contemporaneamente
    Di Fender nel forum Domande sui Grafici di Excel
    Risposte: 5
    Ultimo Messaggio: 01/11/16, 19:07
  4. [Risolto] Macro che fa cliccare su più pulsanti contemporaneamente
    Di Kinoppi90 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 04/10/16, 12:18
  5. Evidenziamo Riga e Colonna.... CONTEMPORANEAMENTE
    Di zio_tom nel forum Domande su Excel VBA e MACRO
    Risposte: 21
    Ultimo Messaggio: 17/11/15, 11:41

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •