| | Post: 95 | Registrato il: 27/05/2019
| Città: MILANO | Età: 56 | Utente Junior | 2016 | | OFFLINE | |
|
22/02/2020 11:27 | |
Ciao a tutti, vorrei capire come trasformare un colore dal numero 16367431 a formato RGB. Il numero 16367431
l'ho trovato all'interno del codice VBA conscritto
.Interior.Color = 16367431 corrisponde al colore celeste RGB (71,191,249), ma se volessi convertire un qualsiasi colore da RGB a quel numeretto lungo come devo fare?
Grazie mille. [Modificato da cico777 22/02/2020 12:23] |
|
| | Post: 738 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
22/02/2020 12:36 | |
Ciao,
vedi codice:
Sub ColorToRGB()
Dim OriginalColor As Double
Dim ConvertedColor As String
OriginalColor = 16367431
ConvertedColor = (OriginalColor Mod 256) & ", " & ((OriginalColor \ 256) Mod 256) & ", " & (OriginalColor \ 65536) Mod 256
End Sub [Modificato da cromagno 22/02/2020 13:13]
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 96 | Registrato il: 27/05/2019
| Città: MILANO | Età: 56 | Utente Junior | 2016 | | OFFLINE | |
|
22/02/2020 12:45 | |
La ringrazio, ho inserito il codice e assegnato un pulsante ma poi non so che fare, manca qualcosa? |
| | Post: 739 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
22/02/2020 12:48 | |
Io non so che ci devi fare...
quello è il codice per ottenere un valore RGB da un valore "Color", usalo per fare quel che meglio credi.
In alternativa allega un file d'esempio e spiega quello che devi fare (visto che hai scritto qualche istruzione in VBA pensavo sapessi già come utilizzare i consigli ricevuti). [Modificato da cromagno 22/02/2020 12:49]
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 97 | Registrato il: 27/05/2019
| Città: MILANO | Età: 56 | Utente Junior | 2016 | | OFFLINE | |
|
22/02/2020 12:58 | |
Grazie non so programmare, per quello mi trovo in difficoltà per trasformare il valore di un colore da RGB a colorindex, le ho allegato un file di esempio spero sia di utilità.Grazie. |
| | Post: 2.252 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
22/02/2020 13:14 | |
ciao
guarda che stai facendo confusione con
color e colorindex
color sono colori in RGB ( num,num,num)
colorindex sono colori di excel e questi sono appena 56
se vogliamo rilevare il numero RGB dobbiamo utilizzare la formula
interior.color
mentre interior.colorindex ci propone un valore max 56 che excel rileva avvicinandosi prossimamente a tale colore RGB
es rosso RGB = (255,000,000) quindi color , usando i vari fattori di cambio variamo la tonalita' del rosso in RGB quindi varia anche il valore di color
rosso colorindex = 3 ed e' fisso sia che sia un pelino piu' chiaro che un pelino piu' scuro
Ciao da locate
excel 2007 / 13 |
| | Post: 740 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
22/02/2020 13:21 | |
Ma allora non vuoi conoscere il codice RGB... vuoi conoscere il "Color", quindi la conversione opposta a quella proposta prima.
N.B.
Color e ColorIndex non sono la stessa cosa.
ColorIndex ha un numero limitato di colori (56) quindi ti verrà restituito il colore più "simile" a quello reale.
Comunque, ti basta usare le proprietà del VBA per trovare entrambi... non c'è bisogno di conversioni:
Sub MyColor()
Dim MyRng As Range
Dim ActCell As Range
Set MyRng = Range("A2:A7")
For Each ActCell In MyRng
'Color
ActCell.Offset(0, 2).Value = ActCell.Interior.Color
'ColorIndex
ActCell.Offset(0, 3).Value = ActCell.Interior.ColorIndex
Next ActCell
End Sub
[Modificato da cromagno 22/02/2020 13:23]
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 741 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
22/02/2020 13:23 | |
Ciao Locate,
mi hai anticipato
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 99 | Registrato il: 27/05/2019
| Città: MILANO | Età: 56 | Utente Junior | 2016 | | OFFLINE | |
|
22/02/2020 13:25 | |
Grazie a tutti e due e buon fine settimana. |
|
22/02/2020 13:37 | |
Si richiede sempre d'allegare un esempio, mà è più semplice fare solo domande
>>>all'interno del codice VBA conscritto
Quale ???
>>>ma se volessi convertire un qualsiasi colore
Intendi una cella con colore differente ???
In teoria sarebbe
If Cells(1, 1).Interior.Color <> 16367431 Then Cells(1, 1).Interior.Color = 16367431
Se desideri invece il Interior.Colorindex = 42
Siccome vedo un (.), dovrebbe essere
If .Interior.Color <> 16367431 Then .Interior.Color = 16367431
Però senza visualizzare il codice non saprei dire altro.
Ti posizioni su una cella ed avvia
Sub a()
MsgBox ActiveCell.Interior.ColorIndex
MsgBox ActiveCell.Interior.Color
End if |
| | Post: 100 | Registrato il: 27/05/2019
| Città: MILANO | Età: 56 | Utente Junior | 2016 | | OFFLINE | |
|
24/02/2020 12:29 | |
La ringrazio. |
|
|