Macro dans une formule est ce possible?

Bonjour à toutes et tous!

Est il possible de lancer une macro en passant par une formule?

Merci

Bonjour,

au premier abord, je dirais "Oui", mais sans précision sur ce que tu veux....

Quelle formule?

Le lancement de la formule doit-il déclencher la macro?

oui c'est exactement ce que je veux : ouvrir une macro avec une formule...

EX Si A1 =1 "lancer la maro1"

merci

Bonjour,

Par rapport à ton exemple, si tu veux que la macro s'exécute lorsque la valeur de A1 est égale à 1, utilise cette macro :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
If Target = 1 Then vacoch
End If
End Sub

avec Vacoch le nom de ta macro.

est-ce cela que tu souhaites ?

Dan

En fait c'est une formule que je voudrais pas une macro, pour que je puisse l'adapter sur toute ma feuille.

=SI(A1=1;"lancer la macro1";0)

merci

Re,

Peux-tu mettre un fichier exemple ?

Dan

Bien sur,

Si la cellule fin doseur est >0 je veux l'heure dans la cellule H CHT

j'ai une macro qui fait l'opération (inscrire l'heure dans la cellule active), par contre je voudrais qu'elle se lance via une formule...(si fin doseur est >0 lancer la macro)

Merci

https://www.excel-pratique.com/~files/doc/vacoch.xls

Bonjour,

je ne vois pas trop l'intérêt de la formule?????

veux-tu remplacer ta formule par l'heure, c'est à dire que dès que la valeur de la cellule fin doseur est >0, la cellule H CHT (qui contient la formule) indique l'heure?

ou sinon, où comptes-tu mettre la formule?

c'est tout à fait ça... la formule sera dans H CHT.

mais je ne veux pas que cette heure (une fois inscrite) change. C'est pour cela que je veux passer par une macro (dans la formule)...

Re-,

regarde le fichier joint

dans la cellule H CHT, cette formule :

=SI(J3>0;"mettre_heure";"")

et dans le code de la feuille :

Private Sub Worksheet_Calculate()
On Error Resume Next
For Each cel In Columns(1).SpecialCells(xlCellTypeFormulas, 23)
    If cel.Value = "mettre_heure" Then cel.Value = Format(Now, "hh:mm:ss")
Next cel
On Error GoTo 0
End Sub

https://www.excel-pratique.com/~files/doc/vacochv1.zip

Super, cela devrait fonctionner!

Cela ne fonctionne pas quand ma feuille est protégée...

Effectivement je n'avais pas vu le dernier post qui fonctionne même la feuille protégée en tout cas merci...

re,

y'a pas de quoi !

tu pourrait quand même répondre au post précédent "instant T"

amicalement

Claude.

Re-,

pour la protection, rajoute ces deux lignes :

Private Sub Worksheet_Calculate()
[b]ActiveSheet.Unprotect[/b]
On Error Resume Next
For Each cel In Columns(1).SpecialCells(xlCellTypeFormulas, 23)
    If cel.Value = "mettre_heure" Then cel.Value = Format(Now, "hh:mm:ss")
Next cel
On Error GoTo 0
[b]ActiveSheet.Protect[/b]
End Sub

merci felix

par contre les codes ne fonctionnent pas sur mon fichier original...pouvez vous y regarder?

ci-joint https://www.excel-pratique.com/~files/doc/origin.xls

merci

Bonjour,

dans l'évènement de feuille (clic droit sur le nom de l'onglet, Visualiser le code), tu effaces l'ancien code, et tu mets celui-ci :

Private Sub Worksheet_Calculate()
On Error Resume Next
For Each cel In Columns(19).SpecialCells(xlCellTypeFormulas, 23)
    If cel.Value = "mettre_heure" Then cel.Value = Format(Now, "hh:mm:ss")
Next cel
On Error GoTo 0
End Sub
Rechercher des sujets similaires à "macro formule possible"