OVH Cloud OVH Cloud

Bouton et macros

11 réponses
Avatar
montigny
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2 choix (un choix : oui et un choix avec un autre nom différent à chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois quel nom la cellule contient (obligé de cliquer sur le menu déroulant pour voir). Si je met le choix sur le nom autre que "e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci sa me met la cellule à laquelle ils sont affectés (par lien hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur couleur de départ si on reclic dessus (il y a une image sur chaque rectangle)

- Changent la couleur de la cellule à laquelle ils font référence (et remettent la couleur de départ si on reclic sur le bouton) et affichent le nom de départ en blanc une fois la couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais sa ne marchait pas apparemment (aucun changement) , j'ai aussi farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier [url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url] (serveur de mon fai)

Merci d'avance :)

10 réponses

1 2
Avatar
isabelle
bonjour,

pour enregistrer une macro associée à une forme de la barre d'outils dessin,
fait un clic droit sur cette forme et sélectionne "Affecter une macro"
sur la fenêtre "Affecter une macro" clic sur le bouton "Enregistrer..."
dès lors la fenetre "Enregistrer une macro" s'ouvre et montre le nom sous lequel la macro sera enregistrer
et dans quel classeur celle-ci sera enregistrer.
un clic sur "OK" démarre l'enregistrement de la macro,
à ce moment tu peut sélectionner une cellule et changer sa couleur.
une fois les actions à reproduire sont faites tu doit faire un clic sur le bouton "Arreter l'enregistrement"
ce bouton est situé sur la barre d'outils macro, ou au menu > Outils > Macro

pour visualiser le code que tu vient d'enregistrer, je te propose une petite lecture
à propos de l'environnement vba : http://www.excel-pratique.com/fr/vba/premiere_macro.php


--
isabelle




Le 2012-10-06 18:55, montigny a écrit :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des rectangles
aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque feuille. Pour
chaque cellules des colonnes j'ai un menu déroulant avec 2 choix (un choix : oui
et un choix avec un autre nom différent à chaque cellule) . Lorsque l'on met le
choix sur "e;Oui"e; , la couleur de la cellule passe au vert (j'ai du mettre
"e;Oui"e; en vert pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à
chaque fois quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que "e;Oui"e; la
couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins arrondis
que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci sa me met
la cellule à laquelle ils sont affectés (par lien hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur couleur de
départ si on reclic dessus (il y a une image sur chaque rectangle)

- Changent la couleur de la cellule à laquelle ils font référence (et remettent
la couleur de départ si on reclic sur le bouton) et affichent le nom de départ
en blanc une fois la couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais sa ne
marchait pas apparemment (aucun changement) , j'ai aussi farfouillé sur le net ,
mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)

Avatar
isabelle
j'oubliais,

pour faire le changement de couleur lors du clic
tu devra ajouter une vérification dans la macro
voici un exemple (en supposant que ce soit pour la cellule A1)

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
Else
.Interior.ColorIndex = xlNone
End If
End With
End Sub

tu peut aussi utiliser une seul bouton qui agit sur la cellule sélectionnée

Sub Rectangle1_QuandClic()
With Selection
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
Else
.Interior.ColorIndex = xlNone
End If
End With
End Sub

--
isabelle
Avatar
montigny
Le dimanche 07 Octobre 2012 à 00:55 par montigny :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des
rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque
feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2
choix (un choix : oui et un choix avec un autre nom différent à
chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la
couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert
pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois
quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que
"e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins
arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci
sa me met la cellule à laquelle ils sont affectés (par lien
hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur
couleur de départ si on reclic dessus (il y a une image sur chaque
rectangle)

- Changent la couleur de la cellule à laquelle ils font
référence (et remettent la couleur de départ si on reclic
sur le bouton) et affichent le nom de départ en blanc une fois la
couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais
sa ne marchait pas apparemment (aucun changement) , j'ai aussi
farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)


C'est bien ce que j'essayais de faire avec la fonction enregistrement de macro :)

Mais je ne savait pas qu'il fallait insérer une vérification , d'ailleurs , à quel moment je dois l'insérer dans la macro ?

Merci pour l'aide en tout cas :)
Avatar
montigny
Le dimanche 07 Octobre 2012 à 00:55 par montigny :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des
rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque
feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2
choix (un choix : oui et un choix avec un autre nom différent à
chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la
couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert
pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois
quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que
"e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins
arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci
sa me met la cellule à laquelle ils sont affectés (par lien
hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur
couleur de départ si on reclic dessus (il y a une image sur chaque
rectangle)

- Changent la couleur de la cellule à laquelle ils font
référence (et remettent la couleur de départ si on reclic
sur le bouton) et affichent le nom de départ en blanc une fois la
couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais
sa ne marchait pas apparemment (aucun changement) , j'ai aussi
farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)


J'ai utilisé :

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
Else
.Interior.ColorIndex = xlNone
End If
End With
End Sub

Sa marche très bien :)

Par contre je suis obligé de faire une macro pour chaque rectangle ? (vu qu'il se réfèrent tous à une cellule différente...)

De plus j'aurais aussi aimé que le rectangle change de couleur quand je clic dessus

Style :

Couleur "de départ" :

With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 240)
.Transparency = 0
End With
With Selection.ShapeRange.Glow
.Color.ObjectThemeColor = msoThemeColorAccent5
.Color.TintAndShade = 0
.Color.Brightness = 0
.Transparency = 0.6000000238
.Radius = 11
End With

Couleur quand clic dessus :

ActiveSheet.Shapes.Range(Array("Gamma 09")).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 255, 0)
.Transparency = 0
End With
With Selection.ShapeRange.Glow
.Color.ObjectThemeColor = msoThemeColorAccent3
.Color.TintAndShade = 0
.Color.Brightness = 0
.Transparency = 0.6000000238
.Radius = 18
End With

