Excel - VBA - copia di valori e colore cella tra fogli

Anonimo
2022-04-24T06:31:31+00:00

Buongiorno a tutti

Volevo chiedere un aiuto per avere una macro che mi copi i valori e il colore di sfondo di alcune celle di determinati fogli in un unico foglio dove trovo un riepilogo totale.

Vado a spiegare meglio il file che allego.

In questo documento ho, al momento, 6 fogli. (diventeranno piú di 30)

Foglio 1: riepilogo consumo olio per settimana dei macchinari “Mori Seiki”

Foglio 2: riepilogo consumo olio per settimana dei macchinari “SW”

Fogli 3-6: Macchine : Mori009+Mori011+SW080+SW081

Nei fogli delle macchine ho il riepilogo del consumo di olio giornaliero.

Nella cella WAA1 (tutti i fogli) ho l´identificazione del gruppo di marca di appartenenza delle macchine: “TOTALI MORI SEIKI” o “TOTALI SW”

Nelle colonne X+Y+Z+AA ho una somma del consumo di olio della settimana (KW01, ecc…) e ho creato delle formattazioni condizionali che cambiano il colore della cella in giallo o in rosso in base alla quantitá di olio immesso nella macchina.

Quello che vorrei, se possibile, è avere una macro che mi copi i valori e il colore dalle celle delle colonne  X+Y+Z+AA dai fogli singoli delle macchine al foglio di riassunto denominato per “marca”.

Spero di essere riuscito a spiegare il problema e spero che qualcuno possa darmi una mano per fare questa cosa. Eventualmente si potrebbe anche usare il logo della ditta come bottone per far aggiornare la macro.

Grazie mille intanto e buona giornata

Ivan

https://1drv.ms/x/s!AuvGEFRCn7SwiBxie-tJ2JH5FYzK?e=hYKdRw

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2022-04-25T09:59:46+00:00

    Concordo con gianfranco che è meglio utilizzare una formula quando possibile anzichè utilizzare VBA, sia perché più performante, sia perché appunto è più facile da capire per chi non ha dimestichezza con VBA. Oltre al fatto che in questo modo il file funzionerebbe anche su altri dispositivi e via web.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2022-04-24T16:29:38+00:00

    ciao

    la formula per poche righe così

    non è impegnativa

    chiaro che se hai paura che qualcuno ci metta le mani

    i fogli con il resoconto finale li proteggi.

    NB

    è più semplice gestire una formula

    ( è una per tutti i fogli)

    che un vba che non si conosce eh!

    che versione hai di excel

    comunque

    la formula è

    =SCARTO(INDIRETTO("'"&$A$3&"'!"&INDIRIZZO(MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D$1;RIF.RIGA($X$3:$X$1000)));MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D$1;RIF.COLONNA($X$3:$AA$3)))));1;;3)

    in rosso il riferimento al foglio

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2022-04-24T15:42:31+00:00

    ciao

    io te l'ho fatta con le formule

    sfruttando i totali dei fogli

    per prima cosa ho scritto KW01 in D1 e trascinato a destra

    (stavi usando due metodi di codifica diversi)

    la formula è costruita così

    trovo la riga di AW01

    MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.RIGA($X$3:$X$1000)))

    trovo la colonna di AW01

    MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.COLONNA($X$3:$AA$3)))

    fatto questo mi trovo l'indirizzo

    =INDIRIZZO(MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.RIGA($X$3:$X$1000)));MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.COLONNA($X$3:$AA$3))))

    lo abbino a scarto

    =SCARTO(INDIRETTO("'"&$A$3&"'!"&INDIRIZZO(MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.RIGA($X$3:$X$1000)));MIN(SE(INDIRETTO("'"&$A$3&"'!$X$3:$AA$1000")=D1;RIF.COLONNA($X$3:$AA$3)))));1;;3)

    una riga sotto e per tre righe

    cancello i dati dalle matrici

    lo metto in D3 e trascino a destra

    chiaro che in D6 diventa NDIRETTO("'"&$A$6&"

    per le formttazioni ho eliminato le tue e raggruppato

    mi manca il verde ...non so che parametri usi

    nb

    se scarto non ti creasse la matrice

    avvisa che sistemiamo la formula

    https://www.dropbox.com/s/eh2plywynxaspad/Controllo%20olio2.xlsx?dl=0

    se ti servono delle macro ad oggi io non ti posso aiutare☹

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2022-04-24T12:53:47+00:00

    Grazie mille Daniele

    mi hai fatto presente che effettivamente i nomi non corrispondo.... ma possono tranquillamente corrispondere.

    nel senso che le macchine 009 e 011 fanno parte delle Mori e le 80 e 81 sono SW.

    allego un altro file con tutte le correzioni.. (spero)

    Grazie

    https://1drv.ms/x/s!AuvGEFRCn7SwiB7CmH-bXH0dxDa_?e=O6edRF

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2022-04-24T10:30:42+00:00

    Ciao Zoro,

    qui Daniele, bentrovato nella community Microsoft,

    io penso che il foglio formattato in questo modo è fatto male, non c'è un riferimento 1 a 1 tra il foglio di riepilogo e il foglio delle macchine, il nome deve essere quantomeno uguale in una parte per fare una ricerca.

    Ovvero se nelle macchine cerco Terestic T32 > H1 mi deve restituire qualcosa altrimenti associare ogni macchina nel riepilogo con quella nei fogli può portare ad errori, quindi o aggiungi/sostituisci una colonna in nel riepilogo che indica il nome per esteso che c'è nel foglio delle macchine, oppure aggiungi/sostituisci nel foglio delle macchine il nome abbreviato.

    Stessa cosa vale per i nomi dei fogli sono distinti MB081 immagino corrisponda a SW081, ma non vedo il criterio se non le tre cifre finali, devi spiegare in base a cosa questi fogli corrispondono, anche perché immagino che Mori arriverà a 081 prima o poi e pertanto non si puo semplicemente confrontare le ultime tre cifre.

    Senza congruenze diventa difficile creare qualcosa di funzionante sempre.

    La risposta è stata utile?

    0 commenti Nessun commento