Condividi:        

[Excel] Colorare le celle con un clik

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Colorare le celle con un clik

Postdi waltpr » 15/09/06 22:23

Ciao a tutti.
Ho cominciato a frequentare questo forum, e ho potuto (grazie alla vs. cortesia semplificare un lavoro (vedi domanda sul pedice), ...ed è stata una mano di aiuto notevole.

Adesso stavo leggendo i vari tread e varie soluzioni, ed ho visto quella per rilevare le presenze, col codice che permette di colorare e marcare (x) le celle con un clic

http://www.pc-facile.com/forum/viewtopic.php?t=45721

L'ho provata e funziona. E' una cosa simpatica (io dò una mano agli allenatori di una squadra di pallannuoto giovanile).

Quello che però vorrei ...se non è una cosa complicata (visto anche l'argomento futile), ..è evitare di colorare e marcare anche le celle con i nomi dei giocatori, vorrei cioè poter aggiornare i nomi, aggiungere degli altri nomi alla colonna con i nominativi, senza colorare e marcare anche queste celle con la x.

In pratica la domanda è: posso far applicare il comando (colora e marca con un clic) solo ad un settore del foglio, cioè ad un certo inervallo di celle, oppure il comando insiste sempre su tutte le celle del foglio?

scusatemi per la lunghezza del post,

saluti

walter
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Sponsor
 

Postdi Alexsandra » 16/09/06 08:10

Lo puoi fare, posta uno screnshot o un file di esempio per vedere che colonne vuoi colorare e ti posto il codice della macro
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi waltpr » 16/09/06 14:27

Alexsandra ha scritto:Lo puoi fare, posta uno screnshot o un file di esempio per vedere che colonne vuoi colorare e ti posto il codice della macro


Grazie molte Alexandra,

devo andare, quando torno provo ad incollarti l'immagine del file,

In pratica mi basta poter salvare dal comando le prime tre colonne A, B e C dove ho (nomi cognomi e categoria di appartenenza) e le prime 4 righe dove ci sono i giorni i mesi ecc..

Saluti

Walter
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Postdi waltpr » 16/09/06 18:06

eccomi,
ecco l'immagine del foglio presenze, ho ridotto un pò il formato, spero si veda qualcosa

Immagine

Saluti

Walter
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Postdi Alexsandra » 16/09/06 21:25

Vedo che hai una colonna vuota (L) se vuoi evidenziare saltando quella colonna entra in VBA (ALT+F11) e a Sx vedi un elenco con i nomi dei tuoi fogli, fai doppio clik sul foglio che vuoi utilizzare il codice e nel riquadro di Dx copia e incolla il seguente codice
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 riga = ActiveCell.Row
 colonna = ActiveCell.Column

If riga < 4 Then MsgBox "Riga non permessa": [D4].Select: Exit Sub
If colonna < 4 Then MsgBox "Colonna non permessa": [D4].Select: Exit Sub
Range(Cells(ActiveCell.Row, 4), Cells(ActiveCell.Row, 11)).Select
 ActiveCell.FormulaR1C1 = "x"
 Selection.Font.Bold = True
  colora
Range(Cells(ActiveCell.Row, 13), Cells(ActiveCell.Row, 25)).Select
 colora
ActiveCell.Offset(1, -9).Select
End Sub
Codice: Seleziona tutto
Private Sub colora()
With Selection.Interior
 .ColorIndex = 6
 .Pattern = xlSolid
End With
With Selection
 .HorizontalAlignment = xlCenter
End With

End Sub
Per lanciare la macro devi fare doppio clik sulla riga interessata
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Anthony47 » 17/09/06 02:55

Ciao a tutti,
vedo che in effetti piu’ che altro si vuole mettere una x sulle presenze.

Vi propongo per questo una soluzione forse piu’ semplice o forse solo piu’ strana…

Allora:
- in cella D5 (la prima delle presenze) scrivi 0; poi imposti Dati ->Convalida, Consenti “Numero intero” tra Minimo “0” e Massimo “1” (numeri, senza virgolette).
- formatti la cella, Tab “Numero”, Personalizzato e nell’ area “Tipo” metti la stringa [Fucsia]"X";00.##;"-";_(@_)
-copi questa cella in tutte le altre celle di presenza

In questo modo se nella cella scrivi 1, vedrai una X, se scrivi 0 vedrai un -, se e’ vuoto vedrai vuoto. I numeri rimangono, quindi se vuoi puoi usarli per farci calcoli.
Se non ti piace il colore Fucsia dato alla X (vedi stringa) puoi metterci Nero, Blu, Rosso, che sono i piu’ visibili.

Mah, piacera’ a qualcuno?

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Alexsandra » 17/09/06 07:34

E' più pratico un doppio clik e finisce tutto lì.
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi waltpr » 17/09/06 10:24

Ringrazio di cuore Alexandra a Antony,

Non sono riuscito a fare quanto suggeritomi da Alexandra, ...ho provato diverse volte, sbaglio sicuramente qualcosa, ...ma credo di aver trovato il modo x aggirare l'ostacolo usando la macro che colora e marca tutte le celle dove faccio clic, senza distinzione.

Per scrivere i nuovi nominativi / modificare quelli esistenti faccio così:
prima chiudo il file, poi lo ri-apro senza attivare le macro, modifico le celle con i nomi e salvo. Quando lo riapro attivo le macro ..et voila..
Per gli scopi di questo file può bastare.

Siete stati comunque veramente gentili, grazie

saluti

Walter
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Postdi Alexsandra » 17/09/06 15:32

Fai come vuoi, potevi chiedere spiegazioni se non sei pratico.

Quando sei in Excel e con il tuo file aperto premi assieme ALT e F11 assieme e ti compare la schermata quì sotto. segui le istruzioni che trovi nell'immagine e hai finito

Immagine
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi waltpr » 17/09/06 18:00

Alexandra, io ci ho riprovato :oops: , però:

1) mi colora un pò di riga e non solo la cella dove faccio doppio clic,
2) non mi mette la X
3) sono solo alcune colonne di destra, a partire dalla D, che sono interessate, ...quando finirà settembre ed ottobre e prenderò le presenze di novembre, dicembre ecc... mi pare che la macro non agisca.

