Macro di confronto tra celle



  • Macro di confronto tra celle
    di Marcocala data: 15/01/2012

    Ho realizzato un prospetto di lavoro turnato, su 5 giorni la settimana con reperibilità sab o dom, utilizzando exel (unitamente al vba).
    ho creato due fogli di lavoro (1=attività previste, 2=settimanaturnata.
    nel 1° per comodità e per evitare l'inserimento di diciture ripetute (comunque o diverse tra loro per errori di trascrizione ad es "congedo ordinario" e "congevo ordinario").
    ho protetto il foglio di lavoro consentendo l'inserimento di nuove voci (magari aggiungendo accanto una specifica)
    dandovi una macro che in uscita dal foglio di lavoro riordina la colonna dalla a alla z.
    nel 2° foglio di lavoro ho inserito in basso una ripetizione di questi dati nella colonna d dal rigo 77 al 136.
    questo elenco viene utilizzato per convalidare le celle dove andrà scelto il servizio da svolgere [ad es range("f12:i12)]
    le celle attinenti il servizio sono condizionalmente predisposte a cambiare il colore di fondo nel caso venga svolto un
    turno antimeridiano (colore neutro) o postmeridiano (colore azzurro) o ancora orario variato -vr- (colore arancio);
    al contempo le celle [ad es: range("i11")] sono sottoposte a convalida rispetto agli orari imposti nelle celle incolonnate più in basso alle righe 64 e 65 e le celle [ad es: range("g11")] sono sottoposte a convalida rispetto al tipo di turno imposto nelle celle incolonnate
    più in basso alle righe 64 e 65.
    relativamente ai giorni di sabato e domenica si evidenzia la sola reperibilità lavorativa ed in caso positivo la formattazione
    condizionale evidenza in rosso la cella.
    il foglio per funzionare correttamente senza intralcio dovrebbe essere protetto ma in questa fase di proggettazione non lo è (anzi mi sono accorto di un debug vba quando lo ripristino a protetto, ma vedrò di risolverlo).
    per evitare di sbagliare date, la settimana si organizza dietro l'inserimento del 1° giorno della settimana.
    veniamo al dunque il vba mi è stato necessario per ridurre i tempi di inserimento di dati uguali,
    1° es: un lunedì non lavorativo comportava il ripetersi per ogni nominativo della scelta dei dati di 3 celle, turno,orario,attività prevista
    e grazie al pulsante lunedì festivo la macro copia la parola festivo dalla cella f71 e la incolla più volte nella colonna (col pulsante ripristina copia una cella fittizia vuota e la reincolla nelle celle modificate)
    2° es: occorreva ripeterere la dicitura "congedo ordinario" per i 5 giorni lavorativi,
    grazie al pulsante "x 5 giorni" la macro attiva una finestra dove in una combobox scelgo la dicitura tra i dati sottoposti già a convalida e dò il mio ok per inserirli per 5 giorni di seguito (avvertendomi che non mi sarà possiblie incollare 5 volte se non ho selzionato una cella di inizio settimana).
    ho sinteticamente riassunto come è stato previsto l'automatismo del prospetto settimanale turnato, sicuramente ho utilizzato procedure improprie o improbabili ma grosso modo funzionano (ed io non conosco il vba, mi aiuto con la registrazione delel macro, riadattata, e con le istruzioni vba o con codici copiati in rete e riadattati).
    adesso veniamo al punto della mia richiesta, vorrei , magari utilizzando un foglio di lavoro ulteriore "confronto turni", confrontare le attività svolte , contarle e quando ripetute, specificando :
    riga di lunedì am : nella 1a cella il tipo di attività svolta in comune tra loro , nella 2a cella tutti i nominativi coinvolti nel servizio; nella 3a cella il totale degli operatori che effettuano lo stesso servizio; 4a cella vuota; a seguire
    riga di lunedì pm : nella 1a cella il tipo di attività svolta in comune tra loro , nella 2a cella tutti i nominativi coinvolti nel servizio; nella 3a cella il totale degli operatori che effettuano lo stesso servizio; 4a cella vuota; a seguire
    stessi procedimenti per le righe a seguire martedì am, martedì pm e via via fino al venerdì.
    in ultimo nel foglio predisporrei 6 pulsanti: 1 mostra tutto, 2 nasconde tutto e mostra solo lunedì, 3 nasconde tutto e mostra solo martedì, e così via fino a venerdì
    allego il file, sperando che possa essere utile a qualcun altro e confidando in vs suggerimenti, spiegazioni,integrazioni e/o invio di file riveduti e corretti.
    p.s. nel mio piccolo ho fatto del mio meglio, anzi se riesco ad eliminare il bug su riportato, renderò disponibile il nuovo file.