celle tabella Excel



  • celle tabella Excel
    di Toroloco (utente non iscritto) data: 19/05/2014 17:24:50

    Salve ragazzi,
    vi sintetizzo il mio problema:
    in excel ho due tabelle, in una devo elencare la distribuzione di cedole es: "dalla 1 alla 15" date a tizio il giorno x, nell'altra tabella dello stesso foglio (avendo un elenco dettagliato delle numerazioni) vorrei che quelle cedole comprese nella prima tabella, mi venissero evidenziate con colori diversi a seconda che vengano distribuite a tizio pittosto che a caio.
    ho già avviato il risultato manualmente evidenziondo e aggiornando tutto con "F9" con VBA e formattazione condizionale. Volevo se possibile automatizzare il tutto con una macro.
    Allego il file di interesse. Grazie in anticipo



  • di Textomb data: 19/05/2014 20:15:28

    Quesito..!
    il colore da assegnare al range di cedole attribuite a tizio pittosto che a caio chi lo deve scegliere e secondo quale criterio?
    Non sarebbe forse meglio se, nell'elenco dei nomi che hai riportato a dx della tabella di sopra (colonna R), da cui tra l'altro si attinge per la scelta del nominativo (colonna J), attribuisci inizialmente un colore diverso per ogni nominativo e quindi non appena assegni l'intervallo delle cedole, nella tabella di sotto viene assegnato quel colore?



  • di Textomb data: 19/05/2014 20:31:36

    ho visto adesso che alcuni colori sono stati assegnati ai nominativi riportati nell'elenco.
    Francesco, Antonio, Alessandro hanno avuto assegnato un colore ben preciso... E poi c'è un Altri con il suo colore e su cui confluiranno tutti gli altri nominativi. Ma è così?
    Diciamo una gestione molto rigida. Se volessi aggiungere un nuovo nominativo da voler gestire resti molto vincolato alle scelte iniziali...



  • di Toroloco (utente non iscritto) data: 19/05/2014 20:38:37

    Grazie innanzi tutto x il tempo dedicato.
    il colore da assegnare al range di cedole attribuite a tizio piuttosto che a caio chi lo deve scegliere e secondo quale criterio?
    Decidendo es: di dare 10 cedole a Francesco il colore (delle celle con i numeri corrispondenti) dovrebbe corrispondere a quello dei nomi evidenziati al rigo 34.....per tutti gli "altri" nomi oltre i primi tre, può essere uguale (grigio).
    Va bene anche il tuo suggerimento, l'importante e raggiungere il risultato finale.
    Grazie



  • di Textomb data: 20/05/2014 09:34:46

    ti propongo questa routine che può essere lanciata da un evento nel foglio di lavoro (Per esempio all'evento change quando inserisci il Nominativo nella colonna J) Oppure, più semplicemente, assegnarla ad un pulsante da premere all'occorrenza.
    La logica è:
    Prende tutti i records che, nella tabella di sopra, hanno una data (colonna A) individua i limiti delle cedole distribuite dall Nr alla Nr per ogni Nominativo e assegna, nella tabella di sotto, il colore attribuito al Nominativo in base alla riga 34 a tutte le cedole comprese nell'intervallo.

     
    Option Explicit
    
    Sub ColoraCedole_Textomb()
    
    Dim RngCint As Range, cell As Range, Val1 As Long, Val2 As Long, Val As Long, Cliente As String
    Dim RngCol As Range, MyC As Range, RngCedole As Range
    Set RngCint = Range("a9:a" & 8 + WorksheetFunction.CountA(Range("a9:a30")))
    Set RngCol = Range("a34:j34") 'Il Range su cui è fatta l'attribuzione dei colori per i Nominativi
    Set RngCedole = Range("B38:K137") 'Il Range con le singole cedole
    
    'Dapprima elimino tutti i colori
    RngCedole.Interior.ColorIndex = xlColorIndexAutomatic
    
    'Scorro tutti gli intervalli delle cedole assegnate e applico il colore del Nominativo
    For Each cell In RngCint 'L'intervallo delle Cedole assegnate ai Nominativi
        Val1 = cell.Offset(, 4).Value 'valore cedola inizile
        Val2 = cell.Offset(, 5).Value 'valore cedola finale
        Cliente = cell.Offset(, 9).Value ' Nominativo
        
            If cell = "" Or Val1 = 0 Or Val2 = 0 Or Cliente = "" Then _
            MsgBox "Impossibile Proseguire. Dati incompleti", vbCritical: Exit Sub
            
        Set MyC = RngCol.Find(Cliente, lookat:=xlWhole)
            If MyC Is Nothing Then Set MyC = Range("j34")
        
        RngCedole.Find(Val1, lookat:=xlWhole).Interior.ColorIndex = MyC.Interior.ColorIndex
        Val = Val1 + 1
        
        Do
            RngCedole.Find(Val, lookat:=xlWhole).Interior.ColorIndex = MyC.Interior.ColorIndex
            Val = Val + 1
        Loop Until Val > Val2
            
    Next
    
    Range("a34").Calculate
    
    Set RngCint = Nothing
    Set RngCol = Nothing
    Set RngCedole = Nothing
    Set cell = Nothing
    Set MyC = Nothing
    
    End Sub



  • di Toroloco (utente non iscritto) data: 20/05/2014 11:47:43

    Buongiorno,
    sarebbe interessante la soluzione del pulsante che però.... non sarei in grado di attuare da solo.
    grazie per la collaborazione.



  • di Textomb data: 20/05/2014 12:44:16

    per aggiungere un pulsante sul foglio di lavoro non c'è nulla di più semplice. Segui le istruzioni sono pochi passaggi.
    h t t p ://office.microsoft.com/it-it/excel-help/aggiungere-un-pulsante-e-assegnare-una-macro-al-pulsante-in-un-foglio-di-lavoro-HP010342137.aspx#BM1
    Prima incolla il codice che ti ho scritto in un modulo nuovo (alt-F11)
    E poi assegni la macro al pulsante.
    Tutto qui, facci sapere.
    In ogni caso se hai bisogno siamo qui.



  • di toroloco (utente non iscritto) data: 20/05/2014 15:09:49

    Perfetto!
    Grazie.