Condividi:        

excel applicare codice a range di celle

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 applicare codice a range di celle

Postdi romeos » 11/12/12 13:38

sono nuovo del forum anche se lo seguo da un pò,premesso che pur senza conoscenze specifiche di vba sono riuscito attraverso la lettura dei vostri post e non solo a farmi un programmino per la gestione di un evento sportivo, che parte dall'elaborazione degli iscritti suddividendoli in categorie e classi ed arriva a creare dei tabelloni di gara, ho la necessità di fare in modo che un determinato codice che rappresenterebbe delle sanzioni (facendo click sulla cella questa diventa rossa).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With

End Sub
agisca solo su determinati range di celle del medesimo foglio non tutte contigue per esempio:
(B3:D3) ,(B7:D7),(G5:I5) ed altre. Spero di essere stato ufficientemente chiaro,un grazie anticipato a tutti voi.
"Lo spirito è un pendolo,tra la resa e il coraggio"
EXCEL 2010
romeos
Utente Junior
 
Post: 52
Iscritto il: 11/12/12 13:14

Sponsor
 

Re: excel applicare codice a range di celle

Postdi Flash30005 » 11/12/12 14:41

Ciao Romeos e benvenuto nel Forum

Innanzitutto dovresti elencare tutti i range (oppure ti acontenti di un esempio e poi lo implementi da solo?)

Inoltre dovresti dire se l'esigenza è solo quella di cliccare (metodo On/Off) per evidenziare in rosso o no
oppure c'è una condizione come sembra tu dica "che rappresenterebbe delle sanzioni " ?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel applicare codice a range di celle

Postdi romeos » 11/12/12 14:52

vorrei provare ad implementarlo solo, comunque posto un immagine
Immagine

Uploaded with ImageShack.us.
in pratica vorrei che dove vi sono le celle numerate che rappresentano delle sanzioni clikkandoci sopra si riempino di rosso ma solo quelle le altre no e deve essere chiaro che nelle altre celle posso clikkarci ed eventualmente inserire del testo senza che queste diventino rosse.
Se non sono stato ancora chiaro me ne scuso.ciao.
"Lo spirito è un pendolo,tra la resa e il coraggio"
EXCEL 2010
romeos
Utente Junior
 
Post: 52
Iscritto il: 11/12/12 13:14

Re: excel applicare codice a range di celle

Postdi Flash30005 » 11/12/12 17:19

Il codice che colora di rosso il range è questo e va inserito nel Vba del foglio e non nel Modulo
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'CheckArea = "G17:G31"  'togliere commento a questa riga e inserire il commento o cancellare la riga che segue
CheckArea = "G17,G19,G21,G23,G25,G27,G29,G31"
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    If ActiveCell.Interior.ColorIndex = 3 Then
        ActiveCell.Interior.ColorIndex = xlNone
    Else
       ActiveCell.Interior.ColorIndex = 3
    End If
End If
End Sub


Dall'immagine sembrerebbe che il tuo foglio abbia delle righe (pari: 18,20,22,24,etc) nascoste
in questo caso puoi usare il range continuo che ho commentato
"G17:G31" (o oltre)

Nel caso che la cella è rossa cliccando torna senza colore (metodo On/Off)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel applicare codice a range di celle

Postdi romeos » 11/12/12 22:18

Immagine

quello che ottengo è questo e non è quello che vorrei ottenere, ho provato a lavorare sul tuo codice ma non sono riuscito a venirne a capo,quindi mi spiego meglio,con il codice che mi hai dato si colorano anche delle celle che non centrano niente con le sanzioni che devono essere definite solo nelle celle con i numeri, in pratica cliccando sulla cella con il numero 1 questa si evidenzia e ciò indica che l'atleta e stato sanzionato 1 volta, se clikko sulla cella con il numero 2 l'atleta è alla seconda sanzione è cosi via fino alla 3 raggiunta la quale l'atleta sarà squalificato, quindi se ne deduce che devono colorarsi al clik solo gli intervalli che sono definiti dai numeri che vanno da 1 a 3, per esempio B3:D3, B7:D7,piuttosto che L9:N9 per avere una visione globale ti dico che nelle caselle con i bordi di rosso o di blu vi sono i nomi degli atleti, grazie Flash.ciao.
"Lo spirito è un pendolo,tra la resa e il coraggio"
EXCEL 2010
romeos
Utente Junior
 
Post: 52
Iscritto il: 11/12/12 13:14

Re: excel applicare codice a range di celle

Postdi peppo55 » 12/12/12 10:45

Ciao romeos

ma non sarebbe sufficiente una convalida dati con applicata una formattazione condizionale ?
vuoto niente
1,2,3 rosso
peppo

Excel 2010
peppo55
Utente Senior
 
Post: 167
Iscritto il: 30/09/12 13:51

Re: excel applicare codice a range di celle

Postdi Flash30005 » 12/12/12 10:59

Dalla foto del primo post avevo letto che la colonna interessata fosse la "G"
alla luce di queste coordinate
devi cambiare il codice ovvero solo l'area
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

CheckArea = " B3:D3, B7:D7,B11:D11,B15:D15" 'continua ad incrementare fino dove serve (range continuo determinato da ":" duepunti, separatore di un range da un altro con la virgola)
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    If ActiveCell.Interior.ColorIndex = 3 Then
        ActiveCell.Interior.ColorIndex = xlNone
    Else
       ActiveCell.Interior.ColorIndex = 3
    End If
End If
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel applicare codice a range di celle

Postdi romeos » 12/12/12 11:42

ok adattato il codice di flash che va alla perfezione,quindi problema risolto e vi ringrazio infinitamente. Per la soluzione di peppo55
ieri lavorando sul file anche io ho pensato che forse potevo percorrere un'altra strada, legando la funzione del click del mouse al valore delle celle, in fondo a pensarci bene il comando deve agire solo sulle celle con valore > di 0, ma flash ha esattamente risposto alla mia richiesta che inizialmente poneva il problema di applicare del codice solo a determinate celle.Mi riprometto comunque di addestrarmi sulla convalida dati perchè credo che possieda delle particolarità che possono ritornarmi utili.
Ciao e ancora grazie .
"Lo spirito è un pendolo,tra la resa e il coraggio"
EXCEL 2010
romeos
Utente Junior
 
Post: 52
Iscritto il: 11/12/12 13:14

Re: excel applicare codice a range di celle

Postdi romeos » 12/12/12 13:05

"Mi riprometto comunque di addestrarmi sulla convalida dati perchè credo che possieda delle particolarità che possono ritornarmi utili."
Lapsus non convalida dati ma formattazione condizionale. ciao.
"Lo spirito è un pendolo,tra la resa e il coraggio"
EXCEL 2010
romeos
Utente Junior
 
Post: 52
Iscritto il: 11/12/12 13:14

Re: excel applicare codice a range di celle

Postdi Flash30005 » 12/12/12 16:22

La formattazione condizionale ti funzionerà solo se nella cella inizialmente non ci inserisci nulla
poi inserendo 1 (o 2 o 3) potrai condizionare il formato della cella, ma, se hai già nello schema, i valori 1, 2, 3
con la formattazione condizionale non cambi nulla.


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "excel applicare codice a range di celle":


Chi c’è in linea

Visitano il forum: Nessuno e 58 ospiti