une fonction peut elle executer une macro ?

zak13

XLDnaute Nouveau
salut,
besoin d'aide, est il possible que le resultat d'une cellule puisse faire executer une macro .
Je vous en dit plus !! j'ai une fonction de 'SI ' qui dit d'ecrire '1' dans une cellule si c vrai; et j'aimerais que si la cellule =1 qu'une macro soit executé!! est ce possible soit sous excel soit en vba.

Merci
 

bertgrav

XLDnaute Occasionnel
la réponse est oui,

tu fais ta recherche 'si' avec une macro et lors de l'interrogation:

if range('a1') = 1 then
call macroperso



ce qui fait que si la cellule a1 = 1 tu commande la macro 'macroperso'
et si a1 différent de 1 tu ne commandes pas

amicalement

chantal
 

ziopizza

XLDnaute Occasionnel
Bonjour à tous,
un petit exemple joint.
Salut
Yves [file name=coucou_20060427191104.zip size=6302]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/coucou_20060427191104.zip[/file]
 

Pièces jointes

  • coucou_20060427191104.zip
    6.2 KB · Affichages: 38

bertgrav

XLDnaute Occasionnel
tout est dit dans l'exemple à ziopizza

tu fais ta 1ere macro normalement, et tu poses ta condition, à la réponse pour oui tu commandes la 2eme macro (il y a 2 façons soit tu mets call avant le nom de la macro, soit tu mets directement le nom de la macro)à la fin de la procédure de la seconde macro, ça revient automatiquement à la 1ere (à l'endroit où la seconde procédure a été appelée)pour continuer (dans ce cas si c'est fini signale par exemeple d'aller à la fin de la procédure)

amicalement

chantal
 

porcinet82

XLDnaute Barbatruc
Bonjour a tous,

Juste une petite précision, moi j'utiliserai plutot une instruction Private Sub Worksheet_Change(ByVal Target As Range) plutot qu'une procédure Private Sub Worksheet_SelectionChange(ByVal Target As Range) qui se declenche a chaque changement se cellule.

De plus, il n'est peut etre pas necessaire de ré-executer la macro des que le contenu d'une cellule change, mais seulement si le contenu de la cellule A1 change, donc je mettrais un code de ce genre, apres tout depend de ce que tu veux faire...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.AddressLocal(0, 0) = 'A1' And Target.Value = 1 Then
    'le code de ta macro
End If
End Sub

@+
 

Discussions similaires

Réponses
21
Affichages
293

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote