Exécuter une macro depuis la barre de formule ?

Bonjour à tous

Existe il une fonction qui permet d'exécuter une macro ou une fonction (écrite en VB) depuis la barre de formule ?.

J'ai des cellules qui doivent faire des calcules et des recherches des données que je ne peux pas les faire avec une formule (va étre trop longue). Je pensais écrire une macro en VB mais je ne sais pas encore comment l'exécuter depuis la barre de formule Excel (2003).

merci d'avance pour votre aide

Bonjour,

Je ne vois pas comment tu pourrais faire cela. Il faut voir ton pb autrement.

Si tu veux qu'une macro soit déclenchée par le résultat d'une formule, c'est tout à fait possible.

Mets plutôt un fichier avec l'explication de ton souhait. On verra la meilleure solution à te proposer.

Amicalement

Dan

hello

concernant les formules trop longues, on peut (et pour des raisons le compréhension, à mon avis on doit) les découper entre pusieurs cellules

chaque cellule effectue une partie du calcul ou du traitement.

si ça peut éviter du VBA (que je pratique peu)

bon WE

Nad-Dan a écrit :

Bonjour,

Je ne vois pas comment tu pourrais faire cela. Il faut voir ton pb autrement.

Si tu veux qu'une macro soit déclenchée par le résultat d'une formule, c'est tout à fait possible.

Mets plutôt un fichier avec l'explication de ton souhait. On verra la meilleure solution à te proposer.

Amicalement

Dan

Merci Dan d'avoir prêter attention à mon message voici un exemple de fichier que j'espère peut cerner le problème:

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

Dahlia

Edit: Effacé par Amadéus; Doublon de réponse

chuis maladroit, hein

jmd a écrit :

hello

concernant les formules trop longues, on peut (et pour des raisons le compréhension, à mon avis on doit) les découper entre pusieurs cellules

chaque cellule effectue une partie du calcul ou du traitement.

si ça peut éviter du VBA (que je pratique peu)

bon WE

Bonjour Jmd

Merci pour votre réponse effectivement c'est un moyen de régler le problème de dépassent de taille des formules. Chose que j'ai déjà appliqué sur certains cellules.

Mais dans le cas actuel je dois absolument lancer une macro depuis la barre de formule :

Je re joint un extrait de fichier :

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

BonWE

Bonjour,

Ce qu'il faudrait, c'est ton fichier AVEC la macro RechDonnees.

A te relire

Amicalement

Nad

Bonsoir,

tu peux essayer avec ce code évènementiel (Clic droit sur le nom de l'onglet, Visualiser le code et coller ce code)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E6,E8")) Is Nothing And _
    Application.CountA(Range("E6,E8")) = 2 Then Call RechDonnee
End Sub
Nad-Dan a écrit :

Bonjour,

Ce qu'il faudrait, c'est ton fichier AVEC la macro RechDonnees.

A te relire

Amicalement

Nad

Bonsoir Nad

Voici un nouveau fichier exemple mais avec plus de details car j'ai toujour pas trouver une solution à ce problème de macro :

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

Merci d'avance pour tout aide

felix a écrit :

Bonsoir,

tu peux essayer avec ce code évènementiel (Clic droit sur le nom de l'onglet, Visualiser le code et coller ce code)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E6,E8")) Is Nothing And _
    Application.CountA(Range("E6,E8")) = 2 Then Call RechDonnee
End Sub

Merci Felix pout ton aide ce code fonctionne très bien. Le problème c'est que ce n'est pas toujour les cellules E6 et E8 qui entrent en condition. ci-joint le fichier :

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

Bonjour,

essaye avec ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro par Dan pour Dahlia le 29/04/08
If Not Intersect(Target, Range("E:E")) Is Nothing Then
If IsEmpty(Target) Then Exit Sub
    If Target.Offset(0, -3) = "Choix thérapeutique" And Not IsEmpty(Target.Offset(2, 0)) _
    Or Target.Offset(-2, -3) = "Choix thérapeutique" And Not IsEmpty(Target.Offset(-2, 0)) Then
    Call RechDonnee
End If
End If
End Sub

Amicalement

Dan

Nad-Dan a écrit :

Bonjour,

essaye avec ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro par Dan pour Dahlia le 29/04/08
If Not Intersect(Target, Range("E:E")) Is Nothing Then
If IsEmpty(Target) Then Exit Sub
    If Target.Offset(0, -3) = "Choix thérapeutique" And Not IsEmpty(Target.Offset(2, 0)) _
    Or Target.Offset(-2, -3) = "Choix thérapeutique" And Not IsEmpty(Target.Offset(-2, 0)) Then
    Call RechDonnee
End If
End If
End Sub

Amicalement

Dan

Ca fonctionne . C'est supper merci beaucoup.

5group.xlsx (94.30 Ko)

[

Bonsoir

Je ne suis pas certain d'avoir bien compris le problème, mais je voulais préciser

qu'il est tout à fait possible de créer ses propres fonctions

Exemple : création du fonction qui calcule le carré d'un nombre et qui ajoute 1 au résultat

Après création de la fonction, elle s'utilise comme les autres en l'insérant dans une cellule et en lui passant les arguments néccessaires.

Ce qui permet d'utiliser des formules trés complexes, l'écriture ce fait en VBA.

Un exepmle valant mieux qu'un long discours : voir le fichier joint.

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

Cordialement

Rechercher des sujets similaires à "executer macro barre formule"