Liste déroulante pour choisir sa couleur de fond

Hello

J'ai un souci, je n'arrive pas à créer une liste déroulante qui proposerait plusieurs couleurs prédéfinis pour coloriés seulement le fonds de la celulle. Et ne pas pouvoir choisir d'autres couleurs pour cette cellule.

Exemple:

J'aimerai clicker sur un jour travaillé du fichier joint et qu'une liste déroulante de couleur apparait pour me proposer des couleurs prédéfinies, jours fériés (gris), CP(rose), RTT (jaune) .

Est ce que c'est possible par VBA ?.

Merci pour votre aide.

200cal-2012.xlsx (16.41 Ko)

PErsonne

Bonjour

Attention : Pas une solution à ton problème

Juste un délire personnel (en cherchant une solution)

Merci d'avoir passer un peu de tps sur mon problème.

J'ai compris ce que tu voulais faire mais le code est bugué chez moi

Bonsoir Banzai64

Je cherche sur son principe de codage,

franchement SUPER ton programme. Sa bugger chez moi puis j'ai retirer le "I" devant plage à la 7éme ligne en partant de la fin

"For Each Cel In Plage"

Peux tu m'aider pour faire la meme chose car c'est exactement ce qu'il me fallait mais je n'arrive pas à trouver comment tu fais ta programmation de couleur et textbox?

Merci par avance

Bonjour

Ne voyant plus Banzai64 depuis quelque temps, je me permet de vous commenter sa macro

En espérant que cela vous suffise pour la comprendre

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cel As Range, Plage As Range
Static Couleur As Long
Dim Msg As String

'Début du test de la cellule sélectionnée
  If Not Intersect(Range("E12:E15,J13,J15"), Target) Is Nothing And Target.Count = 1 Then
   'si l'on click sur les cellules de E12 à E15 ou J13 ou J15 et qu'une seule cellule est sélectionnée

    Couleur = Target.Interior.Color
    'on met en mémoire la couleur de la cellule sélectionnée

    Msg = "Actuellement en cours : "
    'on met en mémoire dans msg le text

    If Target.Address = "$J$15" Then
    'si la cellule sélectionnée est J15

      Msg = Msg & "Sans effet"
      'on ajoute sans effet au message actuellement en cours

      Couleur = 0
      'on met 0 dans la mémoire couleur

    ElseIf Target.Address = "$E$12" Then
    'sinon si la cellule sélectionnée est E12

      Msg = Msg & "Efface"
      'on ajoute Efface au message actuellement en cours
    Else
    'sinon

      Msg = Msg & Target.Offset(0, 1)
      'on ajoute le contenu de la cellule a droite de la cellule sélectionnée au message actuellement en cours
    End If
'fin du test de la cellule sélectionnée

    ActiveSheet.Shapes("Zone de texte 6").TextFrame.Characters.Text = Msg
    'on inscrit le text du msg dans la zone de texte6

'Début du test de la cellule sélectionnée
  ElseIf Not Intersect(Range("E20:K35"), Target) Is Nothing Then
  'si l'on click sur les cellules de E20 à K35

    If Couleur = 0 Then Exit Sub
    'si la mémoire de la couleur est 0 alors on sort de la macro

    Set Plage = Intersect(Range("E20:K35"), Target)
    'on détermine la zones des cellules sélectionnables à colorer

    If Plage.Count > 1 Then
    'si plusieurs cellules sont sélectionnées

      If MsgBox("Attention vous êtes sur le point de modifier plusieurs cellule" & vbCr & _
                "Voulez-vous continuer ?", vbCritical + vbYesNo + vbDefaultButton1, _
                "Opération irréversible") <> vbYes Then Exit Sub
      'on affiche un massage "Attention ..." et si la réponse est différente de OUI alors on sort de la macro

    End If
    Application.ScreenUpdating = False
    'on désactive le rafraichissement de l'écran afin de ne pas voir les cellules clignoter

    For Each Cel In Plage
    'pour toutes les cellules sélectionnées dans la plage autorisée de E20 à K35

      If Cel <> "" Then
      'si la cellule n'est pas vide

        Cel.Interior.Color = Couleur
        'on applique la couleur mise en mémoire
      End If

    Next Cel
    ' on passe à une autre cellule de la plage sélectionnée

  End If
 'fin du test de la cellule sélectionnée
End Sub

Bonjour BOB,

Merci pour ta réponse, je débute sur VBA pour des rapports d'interventions avec macro.

Ton detail de la programmation est parfait.

De ce qu'il me reste à comprendre, ces les TextBox créés, il y a aussi autre choses de parametrer autres que le programme et c'est ce que je recherché.

Merci beaucoup Bob

Cordialement

Rechercher des sujets similaires à "liste deroulante choisir couleur fond"