› Sviluppare funzionalita su Microsoft Office con VBA › Colore cella copiato in un'altra cella
-
AutoreArticoli
-
Ho copiato il colore di una cella (13, in questo caso) in un'altra cella con l'istruzione:
MM.Range("D2").Interior.ColorIndex = MM.Range("D27").Interior.ColorIndexMa il risultato "a vista" è diverso, eppure testando poi il ColorIndex delle due celle danno entrambi il codice "13" e effettivamente, poi andando sui "Colori web" uno è il codice 330099 (cella destinataria D2) e l'altra 660066 (Cella di partenza D27).
Sapreste dirmi il perchè? E come fare per copiare effettivamente lo stesso colore?
Grazie!
ciao a tutti,
ciao Abramo,
non so spiegarti il perchè del problema che riscontri, ma queste tre righe funzionano.
ciao
Frank
Range("D27").Copy Range("D2").PasteSpecial xlPasteFormats Application.CutCopyMode = Falsema se invece volessi copiare "solo" il colore dello sfondo e "non" anche gli altri elementi del formato?
Buon pomeriggio, @abramo48;
consentimi un saluto a Frank.Potresti provare con:
Range("D27").Interior.Color = Range("D2").Interior.ColorBuon fine settimana.
Giuseppe
ciao a tutti
ed un saluto a Giuseppe
Confermo e mi ha battuto sul tempo, la soluzione di Giuseppe è corretta
ciao
Frank
salve,
ho 10 colonne e se trovo 2 numeri uguali sulla stessa riga duplicati allora me li colora
non solo di duplicati ce ne possono essere anche 2 di coppie ma è sufficiente copiare
in altra colonna solo un numero per coppia e aggiungo se con formule ma si potrebbe avere qualche riga di codice al posto della formula.
Ma in mancanza andrebbe bene anche con formula.
Grazie e spero mi accontentate
Buona pomeriggio Giorgioa e un saluto a ABRAMO48.
Anche se non è una mia prerogativa mi permetto di consigliare a Giorgioa di aprire una nuova Discussione, magari con un esempio, di ciò che si vuole ottenere; da molto tempo non frequento più Forum di programmazione ma, ai miei tempi, era buona norma non riaprire Discussioni molto datate.Ad ogni buon conto, venendo alla richiesta di Giorgioa, direi che la soluzione potrebbe essere quella di utilizzare l'evento "Worksheet_Change".
Questo consentirebbe di valutare ad ogni nuovo inserimento la possibilità che, sulle 10 Colonne di quella Riga, esistano dei duplicati.
Nel caso in cui si vogliano analizzare più Righe sarebbe opportuno utilizzare un Codice VBA che valuti tutte i Record presenti nel Foglio di lavoro; una volta analizzate tutte le Righe, si delegherà a "Worksheet_Change" l'analisi dei nuovi inserimenti.
A disposizione per eventuali chiarimenti.
Giuseppe
Salve Giuseppe mi dispiace ma non riesco a leggere l'allegato,
Hai accennato codice ... worksheet_change per me è un po dura se il piatto con lenticchia non è cucinato bene.
Mi scuso e ringrazio per la partecipazione
Giorgioa
L'allegato di Giuseppe? Quale? forse ti riferivi al mio (ABRAMO48).
Se è il mio (Valori_Doppi.xls) provo a allegarlo di nuovo.
Non ho usato Worksheet_change (anche se lo conosco e lo saprei usare) ma solo CERCA.VERT e la FORMATTAZIONE CONDIZIONALE per colorare diversamente i valori doppi su ogni riga (un colore diverso per ogni duplicato (o triplicato o ...).
Se non riesci ad aprire il file anche questa volta, allora, se vuoi mandarmi un indirizzo e-mail, te lo mando direttamente via mail.
Allegati:
You must be logged in to view attached files.Buona giornata a Tutti;
come ha precisato ABRAMO48, che saluto, nella mia risposta #38585 non cera alcun allegato.
A proposito di "...se il piatto con lenticchia non è cucinato bene."
Purtroppo il mio concetto di Forum non è quello di fornire una soluzione "chiavi in mano" ma fornire all'Utente gli strumenti per ottenere una possibile soluzione.
A questo proposito allego l'immagine di ciò che si potrebbe ottenere con l'evento "Worksheet_Change".
Voglio dire, ogni volta che viene cambiato un valore in una Riga eventuali duplicati vengono evidenziati con un colore di fondo definito dalla posizione dei duplicati.A disposizione per eventuali ulteriori chiarimenti.
Giuseppe

Contraccambio il saluto Giuseppe, non mi sono avventurato nella tua soluzione che intuisco.
Si può dire che la tua soluzione è quella ottimale e prevede l'utilizzo del VBA.
La mia non prevede l'utilizzo del VBA ma, necessariamente, ha bisogno di 10 colonne di appoggio per individuare col CERCA.ORIZZ (ho sbagliato prima a citare il CERCA.VERT) le colonne duplicate: ogni volta che una cella cambia, nella corrispondente cella di appoggio si evidenzia il valore se questi è duplicato (prima o dopo, sulla riga, quindi due CERCA;ORIZZ). Dopodiché la FORMATTAZIONE CONDIZIONALE (dieci formattazioni) in presenza di un valore nella colonna di appoggio colora la cella originale secondo la posizione della colonna duplicata.
Due soluzioni diverse per lo stesso problema. Perfetto.
Ciao Giuseppe.
-
AutoreArticoli
