Extrtaire une liste entre deux HEX
Bonjour, je suis face a un soucis.
D'un coté, j'ai un "dégradé" sur Photoshop. La première couleur est un hex exemple "fcffae" et la deuxième "f4f7e2".
Du coté Photoshop, pas de soucis, je maitrise.
Je voudrais avec Excel, créer un fichier pour extrapoler une centaines de couleurs comprise en ces deux chiffres.
Mais je n'y arrive pas .
Cerise sur le gâteau, si je peux avoir L'équivalent RVB ce serait un must ...
Dans l'espoir que l'on puisse me venir en aide, je vous souhaite de bonne fin de vacances...
Cordialement
bonjour Gargentua,
un essai avec une macro, mais je ne comprends pas les couleurs "comprise en ces deux chiffres"
Bonjour, dans un dégradé de couleur, il y a une multitude de couleurs différentes.
Chaque couleur peut être codé avec une valeur Hexa exemple "#F73917" entre le plus foncé et le plus clair il y à énormément de variante donc de code Hexa.
Je désire en extraire 100 .
Bonjour à tous,
Une autre proposition (salut Bart
Vous ajoutez ce code dans un module et lancez le sub GenerateGradientWithColor.
Option Explicit
' nombre total de couleurs générées (98 + les 2 de depart)
Private Const STEP_COUNT As Integer = 100
Public Sub GenerateGradientWithColor()
' cellule d'export
Dim STARTCELL As Range
Set STARTCELL = ActiveSheet.Range("A1")
' couleur depart
Dim startColorHex As String
startColorHex = PromptHex("Entrez le code Hex de la 1ère couleur (ex: fcffae)")
If startColorHex = vbNullString Then Exit Sub
' couleur fin
Dim endColorHex As String
endColorHex = PromptHex("Entrez le code Hex de la 2ème couleur (ex: f4f7e2)")
If endColorHex = vbNullString Then Exit Sub
Dim rgbStart As Variant, rgbEnd As Variant
rgbStart = HEXToRGB(startColorHex)
rgbEnd = HEXToRGB(endColorHex)
If rgbStart(0) = -1 Or rgbEnd(0) = -1 Then
MsgBox "Erreur dans les codes HEX"
Exit Sub
End If
Dim redStart As Integer: redStart = rgbStart(0)
Dim greenStart As Integer: greenStart = rgbStart(1)
Dim blueStart As Integer: blueStart = rgbStart(2)
Dim redEnd As Integer: redEnd = rgbEnd(0)
Dim greenEnd As Integer: greenEnd = rgbEnd(1)
Dim blueEnd As Integer: blueEnd = rgbEnd(2)
Dim i As Long
For i = 0 To STEP_COUNT - 1
Dim red As Integer
red = redStart + (redEnd - redStart) * i / (STEP_COUNT - 1)
Dim green As Integer
green = greenStart + (greenEnd - greenStart) * i / (STEP_COUNT - 1)
Dim blue As Integer
blue = blueStart + (blueEnd - blueStart) * i / (STEP_COUNT - 1)
Dim gradientHex As String
gradientHex = RGBToHEX(red, green, blue)
With STARTCELL.Offset(i)
.Value = "#" & gradientHex
.Interior.Color = RGB(red, green, blue)
End With
Next i
End Sub
Private Function HEXToRGB(hexColor As String) As Variant
If Left(hexColor, 1) = "#" Then hexColor = Mid(hexColor, 2)
If Len(hexColor) <> 6 Then
HEXToRGB = Array(-1, -1, -1)
Exit Function
End If
On Error GoTo ErrorHandler
Dim red As Integer: red = Val("&H" & Mid(hexColor, 1, 2))
Dim green As Integer: green = Val("&H" & Mid(hexColor, 3, 2))
Dim blue As Integer: blue = Val("&H" & Mid(hexColor, 5, 2))
HEXToRGB = Array(red, green, blue)
Exit Function
ErrorHandler:
HEXToRGB = Array(-1, -1, -1)
End Function
Private Function RGBToHEX(red As Integer, green As Integer, blue As Integer) As String
RGBToHEX = Right("0" & Hex(red), 2) & Right("0" & Hex(green), 2) & Right("0" & Hex(blue), 2)
End Function
Private Function PromptHex(promptText As String) As String
Dim userInput As String
Do
userInput = InputBox(promptText, "Saisie couleur HEX")
If VBA.Trim(userInput) = vbNullString Then
PromptHex = vbNullString
Exit Function
End If
userInput = Replace(userInput, "#", vbNullString)
If Len(userInput) = 6 And userInput Like "[0-9A-Fa-f]*" Then
PromptHex = LCase(userInput)
Exit Function
Else
MsgBox "Code HEX invalide. Veuillez entrer 6 caractères hexadécimaux (0-9, A-F).", vbExclamation
End If
Loop
End FunctionBonjour à tous,
Egalement une macro qui donne les 100 valeurs RVB entre deux couleurs.
On saisit les valeurs hexadécimales de la couleur 1 en B2:D2 et de la couleur 2 en B104:D104 et on lance l'interpolation.
Un des 3 langages de script de Photoshop étant Javascript, on peut faire cette interpolation directement sous Photoshop puisque vous semblez bien le connaître.
Le script ci-dessous n'est pas limité à 100 couleurs, mais paramétrable de 2 à 256 couleurs. Il crée un fichier CSV avec les valeurs RVB attendues dans le dossier où se trouve le script.
Merci à tous, mon soucis a été résolu..
J'ai comme l'impression qu'on a pissé du code pour des prunes.