Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Conversione colori RGB

Ultimo Aggiornamento: 24/02/2020 12:29
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 [SM=g27811]


"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.
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 16:29. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com