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"

18gargentua.xlsb (18.60 Ko)

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 Function

re, salut Saboh12617,

un essai avec 100 couleurs aléatoires

19gargentua.xlsb (22.66 Ko)

Bonjour à 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.

16rgb.xlsm (21.91 Ko)

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.

17chartervb.zip (1.46 Ko)

Merci à tous, mon soucis a été résolu..

J'ai comme l'impression qu'on a pissé du code pour des prunes.

Rechercher des sujets similaires à "extrtaire liste entre deux hex"