Interior Color ActiveSheet

Bonjour,

Je tente de récupérer la valeur de la couleur de fond sélectionnée dans la toolbar d'excel.

Après moultes recherches infructueuses (...vapeur de la veille sans doute...) je suis capable de récupérer cette valeur d'une ligne ou d'une cellule mais je n'arrive pas à récupérer la couleur sélectionnée dans le colorPicker de la barre d'outils.

merci pour vos lumières

Hello juanpa,

Quelle est la vraie question? ^^

Tu parles de beaucoup de choses, mais impossible de savoir réellement qu'es-ce que tu veux faire! Tu veux récupérer la couleur d'un colorPicker mais d'où il sort, d'où il vient? Il sert à quoi? ^^

Hello,

En fait dans un classeur excel je voudrais récupérer la dernière couleur de fond sélectionnée par le color picker de l'onglet 'accueil' de la barre d'outils d'excel, symboliser par le pot de peinture

Trouvé sur un vba-corner

'Picks new color
Function PickNewColor(Optional i_OldColor As Double = xlNone) As Double
Const BGColor As Long = 13160660  'background color of dialogue
Const ColorIndexLast As Long = 32 'index of last custom color in palette

Dim myOrgColor As Double          'original color of color index 32
Dim myNewColor As Double          'color that was picked in the dialogue
Dim myRGB_R As Integer            'RGB values of the color that will be
Dim myRGB_G As Integer            'displayed in the dialogue as
Dim myRGB_B As Integer            '"Current" color

  'save original palette color, because we don't really want to change it
  myOrgColor = ActiveWorkbook.Colors(ColorIndexLast)

  If i_OldColor = xlNone Then
    'get RGB values of background color, so the "Current" color looks empty
    Color2RGB BGColor, myRGB_R, myRGB_G, myRGB_B
  Else
    'get RGB values of i_OldColor
    Color2RGB i_OldColor, myRGB_R, myRGB_G, myRGB_B
  End If

  'call the color picker dialogue
  If Application.Dialogs(xlDialogEditColor).Show(ColorIndexLast, _
     myRGB_R, myRGB_G, myRGB_B) = True Then
    '"OK" was pressed, so Excel automatically changed the palette
    'read the new color from the palette
    PickNewColor = ActiveWorkbook.Colors(ColorIndexLast)
    'reset palette color to its original value
    ActiveWorkbook.Colors(ColorIndexLast) = myOrgColor
  Else
    '"Cancel" was pressed, palette wasn't changed
    'return old color (or xlNone if no color was passed to the function)
    PickNewColor = i_OldColor
  End If
End Function

'Converts a color to RGB values
Sub Color2RGB(ByVal i_Color As Long, _
              o_R As Integer, o_G As Integer, o_B As Integer)
  o_R = i_Color Mod 256
  i_Color = i_Color \ 256
  o_G = i_Color Mod 256
  i_Color = i_Color \ 256
  o_B = i_Color Mod 256
End Sub

Bonjour,

C'est pas la même chose ! Remplace juste une couleur personnalisée de la palette.

Jusqu'à présent on n'a trouvé nulle part où serait enregistrée la dernière couleur utilisée. De plus sur les versions depuis 2007 c'est ThemeColor qui est utilisé (la palette étant toujours reconnue pour raison de compatibilité), d'où on utilise de moins en moins ColorIndex qui correspond à la palette, et de plus en plus Color...

Cordialement.

Merci pour vos réponses et lumières

Rechercher des sujets similaires à "interior color activesheet"