lancer automatiquement une macro

ripo

XLDnaute Junior
Bonjour à tous,
Je souhaite:
- lancer la macro1 quand une cellule fixe est égal à 1
- lancer la macro2 quand la même cellule est égal à 2
et ce, automatiquement, sans bouton

Merci de votre aide si précieuse
A+
 

Dan

XLDnaute Barbatruc
Re,

Ripo si tu veux une chose comme ce que Lio propose voici aussi une autre solution plus simple :

Dans le fichier de Lio, en VBA, on supprime toutes les macros se trouvant dans ton fichier (module 2 et feuil1) et on remplace les par la seule macro ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Range('A1')
Case Is = 1
    Target.Interior.ColorIndex = 3
Case Is = 2
    Target.Interior.ColorIndex = 6
Case Is 'différent de' 1 Or 2
    Target.Interior.ColorIndex = -4142
End Select
End Sub

Macro à placer en feuil1 en VBA.

NB : Mets le signe correct correspondant à 'différent de' car il ne passe pas ici : ce sont
Bon travail

;)

Edition : Salut mon ami _thierry !!!

Message édité par: Dan, à: 23/01/2006 00:03
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir ripo, Jacques87, patbart1, lio, Dan, didique et @+Thierry :)

J'avais préparé quelquechose vers 23h mais comme j'ai eu un coup de fil (aïe !!!), je ne peux poster que maintenant.

Mon fichier n'apporte rien de plus et j'ai hésité à le mettre en pièce jointe car l'exemple de Thierry est suffisamment clair.

Si j'interviens malgré tout, c'est que j'ai vu une erreur de programmation dans le code de lio qui est reprise par Dan dans sa dernière proposition. Les parties de codes concernées sont :

If Range('A1').Value ‹› 1 Or 2

et

Case Is ‹› 1 Or 2

C'est correct en français : 'si la valeur est différente de 1 ou 2', mais pas en programmation car les priorités ont leur importance.

Dans le cas présent, ce qui a été écrit ci-dessus n'est pas interprété, comme on pourrait le penser à priori, comme ceci :

If (Range('A1').Value) ‹› (1 Or 2),

Mais du fait des priorités, elle l'est comme cela :

If (Range('A1').Value ‹› 1) Or (2)

Ce qui signifie qu'elle sera toujours évalué comme VRAI, car '2' = True...

Pour s'en persuader, il suffit de placer cette instruction en première condition pour s'apercevoir qu'elle intercepte tous les appels :ermm:

Bonne nuit à tous :)

[file name=MacrAuto_Ripo.zip size=11359]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MacrAuto_Ripo.zip[/file]

A+
 

Pièces jointes

  • MacrAuto_Ripo.zip
    11.1 KB · Affichages: 16

Dan

XLDnaute Barbatruc
Bonjour,

Charly2, je viens de lire ton commentaire et procéder à une vérification. Comme tu le précises le ' ‹› ' ne fonctionne pas.
Exemple : si on a la valeur 2 ou 1 en A1 et que l'on passe à la valeur 3, la couleur reste telle quelle. Par contre en passant à la valeur 4, le code fonctionne.
A vrai dire je n'ai pas trop vérifié cela d'autant que ce code est aussi dans le fichier de Lio.

Pour contourner, cela il suffit de remplacer :
Code:
Case is 'différent de' 1 or 2
par
Code:
Case Else

Bon reste plus qu'à Ripo a venir lire ce que l'on a proposé.:sick:
 

ripo

XLDnaute Junior
Bonsoir, Jacques87, patbart1, lio, Dan, didique et _Thierry, le forum

MERCI à toutes et à tous de votre investissement, aussi, j'ai pris le temps de 'tester' chacunes de vos propositions et je dois dire que cela reste encore un peu flou pour moi...(erreur)
Je joins mon fichier, non pas pour que vous me 'pondiez' la macro, mais avant tout comprendre mon erreur
Merci encore de votre sympathie
Ripo [file name=Classeur1ripo.zip size=8563]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1ripo.zip[/file]

Message édité par: ripo, à: 28/01/2006 22:34
 

Pièces jointes

  • Classeur1ripo.zip
    8.4 KB · Affichages: 16

Discussions similaires

Réponses
3
Affichages
175

Statistiques des forums

Discussions
312 452
Messages
2 088 546
Membres
103 880
dernier inscrit
rafaelredsc