Choix couleur fond par userform

Katoch

XLDnaute Junior
Bonjour forum !

Je souhaiterais choisir la couleur de fond d'une cellule ,et lui affecter la valeur 1,en sélectionnant cette couleur parmi les 4 (Rouge,Vert,jaune ,bleu) qui seraient proposées par un UserForm apparaissant en cliquant sur cette cellule.

Voilà...merci de votre aide.
 

Fred0o

XLDnaute Barbatruc
Re : Choix couleur fond par userform

Bonjour Katoch,

Tu crées un UserForm qui avec des OptionButton, qui ressemble à ceci :

Couleurs.jpg

Ensuite, en double cliquant sur un contrôle, tu rentres le code suivant :
VB:
Private Sub OptionButton1_Click()
    ActiveCell = 1
    ActiveCell.Interior.ColorIndex = 3
    Me.Hide
End Sub

Private Sub OptionButton2_Click()
    ActiveCell = 1
    ActiveCell.Interior.ColorIndex = 4
    Me.Hide
End Sub

Private Sub OptionButton3_Click()
    ActiveCell = 1
    ActiveCell.Interior.ColorIndex = 6
    Me.Hide
End Sub

Private Sub OptionButton4_Click()
    ActiveCell = 1
    ActiveCell.Interior.ColorIndex = 5
    Me.Hide
End Sub

Ensuite, dans le code de la feuille où tu veux avoir cette macro, tu colles ceci :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    UserForm1.Show
End Sub

Et voilà. Si tu veux remplacer un simple click par un double click, la macro devient :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    UserForm1.Show
End Sub

A+
 

Pièces jointes

  • Couleurs.jpg
    Couleurs.jpg
    7.8 KB · Affichages: 165
  • Couleurs.jpg
    Couleurs.jpg
    7.8 KB · Affichages: 157
Dernière édition:

job75

XLDnaute Barbatruc
Re : Choix couleur fond par userform

Bonjour Katoch, salut Fred0o, avec mes meilleurs voeux pour 2012 :)

Construire un UserForm vous fatigue ? Moi aussi.

Alors cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If [D5] <> 1 Then
  [D5].Interior.ColorIndex = _
    Switch([D5] = "Rouge", 3, [D5] = "Vert", 4, [D5] = "Jaune", 6, [D5] = "Bleu", 8, True, xlNone)
  [D5] = 1
End If
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Couleurs(1).xls
    33 KB · Affichages: 112
  • Couleurs(1).xls
    33 KB · Affichages: 107
  • Couleurs(1).xls
    33 KB · Affichages: 114

job75

XLDnaute Barbatruc
Re : Choix couleur fond par userform

Salut Divers68,

Plutôt qu'une pseudo ComboBox (compliqué), autant utiliser une palette de couleur standard :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$5" Then
  Application.Dialogs(xlDialogPatterns).Show
  [D5] = 1
End If
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Couleurs(2).xls
    34 KB · Affichages: 106
  • Couleurs(2).xls
    34 KB · Affichages: 100
  • Couleurs(2).xls
    34 KB · Affichages: 110

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 477
Membres
103 555
dernier inscrit
Chtio