Activer une macro excel par une formule
Résolu/Fermé
simpsons
-
27 mars 2011 à 22:41
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 31 mars 2011 à 21:14
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 31 mars 2011 à 21:14
A voir également:
- Formule macro excel
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel mise en forme conditionnelle formule - Guide
8 réponses
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
951
27 mars 2011 à 23:10
27 mars 2011 à 23:10
Salut le forum
Code à mettre dans le module dans la feuille
Mytå
Code à mettre dans le module dans la feuille
Private Sub Worksheet_Calculate() If Range("A1") = 5 Then 'Ici ton action End If End Sub
Mytå
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
27 mars 2011 à 23:12
27 mars 2011 à 23:12
bonjour
il faut utiliser la macro événementielle calculate avec un code bien adapté car elle se déclenche souvent.
il faut utiliser la macro événementielle calculate avec un code bien adapté car elle se déclenche souvent.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
28 mars 2011 à 00:11
28 mars 2011 à 00:11
bonsoir,
La macro événementielle, c'est celle que Mytå (salut à toi) t'as proposée.
La macro s'active toute seule dès que ton classeur se calcule : tu n'as même pas besoin de formule pour la lancer.
De toute façon, si tu veux lancer une macro, va bien falloir l'écrire ?
Si tu l'as enregistrée ("ma_macro" par exemple),
tu cliques droit sur le nom de ta feuille
tu choisis visualiser le code
tu as "général" avec une flèche à droite : tu sélectionnes "worksheet"
tu obtiens
sur la flèche à droite de "SelectionChange" tu choisis "Calculate"
tu obtiens
entre les 2 lignes tu écris le code de Mytå
en remplaçant A1 par ta cellule et ma_macro par ton nom
Dès que tu changes une cellule qui fait que A1 est égale à 1 ton action se déroule.
La macro événementielle, c'est celle que Mytå (salut à toi) t'as proposée.
La macro s'active toute seule dès que ton classeur se calcule : tu n'as même pas besoin de formule pour la lancer.
De toute façon, si tu veux lancer une macro, va bien falloir l'écrire ?
Si tu l'as enregistrée ("ma_macro" par exemple),
tu cliques droit sur le nom de ta feuille
tu choisis visualiser le code
tu as "général" avec une flèche à droite : tu sélectionnes "worksheet"
tu obtiens
Private Sub Worksheet_(ByVal Target As Range) End Sub
sur la flèche à droite de "SelectionChange" tu choisis "Calculate"
tu obtiens
Private Sub Worksheet_Calculate() End Sub
entre les 2 lignes tu écris le code de Mytå
If Range("A1") = 1 Then call ma_macro End If
en remplaçant A1 par ta cellule et ma_macro par ton nom
Dès que tu changes une cellule qui fait que A1 est égale à 1 ton action se déroule.
merci pour la reponse myta,mais pour moi c'est du chinois,je suis novice
faire une macro ca va,j'enregistre ce que je fais c'est cool, pas besoin de connaitre vba,
j'aurais aimé avoir une formule du genre
si(a1=1;activemacro;"")
est ce possible merci d'avance
faire une macro ca va,j'enregistre ce que je fais c'est cool, pas besoin de connaitre vba,
j'aurais aimé avoir une formule du genre
si(a1=1;activemacro;"")
est ce possible merci d'avance
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
951
Modifié par Mytå le 28/03/2011 à 00:39
Modifié par Mytå le 28/03/2011 à 00:39
Re le forum
Gbinforme ta répondu sur le Permalink#6 pour implanter le code
Sinon, tu pourrais toujours utiliser une fonction personnalisée
Et ta formule donnerais
Mytå
Gbinforme ta répondu sur le Permalink#6 pour implanter le code
Sinon, tu pourrais toujours utiliser une fonction personnalisée
Public Function Bidule() Bidule = 3 End Function
Et ta formule donnerais
=SI(A1=1;Bidule();FAUX)
Mytå
Private Sub Worksheet_Calculate()
End Sub
If Range("A1") = 1 Then
Call macro_1
End If
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
j'ai reussi a ecrire ca mais ca marche pas quand je met 1 dans a1 la macro ne se
declenche pas
End Sub
If Range("A1") = 1 Then
Call macro_1
End If
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
j'ai reussi a ecrire ca mais ca marche pas quand je met 1 dans a1 la macro ne se
declenche pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
29 mars 2011 à 22:04
29 mars 2011 à 22:04
bonjour
Comme ceci car tu as mis ton code en dehors :
Comme ceci car tu as mis ton code en dehors :
Private Sub Worksheet_Calculate() If Range("A1") = 1 Then Call macro_1 End If End Sub
j'ai recopié ta commande mais ca ne fonctionne pas, le nom de ma macro
est macro1 est non pas macro_1,si j'affecte ma macro a une image elle fonctionne par contre si je met 1 dans a1 rien ne se passe, je pense que c'est trop compliqué pour un ptit cerveau comme le mien,un jour il faudra que je me decide a apprendre vba, en attendant je te remercie de ta patience,des questions sur excel j'en ai plein si un jour tu t'ennuie n'hesite pas,mais quand je vois toutes ces questions sur le forum je penses que tu as de quoi faire, encore une fois merci
simpsons
est macro1 est non pas macro_1,si j'affecte ma macro a une image elle fonctionne par contre si je met 1 dans a1 rien ne se passe, je pense que c'est trop compliqué pour un ptit cerveau comme le mien,un jour il faudra que je me decide a apprendre vba, en attendant je te remercie de ta patience,des questions sur excel j'en ai plein si un jour tu t'ennuie n'hesite pas,mais quand je vois toutes ces questions sur le forum je penses que tu as de quoi faire, encore une fois merci
simpsons
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
29 mars 2011 à 23:13
29 mars 2011 à 23:13
le nom de ma macro est macro1 est non pas macro_1
eh bien tu mets
petit rappel : en remplaçant A1 par ta cellule et ma_macro par ton nom
eh bien tu mets
Call macro1
petit rappel : en remplaçant A1 par ta cellule et ma_macro par ton nom
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
951
29 mars 2011 à 23:15
29 mars 2011 à 23:15
Re le forum
Tu as bien copié le code dans le module de ta feuille, pas dans un module standard.
Mytå
Tu as bien copié le code dans le module de ta feuille, pas dans un module standard.
Mytå
yes ca marche quand je met =1 dans a1 mais pas avec 1 tout seul
j'ai progressé merci encore je penses m'en sortir c'est super genial je ne sais pas ce que j'ai ecrit car j'ai recopié ta commande mais ca marche encore un grand merci
simpsons
j'ai progressé merci encore je penses m'en sortir c'est super genial je ne sais pas ce que j'ai ecrit car j'ai recopié ta commande mais ca marche encore un grand merci
simpsons
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
951
Modifié par Mytå le 29/03/2011 à 23:38
Modifié par Mytå le 29/03/2011 à 23:38
Re le forum
Tu avais demander : j'aimerais activer une macro par une formule
Pour le changement de la valeur d'une cellule utilise plutôt
Ton code pourrait alors ressembler à ceci
Mytå
Tu avais demander : j'aimerais activer une macro par une formule
Pour le changement de la valeur d'une cellule utilise plutôt
Private Sub Worksheet_Change(ByVal Target As Range)
Ton code pourrait alors ressembler à ceci
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1")) Then MsgBox "hello" End If End Sub
Mytå
ca marche c'est genial merci myta merci gbinform oh dieu de l'informatique
je ne sais pas ce que j'ai fait mais ca marche vous etes geniaux
super continez a aidez un grand merci les ptits loups
simpsons
je ne sais pas ce que j'ai fait mais ca marche vous etes geniaux
super continez a aidez un grand merci les ptits loups
simpsons
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
31 mars 2011 à 21:14
31 mars 2011 à 21:14
Je suis content pour toi mais n'oublies pas qu'en informatique il faut être très méticuleux dans l'encodage des procédures car la moindre erreur anéanti la meilleure des fonctions.
Tu as persévéré et j'espère que tu vas continuer et dans quelques semaines, c'est toi qui en aidera des plus débutants.
C'était temps de réussir car demain nous ne t'aurions pas cru :)
Tu as persévéré et j'espère que tu vas continuer et dans quelques semaines, c'est toi qui en aidera des plus débutants.
C'était temps de réussir car demain nous ne t'aurions pas cru :)