Merci :)
Avatar
montigny
Le dimanche 07 Octobre 2012 à 00:55 par montigny :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des
rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque
feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2
choix (un choix : oui et un choix avec un autre nom différent à
chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la
couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert
pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois
quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que
"e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins
arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci
sa me met la cellule à laquelle ils sont affectés (par lien
hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur
couleur de départ si on reclic dessus (il y a une image sur chaque
rectangle)

- Changent la couleur de la cellule à laquelle ils font
référence (et remettent la couleur de départ si on reclic
sur le bouton) et affichent le nom de départ en blanc une fois la
couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais
sa ne marchait pas apparemment (aucun changement) , j'ai aussi
farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)


Autre question (décidément :p ) :

Pour la couleur de la cellule , tu as mis 6 et xINone , mais y a t'il moyen de transformer ça en RGB ? (plus facile pour choisir une couleur)

j'ai essayé ça :

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = RGB(221, 217, 196) Then
.Interior.ColorIndex = RGB(0, 170, 80)
Else
.Interior.ColorIndex = RGB(221, 217, 196)
End If
End With
End Sub

Mais sa me met une erreur a :

Else
.Interior.ColorIndex = RGB(221, 217, 196)
Avatar
isabelle
bonjour,

Sub Rectangle1_QuandClic()
With Selection
Select Case .Interior.Color
Case Is = 8421376: .Interior.Color = RGB(221, 217, 196)
Case Is = 12632256: .Interior.Color = RGB(0, 170, 80)
End Select
End With
End Sub

--
isabelle


Le 2012-10-08 06:33, montigny a écrit :

j'ai essayé ça :

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = RGB(221, 217, 196) Then
Interior.ColorIndex = RGB(0, 170, 80)
Else
Interior.ColorIndex = RGB(221, 217, 196)
End If
End With
End Sub

Mais sa me met une erreur a :

Else
Interior.ColorIndex = RGB(221, 217, 196)

Avatar
montigny
Le dimanche 07 Octobre 2012 à 00:55 par montigny :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des
rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque
feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2
choix (un choix : oui et un choix avec un autre nom différent à
chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la
couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert
pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois
quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que
"e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins
arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci
sa me met la cellule à laquelle ils sont affectés (par lien
hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur
couleur de départ si on reclic dessus (il y a une image sur chaque
rectangle)

- Changent la couleur de la cellule à laquelle ils font
référence (et remettent la couleur de départ si on reclic
sur le bouton) et affichent le nom de départ en blanc une fois la
couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais
sa ne marchait pas apparemment (aucun changement) , j'ai aussi
farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)


Bonjour :)

Je viens d'essayer la réponse que tu m'as donner , mais sa ne fonctionne pas du tout :/

La case ne change plus de couleur.

J'ai essayé de remplacer "e;With Selection"e; par Range("e;A1"e;) mais même résultat.

Te prend pas la tête sinon , j'ai trouvé un site donnant les équivalents en 56 et RGB :) (je mettrais des couleurs en 56 , c'est pas grave)

J'aimerais aussi juste savoir comment changer la couleur (contours , glow ect ...comme dit plus haut) de mon rectangle aux coins arrondis en même temps que la couleur de la case :)

Encore merci à toi de m'aider ;)
Avatar
isabelle
pour changer la couleur du contour,

ActiveSheet.Shapes("Rectangle 1").Line.ForeColor.RGB = RGB(0, 100, 300)

--
isabelle


Le 2012-10-09 04:14, montigny a écrit :

