Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]- Colorare in simultanea più celle con colori diversi Opzioni
aetio
Inviato: Saturday, June 11, 2011 8:30:01 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
vorrei, se possibile, automatizzare un'operazione che attualmente viene eseguita manualmente (gli errori quindi sono sempre in agguato...). Ecco un'immagine esplicativa:



nei Range S5:T13, W5:X13, AA5:AB13 ho preparato una legenda per dedicare, di volta in volta a seconda dei codici da evidenziare, un colore per ogni cella di tabella1 contenente quel codice: i codici sono sono scritti, all'interno dei Range sopra menzionati, nelle colonne S, W, AA e il colore nelle colonne T, X, AB (ho creato un piccolo pulsante per cancellare i codici, dato che di volta in volta cambiano. Nota: cambiano solo i codici, non i colori). Usando questa legenda applico di volta in volta, per ogni codice da evidenziare, la macro

Code:
Sub cerca1_con_Colore()
Dim Myvalue As Long
Dim Mycolor As Long
Myvalue = InputBox("DIGITA IL CODICE DA CERCARE", "CERCA CODICE IN TABELLA1")
Mycolor = InputBox("DIGITA RIFERIMENTO COLORE : numerico", "DIGITA COLORE")
For N = 18 To Cells(18, 3).End(xlDown).Row
Set Area = Range(Cells(N, 3), Cells(N, 7))
For Each cl In Area
If cl = Myvalue Then
With cl
.Interior.ColorIndex = Mycolor
End With
End If
Next cl
Set Area = Nothing
Next N
End Sub


che colora le celle dei codici nella tabella1 (da col.C a col.G) in base ai riferimenti di codice e di colore che ho digitato nelle InputBox


(nell'immagine è presente un'area gialla che non è oggetto di questa trattazione, ma è stata colorata con altra macro...)

E' possibile con una macro fare eseguire in simultanea l'operazione di coloritura in tabella1- in base alla suindicata legenda- delle celle in cui alloggiano i codici oggetto della ricerca?
Grazie assai per la pazienza :)) e buona giornata,
eZio

Nota aggiuntiva: come si vede nella 1^ immagine, non sempre la griglia viene completata, nel senso che il colore è comunque sempre scritto, ma il numero di codici da evidenziare è minore... quindi penso che la macro andrà istruita in modo da passare oltre in caso di cella del codice bianca, per evitare che la macro si pianti
Sponsor
Inviato: Saturday, June 11, 2011 8:30:01 AM

 
a10n11
Inviato: Saturday, June 11, 2011 10:07:57 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova questa che segue:
Attenzione ai riferimenti che ho usato nella macro non so se corrispondono esattamente al tuo foglio.

Sub colora_Tab1()
Dim Ur As Long
Ur = Cells(18, 3).End(xlDown).Row
Set area = Sheets("Foglio1").Range("C" & 18 & ":G" & Ur)
Set area2 = Sheets("foglio1").Range(Range("S5:S13").Address & "," & Range("W5:W13").Address & "," & _
Range("AA5:AA13").Address)
For Each Itm In area
For Each Itm2 In area2
If Itm2 = "" Then
Exit For
End If
colIndex = Itm2.Offset(0, 1).Value
If Itm.Value = Itm2.Value Then
Itm.Interior.ColorIndex = colIndex
End If
Next Itm2
Next Itm
Set area = Nothing
Set are2 = Nothing
End Sub

saluti
Giap

aetio
Inviato: Saturday, June 11, 2011 10:18:46 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
semplicemente PERFETTA... stupenda!! Spettacolare il modo con cui hai "agganciato" il range dei codici col range dei colori... non ho parole: sono affascinato dalla estrema bellezza di questa Materia, e dalla tua bravura.........................

Domanda del solito paragnosta: in
Set area = Sheets("Foglio1").Range("C" & 18 & ":G" & Ur)
e
Set area2 = Sheets("foglio1").Range(Range("S5:S13").Address & "," & Range("W5:W13").Address & "," & _
Range("AA5:AA13").Address)

ho generalizzato i 2 codici togliendo
Sheets("foglio1").
per poterla utilizzare anche in altri fogli, diversi da foglio1, senza dover aprire ogni volta l'editor per adattare i riferimenti
inficia qualcosa o posso lasciarla così come l'ho modificata? [non penso che vada ad intaccare qualcosa, ma conoscendo la tua grande Conoscenza della Materia mi sorge il dubbio perché nulla di ciò che scrivi è messo lì a caso...]
Dalle prove che ho fatto (ho lavorato in manuale e ho confrontato i risultati) coincide tutto...

Grazie infinite, anche per la tua pazienza :)))
Buona giornata,
eZio
a10n11
Inviato: Saturday, June 11, 2011 11:36:25 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
semplicemente PERFETTA... stupenda!! Spettacolare il modo con cui hai "agganciato" il range dei codici col range dei colori... non ho parole: sono affascinato dalla estrema bellezza di questa Materia, e dalla tua bravura.........................

Domanda del solito paragnosta: in
Set area = Sheets("Foglio1").Range("C" & 18 & ":G" & Ur)
e
Set area2 = Sheets("foglio1").Range(Range("S5:S13").Address & "," & Range("W5:W13").Address & "," & _
Range("AA5:AA13").Address)

ho generalizzato i 2 codici togliendo
Sheets("foglio1").
per poterla utilizzare anche in altri fogli, diversi da foglio1, senza dover aprire ogni volta l'editor per adattare i riferimenti
inficia qualcosa o posso lasciarla così come l'ho modificata? [non penso che vada ad intaccare qualcosa, ma conoscendo la tua grande Conoscenza della Materia mi sorge il dubbio perché nulla di ciò che scrivi è messo lì a caso...]
Dalle prove che ho fatto (ho lavorato in manuale e ho confrontato i risultati) coincide tutto...

Grazie infinite, anche per la tua pazienza :)))
Buona giornata,
eZio


Salve
Normalmente, all'interno dei codici va indicato il Foglio su cui deve operare (Nome foglio, Foglio attivo ecc)
essendo la macro inserita in un modulo standard, non indicando il foglio su cui lavorare viene preso in considerazione il foglio attivo e la macro su di esso esercita la sua azione. Pertanto se lanci la macro con un foglio attivo diverso da quello che si vorrebbe possono nascere problemi. Anche se nella macro che ti ho postato
non l'ho usato (per problemi di celerità) io uso in maniera costante l'istruzione With per vincolare il foglio di lavoro.
saluti
Giap

aetio
Inviato: Saturday, June 11, 2011 12:01:24 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Grazie per la precisazione. Come si vede avevo ragione: nulla, nemmeno il più piccolo dettaglio, è lasciato al caso in questo ambito. E' anche una questione di "forma mentis"... magari la Società fosse educata in tal senso...!! Oggi, con tutte le Conoscenze e la tecnologia che abbiamo a disposizione, saremmo davvero nell'Eden..... Saremmo, ma è meglio non divagare... :)))
Buona giornata,
eZio
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.