Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

couleur de bouton sur une feuille...

6 réponses
Avatar
Patrick Leguet
Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là je
coince. si vous aviez une idée...
d'avance merci
patrick

Sub Ajoutbouton()
Dim Nom As String
a = 0.75
b = 0.75
C = 60
d = 20
For i = 1 To 100
ActiveSheet.Buttons.Add(a, b, C, d).Select
Selection.Name = Sheets("produit").Range("a" & i)
Selection.Caption = Sheets("produit").Range("a" & i)
Selection.OnAction = "test"
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20
End If
Next
End Sub

6 réponses

Avatar
Jacquouille
Bonjour
Je ne sais pas te donner la syntaxe, mais pourquoi ne te sers-tu pas de
l'enregistreur de macro?
Tu colories un bouton et tu verras la syntaxe employée....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Patrick Leguet" a écrit dans le message de groupe de discussion :
50687bb0$0$1731$

Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là je
coince. si vous aviez une idée...
d'avance merci
patrick

Sub Ajoutbouton()
Dim Nom As String
a = 0.75
b = 0.75
C = 60
d = 20
For i = 1 To 100
ActiveSheet.Buttons.Add(a, b, C, d).Select
Selection.Name = Sheets("produit").Range("a" & i)
Selection.Caption = Sheets("produit").Range("a" & i)
Selection.OnAction = "test"
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20
End If
Next
End Sub
Avatar
MichD
Bonjour,

Avec ce type de bouton, seul le texte sur le bouton peut avoir la couleur de
ton choix.

Comme ceci :
'--------------------------------------------
Sub Ajoutbouton()
Dim Nom As String
Dim Bouton As Object
a = 0.75
b = 0.75
C = 60
d = 20
For i = 1 To 100
With ActiveSheet
Set Bouton = .Buttons.Add(a, b, C, d)
With Bouton
.Name = Sheets("produit").Range("a" & i)
.Caption = Sheets("produit").Range("a" & i)
.OnAction = "test"
.Font.Color = RGB(125, 10, 250)
End With
End With
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20
End If
Next
End Sub
'--------------------------------------------




MichD
---------------------------------------------------------------
"Patrick Leguet" a écrit dans le message de groupe de discussion :
50687bb0$0$1731$

Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là je
coince. si vous aviez une idée...
d'avance merci
patrick

Sub Ajoutbouton()
Dim Nom As String
a = 0.75
b = 0.75
C = 60
d = 20
For i = 1 To 100
ActiveSheet.Buttons.Add(a, b, C, d).Select
Selection.Name = Sheets("produit").Range("a" & i)
Selection.Caption = Sheets("produit").Range("a" & i)
Selection.OnAction = "test"
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20
End If
Next
End Sub
Avatar
Gloops
Patrick Leguet a écrit, le 30/09/2012 19:07 :
Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là j e
coince. si vous aviez une idée...
d'avance merci




Bonjour,

Pour situer quoi faire de ce que je vais dire il faut que je commence
par me présenter : j'ai beaucoup programmé sous Excel, mais depuis 20 00
je passe plus de temps sous Access, et dernièrement je suis passé à .Net.
Quelquefois il me semble pouvoir répondre même en n'ayant pas Excel s ous
la main, surtout quand la question porte sur la logique. Là, sur
l'interface, c'est plus gonflé, d'où le préambule.

J'ai eu un client qui m'a fait la même demande sous Access : là, j'ai dû
refaire toute l'interface pour remplacer les boutons par des étiquettes ,
au motif que les étiquettes permettent de choisir leur couleur de fond,
et ont aussi un événement clic.

