Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gourdin

XLDnaute Impliqué
Bonjour

Je souhaite qu'une macro quand on la lance fasse une action puis quand on la lance à nouveau fasse une autre action etc..

Voir exemple précis pour mieux comprendre.

Merci
 

Pièces jointes

Re : Macro variable

Bonjour,

Un exemple de ce que tu as essayé de faire aurait été plus satisfaisant!

Mais voici:

Code:
Sub Bouton1_QuandClic()
Static i As Integer
[C6] = Array("banane", "tomate", "orange")(i)
i = IIf(i = 2, 0, i + 1)
End Sub

A+
 
Re : Macro variable

Bonjour,

Dans le même ordre d'idée et d'une façon plus générale:

Je souhaiterais après avoir executé une macro une première fois, l'annulé en déclenchant cette même macro.

Exemple concret concernant mon fichier :
1e déclenchement macro : met un fond rouge dans une cellule
2e déclenchement de la même macro : annule l'action du 1er déclenchement (et donc annule le fond rouge et revient au fond initial avant le 1e déclenchement)
3e déclenchement de la même macro remet le fond rouge
4e déclenchement :annule

etc..

Merci
 
Re : Macro variable

Bonjour,
On ne peut pas "annuler" une macro
La seule possibilité est de tester la couleur de la cellule active
Code:
Sub RougePasRouge()
ActiveCell.Interior.ColorIndex = IIf(ActiveCell.Interior.ColorIndex = 3, xlNone, 3)
End Sub
A+
kjin
 
Re : Macro variable

Merci Kjin,

Dans ce cas et pour mieux correspondre à mon problème concret voici mon souhait précis :

Quand j'execute la macro 1e fois : le fond de la cellule (initialement noire) devient rouge
Quand j'execute la macro une 2e fois le fond de la cellule devient noire

Quand j'execute la Macro une 3e fois le fond de la cellule devient rouge

etc..

Merci
 
Re : Macro variable

Re,
Une autre manière d'écrire le code précédent peut-être plus simple à comprendre, en remplacant xlnone(sans) par 1(noir)
Code:
Sub NoirRougeNoir()
If ActiveCell.Interior.ColorIndex = 1 Then
    ActiveCell.Interior.ColorIndex = 3
Else
    ActiveCell.Interior.ColorIndex = 1
End If
End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
507
Réponses
23
Affichages
680
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
663
Réponses
12
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…