Microsoft 365 Un macro qui alterne entre 2 valeurs

pat66

XLDnaute Impliqué
Bonjour le forum,

est il possible qu'en cliquant sur une forme l'on puisse, soit coller la valeur de BB15 dans A26 soit remettre A26 à zéro
Le 1er clic colle la valeur de BB15 dans A26
Le 2 ème clic remet A26 à zéro


merci d'avance pour vos conseils

cdt
 

pat66

XLDnaute Impliqué
Bonjour Le forum
Bonjour patricktoulon

Patrick vous m'aviez aidé avec cette macro qui fonctionne très bien et je vous en remercie encore
VB:
[A26]=array([BB15].value,0)(abs([A26].value=[bb15].value))

Pourriez vous encore m'aider mais cette fois en alternant la saisie de oui ou non dans la cellule N35

merci beaucoup
 

pat66

XLDnaute Impliqué
re,

merci patricktoulon, mais je t'ai induits en erreur, mille excuses !!

Ce n'est pas la police de N35 qui doit changer de couleur, mais la police de la forme ("Rectangle : coins arrondis 21")

je fais un clic sur un bouton :
[N35]=array("oui","non")(abs([N35].value="oui"))
Si N35 = "oui" alors la police du ("Rectangle : coins arrondis 21") devient rouge
clic suivant
N35 = "non", alors la police du ("Rectangle : coins arrondis 21") devient (rgb(0,32,96)

merci d'avance
 

patricktoulon

XLDnaute Barbatruc
encore une fois bonnet blanc blanc bonnet
activesheet.drawingobjects("Rectangle : coins arrondis 21").font.color=......le reste tu connais
vérifie le nom de ta shape des fois vba le reçois en anglais

et :
essaie un peu de comprendre la logique de cette ligne de code
tu va pas revenir a chaque fois que tu veux modifier ou t'en resservir pour autre chose

état=array(proposition1,proposition2)(abs(proposition=1))
état peut être une valeur , un état , une propriété , etc.....
 

pat66

XLDnaute Impliqué
re,

j'ai essayé avec les macros suivantes, mais cela ne fonctionne pas, pourrais-tu s'il te plait me mettre sur une piste ou me dire où je fais une erreur ?, merci d'avance

VB:
ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").Font.Color = Array(TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0,32,96), TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0))(Abs(ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0,32,96)))

ou aussi avec
VB:
ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").Font.Color = Array(Font.Color.RGB = RGB(0, 32, 96), Font.Color.RGB = RGB(255, 0, 0))(Abs(ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").Font.Color.RGB = RGB(0, 32, 96)))

ou aussi avec
Code:
ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").Font.Color = Array(Font.Color.RGB = RGB(0, 32, 96), Font.Color.RGB = RGB(255, 0, 0))(Abs(Font.Color.RGB = RGB(0, 32, 96)))

ou aussi avec

Code:
ActiveSheet.DrawingObjects("Rectangle : coins arrondis 21").Font.Color = Array(RGB(0, 32, 96), RGB(255, 0, 0))(Abs(RGB(0, 32, 96)))
 
Dernière édition:

pat66

XLDnaute Impliqué
bonjour le forum,

finalement j'ai opté pour une autre solution tout aussi efficace et j'ai modifié les couleurs
merci quand même
cdt

VB:
[N35] = Array("oui", "non")(Abs([N35].Value = "oui"))

If ActiveSheet.[N35].Value = "oui" Then
ActiveSheet.Shapes("Rectangle : coins arrondis 21").Fill.ForeColor.RGB = RGB(1, 122, 255)
ActiveSheet.Shapes("Rectangle : coins arrondis 21").TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 255, 255)
Else
ActiveSheet.Shapes("Rectangle : coins arrondis 21").Fill.ForeColor.RGB = RGB(149, 179, 215)
ActiveSheet.Shapes("Rectangle : coins arrondis 21").TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 32, 96)
End If
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 782
Messages
2 092 059
Membres
105 174
dernier inscrit
Pluton