ça a pris du temps qui a retardé le projet (d'autant que la proprié té
Text du bouton devait être remplacée par la propriété Caption de
l'étiquette), ça, c'est le client que ça regarde.

Maintenant, il faut voir jusqu'à quel point ça peut se transposer à
Excel, auquel cas ça te donnera peut-être des idées.
Avatar
Patrick Leguet
Je vais etudier cette piste.
merci pour cette idée

"Gloops" a écrit dans le message de news:
k4am1q$k84$
Patrick Leguet a écrit, le 30/09/2012 19:07 :
Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici
tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là je
coince. si vous aviez une idée...
d'avance merci




Bonjour,

Pour situer quoi faire de ce que je vais dire il faut que je commence
par me présenter : j'ai beaucoup programmé sous Excel, mais depuis 2000
je passe plus de temps sous Access, et dernièrement je suis passé à .Net.
Quelquefois il me semble pouvoir répondre même en n'ayant pas Excel sous
la main, surtout quand la question porte sur la logique. Là, sur
l'interface, c'est plus gonflé, d'où le préambule.

J'ai eu un client qui m'a fait la même demande sous Access : là, j'ai dû
refaire toute l'interface pour remplacer les boutons par des étiquettes,
au motif que les étiquettes permettent de choisir leur couleur de fond,
et ont aussi un événement clic.

ça a pris du temps qui a retardé le projet (d'autant que la propriété
Text du bouton devait être remplacée par la propriété Caption de
l'étiquette), ça, c'est le client que ça regarde.

Maintenant, il faut voir jusqu'à quel point ça peut se transposer à
Excel, auquel cas ça te donnera peut-être des idées.
Avatar
isabelle
bonjour Patrick,

une autre piste,

Sub Ajoutbouton()
Dim Nom As String
Dim Bouton As Object
a = 0.75
b = 0.75
c = 60
d = 20.25
For i = 1 To 10
With ActiveSheet
Set Bouton = .Shapes.AddShape(msoShapeCube, a, b, c, d)
With Bouton
.Placement = xlFreeFloating
.Fill.Solid
.Fill.Transparency = 0#
.Fill.ForeColor.RGB = RGB(200, 186, 200) ' couleur de fond
.Line.BackColor.RGB = RGB(0, 250, 500) ' couleur de contour
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Visible = msoTrue
.Line.Weight = 1.8
With .TextFrame.Characters
.Text = "cb" & i
.Font.Name = "Arial Narrow"
.Font.Size = 12
.Font.Bold = True
.Font.Shadow = True
.Font.ColorIndex = 5 ' couleur de texte
End With
End With
End With
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20.25
End If
Next
End Sub

--
isabelle



Le 2012-09-30 13:07, Patrick Leguet a écrit :
Bonjour le groupe,
sur une feuille j'ajoute des boutons avec la macro suivante (jusqu'ici tout
va bien), et je voudrais mettre de la couleur sur ces boutons et là je
coince. si vous aviez une idée...
d'avance merci
patrick

Sub Ajoutbouton()
Dim Nom As String
a = 0.75
b = 0.75
C = 60
d = 20
For i = 1 To 100
ActiveSheet.Buttons.Add(a, b, C, d).Select
Selection.Name = Sheets("produit").Range("a" & i)
Selection.Caption = Sheets("produit").Range("a" & i)
Selection.OnAction = "test"
a = a + 60
If a = 600.75 Then
a = 0.75
b = b + 20
End If
Next
End Sub


Avatar
isabelle
ou bien avec des ActiveX

Sub AjoutCommandButton_Feuille()
Dim Ws As Worksheet
Dim Obj As OLEObject
Dim laMacro As String
Dim x As Integer

Set Ws = ActiveSheet

l = 0.75
t = 0.75
w = 60
h = 20.25

For i = 1 To 10

Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
With Obj
.Left = l
.Top = t
.Width = w
.Height = h
.Object.ForeColor = RGB(255, 0, 0) 'Couleur de texte
.Object.BackColor = RGB(211, 217, 217) 'Couleur de fond
.Object.Caption = "CB" & i
End With

'création de la macro:
laMacro = "Sub CommandButton" & i & "_Click()" & vbCrLf
laMacro = laMacro & "MsgBox ""CommandButton " & i & vbCrLf
laMacro = laMacro & "End Sub"

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
x = .CountOfLines + 1
.InsertLines x, laMacro
End With

l = l + 60
If l = 600.75 Then
l = 0.75
t = t + 20.25
End If
Next
End Sub


--
isabelle