Che dici, non converrebbe proteggere solo le prime tre colonne e le prime 4 righe, lasciando tutto il resto con la macro attiva?
Le colonne vuote le ho inserite per dividere i vari mesi, ..ma posso anche toglierle o non cliccarci sopra

ri-saluti

walter
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Postdi Alexsandra » 17/09/06 19:14

c'era un errore nei cicli IF di avviso se fai doppio clik nell'area protetta, il codice giusto è questo
Codice: Seleziona tutto
If riga < 5 Then MsgBox "Riga non permessa": [D5].Select: Exit Sub
If colonna < 4 Then MsgBox "Colonna non permessa": [D5].Select: Exit Sub
, però devi cliccare in una qualsiasi zona entro le colonne D e Y.

Ho guardato meglio la tua immagine, vedo ora che hai una struttura, se chiudi la struttura e raggruppi le colonne non vedi l'evidenziazione e la x.

se la lasci aperta come si vede nella tua immagine la macro funziona e se fai clik sulle colonne o righe protette ti avvisa con un box e si porta sulla cella D5
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi waltpr » 18/09/06 17:34

Ciao Alexandra,
Ho fatto le modifiche, questa è la macro che ho copiato e modificato

Immagine

questo è il risultato facendo doppio clic sulla cella E7

Immagine

non so perchè però si colorano alcune celle e non solo la cella E7, ed inoltre non mette la X.

Volevo anche dirti che, visto che questa macro si attiva al doppio clic, .....potrebbe andar bene anche non proteggere nessuna cella, infatti se vado nella colonna dei nomi posso modificarli a piacere..basta non fare doppio clic.. ;)

grazie ancora per la pazienza, saluti

walterl
waltpr
Utente Junior
 
Post: 22
Iscritto il: 13/11/05 17:08

Postdi Alexsandra » 18/09/06 19:51

...non so perchè però si colorano alcune celle e non solo la cella E7, ed inoltre non mette la X.
Ti taglio un orecchio. :D
Se guardi la 1° immagine che hai postato la colonna D era visibile, mentre in questa è nascosta. allora se questa immagine è quella giusta metti questo codice
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 riga = ActiveCell.Row
 colonna = ActiveCell.Column

If riga < 5 Then MsgBox "Riga non permessa": [E5].Select: Exit Sub
If colonna < 5 Then MsgBox "Colonna non permessa": [E5].Select: Exit Sub
Range(Cells(ActiveCell.Row, 5), Cells(ActiveCell.Row, 12)).Select
 ActiveCell.FormulaR1C1 = "x"
 Selection.Font.Bold = True
  colora
Range(Cells(ActiveCell.Row, 14), Cells(ActiveCell.Row, 26)).Select
 colora
ActiveCell.Offset(1, -9).Select
End Sub
La routine colora và bene così

Immagine

vedi che funzia, le colonne nere sono quelle protette e vedi la x, la colonna M è bianca.

Però penso che tu abbia sulle colonne tutti i mesi e con una struttura nascondi i vari mesi. Potresti fare una macro e togliere la struttura, quest amacro ti visualizza il mese corrente, stringendo le colonne puoi tenere il mese precedente e quello in corso e con un pulsante nascondi il mese precedente (e quello attuale diventa precedente e fai apparire quello successivo) senza ricorrere alla struttura.

Verifica che la selezione della struttura sia giusta, il codice come vedi dall'immagine funziona, se hai problemi mandami il foglio delle presenze che facciamo prima, su richiesta in pvt ti comunico la mia email
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Colorare le celle con un clik":


Chi c’è in linea

Visitano il forum: Nessuno e 102 ospiti