Bonjour :)

Je viens d'essayer la réponse que tu m'as donner , mais sa ne fonctionne pas du
tout :/

La case ne change plus de couleur.

J'ai essayé de remplacer "e;With Selection"e; par Range("e;A1"e;) mais même
résultat.

Te prend pas la tête sinon , j'ai trouvé un site donnant les équivalents en 56
et RGB :) (je mettrais des couleurs en 56 , c'est pas grave)

J'aimerais aussi juste savoir comment changer la couleur (contours , glow ect
..comme dit plus haut) de mon rectangle aux coins arrondis en même temps que la
couleur de la case :)

Encore merci à toi de m'aider ;)

Avatar
montigny
Le dimanche 07 Octobre 2012 à 00:55 par montigny :
Bonjoir à toutes et tous !

J'ai un "e;soucis"e; sur excel , dans mon fichier, j'ai inclus des
rectangles aux coins arrondis , et j'aimerais qu'ils me servent de boutons .

J'explique ce que j'ai fait actuellement :

- J'ai créé plusieurs feuilles , dedans , 3 colonnes dans chaque
feuille. Pour chaque cellules des colonnes j'ai un menu déroulant avec 2
choix (un choix : oui et un choix avec un autre nom différent à
chaque cellule) . Lorsque l'on met le choix sur "e;Oui"e; , la
couleur de la cellule passe au vert (j'ai du mettre "e;Oui"e; en vert
pour ne pas qu'il s'affiche) . Si bien que je ne sais plus à chaque fois
quel nom la cellule contient (obligé de cliquer sur le menu
déroulant pour voir). Si je met le choix sur le nom autre que
"e;Oui"e; la couleur revient à celle de départ.

- Sur chaque feuille , j'ai aussi créer autant de rectangles aux coins
arrondis que de noms pour chaque cellules des colonnes. si je clic sur ceux-ci
sa me met la cellule à laquelle ils sont affectés (par lien
hypertexte).

Voilà , j'aimerais que les rectangles :

- Changent de couleur lorsque l'on clic dessus et reviennent à leur
couleur de départ si on reclic dessus (il y a une image sur chaque
rectangle)

- Changent la couleur de la cellule à laquelle ils font
référence (et remettent la couleur de départ si on reclic
sur le bouton) et affichent le nom de départ en blanc une fois la
couleur changée (donc plus besoin de menu déroulant)

- Que lorsque l'on survole les Rectangles qui servent de boutons sa soit le nom
de la cellule liées et non le chemin de l'image apposée dessus).

Je n'y connais rien en macro (j'ai bien essayé d'en enregistrer , mais
sa ne marchait pas apparemment (aucun changement) , j'ai aussi
farfouillé sur le net , mais sans succès :( )

vous pouvez récupérer le fichier
[url=http://angaste.free.fr/PiecesPuzzles1.xlsm][color=red][b]ici[/b][[/color][/url]
(serveur de mon fai)

Merci d'avance :)


Héhé encore merci à toi :)

Dernière question :

ActiveSheet.Shapes("Rectangle 1").Line.ForeColor.RGB = RGB(0, 100, 300) se met où dans la macro que tu m'avais filé ? et il va falloir que je rajout la même ligne de cmd mais avec des couleurs différentes si je veux que sa fasse comme pour la case ? Et si oui , où cette ligne se met-elle dans la macro ? ^^

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
Else
.Interior.ColorIndex = xlNone
End If
End With
End Sub

Je ne t'embête plus ensuite (que sa marche ou non ;p )

Merci :)
Avatar
isabelle
voilà,

Sub Rectangle1_QuandClic()
With Selection
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
ActiveSheet.Shapes("Rectangle 1").Line.ForeColor.RGB = RGB(300, 100, 300)
Else
.Interior.ColorIndex = xlNone
ActiveSheet.Shapes("Rectangle 1").Line.ForeColor.RGB = RGB(0, 100, 300)
End If
End With
End Sub

--
isabelle


Le 2012-10-10 03:17, montigny a écrit :

Héhé encore merci à toi :)

Dernière question :

ActiveSheet.Shapes("Rectangle 1").Line.ForeColor.RGB = RGB(0, 100, 300) se met
où dans la macro que tu m'avais filé ? et il va falloir que je rajout la même
ligne de cmd mais avec des couleurs différentes si je veux que sa fasse comme
pour la case ? Et si oui , où cette ligne se met-elle dans la macro ? ^^

Sub Rectangle1_QuandClic()
With Range("A1")
If .Interior.ColorIndex = xlNone Then
Interior.ColorIndex = 6
Else
Interior.ColorIndex = xlNone
End If
End With
End Sub

Je ne t'embête plus ensuite (que sa marche ou non ;p )

Merci :)

1 2