riempimento



  • riempimento
    di mandoz (utente non iscritto) data: 07/03/2013 20:44:27

    ciao a tutti,

    domanda. ipotizzando un range di celle c5:h10 è possibile
    cambiare alternativamente il colore del riempimento con un click del mouse. per esempio
    click rosso - click verde - click rosso....

    grazie.



  • di Vecchio Frac data: 07/03/2013 21:22:26

    Sì, è possibile.
    Devi intercettare l'evento Worksheet_SelectionChange del foglio che contiene il range.
    Limitare gli eventi quando il target rientra nel range che ti interessa.
    Controllare il riempimento (Interior) della prima cella del target e cambiarlo di conseguenza.
    Prova un po', e poi vediamo insieme il codice che riesci a sfornare :)





  • di totygno71 data: 08/03/2013 08:45:15



    Non testato ma dovrebbe andare.
    Fammi sapere:-
     
    If Not Intersect(ActiveCell, Range("C5:H10")) Is Nothing Then
            
            If ActiveCell.Interior.ColorIndex = 3 Then
            ActiveCell.Interior.ColorIndex = 4
            Else
            ActiveCell.Interior.ColorIndex = 3
            End If
     
    End If
    



  • di Vecchio Frac data: 08/03/2013 09:26:20

    @totygno71
    Mi dispiace ma no, così non funziona.
    Idee?





  • di totygno71 data: 08/03/2013 09:36:42

    bho a me sembra funzioni!



  • di Vecchio Frac data: 08/03/2013 10:25:25

    Direi proprio di no.
    Ho incollato il codice in [A1] e non succede niente :)

    Non so dove inserire il codice (foglio? modulo? codice di foglio? codice di workbook?).
    Non so se è un codice che si riferisce a qualche evento o è dentro un form.
    Non so se è classe, sub o function, type, libreria o altro.

    Nel merito: si riferisce solo all'ActiveCell; e se dovesse riferirsi invece all'intero range o a una riga o a una colonna? A questa domanda deve rispondere mandoz.









  • di totygno71 data: 08/03/2013 10:28:24

    ti ho allegato il foglio di esempio!



  • di Vecchio Frac data: 08/03/2013 11:58:56

    Bè, cercherò di essere esplicito allora :)
    Io non è che non avessi capito, nè che non lo sapessi fare..
    Volevo far ragionare *mandoz* sul suo problema, e volevo far ragionare *te* sul fatto che bisogna essere precisi, chiari e attenti quando si forniscono risposte e soprattutto codice.
    Quello che hai postato tu funziona perfettamente ma è isolato da un contesto che non devi dare per scontato, perchè chi ti legge (in questo thread è mandoz, ma è solo un esempio) potrebbe non avere idea di cosa sia un modulo, un evento SelectionChange, e neppure If...Then.
    Inoltre anche la tua soluzione è solo parziale e potrebbe non risolvere il problema dell'interlocutore (e se voleva cambiare il colore dell'intero range, cliccando su una cella qualsiasi?).
    Aiutare e aiutarsi va benissimo, ma bisogna stare attenti a non dare risposte incomplete o parziali (non è un rimprovero ma un invito alla massima precisione, cosa che non è sempre facile e sulla quale anch'io fatico sempre tanto prima di dare una risposta).
    Ti ringrazio per l'attenzione e invito di nuovo mandoz a farsi sentire ;)





  • di totygno71 data: 08/03/2013 12:37:08

    E come disse qualcuno...

    Vabbuò Jà!



  • di mandoz (utente non iscritto) data: 08/03/2013 23:49:27

    grazie totygno, il tuo codice è corretto. ma questo già lo sai.
    vecchio frac, non hai bisogno di pregare... per me apprendere cose nuove è un piacere. hai ragione anche tu. ho faticato per un'ora prima di indovinare dove inserire il codice.
    a tal proposito ho una domanda. ho provato ad inserire il codice dal menu ....sviluppo -> visual basic
    senza riuscire ad ottenere un risultato corretto. il risultato corretto l'ho ottenuto inserendo il codice partendo dalla linguetta_foglio1 in basso a sinistra. cosa cambia?
    ancora - perchè il codice non funziona due volte consecutive sulla stessa cella se non dopo averne selezionata un'altra. la cosa è forse legata al comando activecell. si può ovviare al problema?
    grazie.



  • di totygno71 data: 09/03/2013 09:29:37

    io non ti rispondo altrimenti mi prendo unaltra cazziata!



  • di Vecchio Frac data: 09/03/2013 12:05:28

    @mandoz
    per come è costruito, il codice intercetta il cambio cella, quindi non funziona due volte sulla stessa cella se non ti sposti da essa almeno una volta
    Per inserirlo (meglio, per inserire qualunque codice) premi Alt F11 per accedere all'editor di codice, quindi Ctrl-R per attivare la finestra dei progetti, quindi con doppio click scegli il luogo dove porre l'oggetto, foglio o ThisWorkbook. Per inserire un modulo usa l'opzione di menu Inserisci o il pulsante dedicato nella barra dei pulsanti.


    @totygno71
    Hai frainteso... io non ho "cazziato" nessuno, ho solo esposto un punto di vista... non fare il musetto :)