Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Daylight

XLDnaute Nouveau
Bonjour,
Je ne connais pas le langage VBA, j'aimerais simplement savoir s'il est possible d'inclure une macro en résultat d'un algorithme s'il vous plaît ?

Si condition = vrai alors MACRO 1 sinon rien

Quelqu'un saurait-il comment faire ? (si cela est possible...)

Merci de votre aide et bonne journée à vous !
DL
 

Daylight

XLDnaute Nouveau
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Je m'excuse mais je ne sais pas comment intégrer ce code VBA à la cellule ! Il faudrait que j'apprenne, c'est sûr...
Te serait-il possible de m'indiquer la formule associée à ce code s'il te plaît ?

Par exemple, si A1 différent de rien alors Macro 1, sinon rien =SI(A1<>"";macro1;"")
 

Misange

XLDnaute Barbatruc
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Bonjour

Tu ne peux pas appeler une sub à partir d'une cellule. Tu peux en revanche appeler une fonction que tu définis par macro.
Par exemple si tu as une fonction qui convertit les degrés celcius en centigrades tu peux écrire =celciuscentigrades(A1)
mais tu ne peux pas déclencher une macro avec une formule.
Tu peux en revanche écrire une macro événementielle : quand tu rentres une valeur dans la cellule, l'événement worksheet_change se déclenche. tu peux "intercepter" ce changement et tester par macro
si la valeur rentrée = 12 alors macro 1 sinon macro 3
 

Daylight

XLDnaute Nouveau
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Meci Pierrot, je comprends qu'on ne peut pas associer une macro à une cellule, mais qu'elle s'associe à la page, d'où le besoin de passer par le code VBA.

Alors voici en attaché un document exemple. Si par hasard tu voulais bien intégrer ton code à ma page pour que j'essaie ensuite de comprendre comment tu as fait, ça serait très aimable :) )
 

Daylight

XLDnaute Nouveau
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Bonjour

Tu ne peux pas appeler une sub à partir d'une cellule. Tu peux en revanche appeler une fonction que tu définis par macro.
Par exemple si tu as une fonction qui convertit les degrés celcius en centigrades tu peux écrire =celciuscentigrades(A1)
mais tu ne peux pas déclencher une macro avec une formule.
Tu peux en revanche écrire une macro événementielle : quand tu rentres une valeur dans la cellule, l'événement worksheet_change se déclenche. tu peux "intercepter" ce changement et tester par macro
si la valeur rentrée = 12 alors macro 1 sinon macro 3

Merci beaucoup pour ton message Misange, ça m'intéresse beaucoup ce que tu dis, seulement pour créer cette macro évènementielle relève du langage VBA, n'est-ce pas ? Malheureusement je n'ai pas de connaissance dans ce langage...
 

Dranreb

XLDnaute Barbatruc
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Dans ce genre
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value <> "" Then Me.[A2].Value = Target.Value
End Sub
À mettre dans le module de la feuille.
À+
 

Pierrot93

XLDnaute Barbatruc
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Re,

essaye ceci, procédure événementielle, se déclenche lors d'une modif effectuée sur la feuille :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Not IsEmpty(Target) Then Range("A2") = Target
End Sub

A placer dans le module de la feuille => click droit sur l'onglet => visualiser le code => et tu colles...
 

Daylight

XLDnaute Nouveau
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Nous y sommes presque :D Merci bcp Dranreb et Pierrot, ça marche très bien, seulement le hic c'est que là vous avez créé la macro dans votre code si je comprends bien, hors dans le document que j'ai joins, la Macro1 existe déjà ! J'aimerais donc que vous me montriez comment appeler cette macro 1 à travers votre code VBA !

Car dans mon document à moi, la macro est beaucoup plus complexe que ça, c'est pour cette raison que je souhaiterai savoir comment l'appeler !

Merci beaucoup pour votre aide !
 

Dranreb

XLDnaute Barbatruc
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

et bien invoquer son nom au lieu d'affecter une valeur de cellule à une autre, comme déja indiqué !
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value <> "" Then Macro1
End Sub
À+

Attention danger, je rectifie:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value <> "" Then
   Application.EnableEvents = False
   Macro1
   Application.EnableEvents = True
   End If
End Sub
À+
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Si condition = vrai alors MACRO 1 sinon rien..... possible ?

Merci beaucoup pour ton message Misange, ça m'intéresse beaucoup ce que tu dis, seulement pour créer cette macro évènementielle relève du langage VBA, n'est-ce pas ? Malheureusement je n'ai pas de connaissance dans ce langage...

Regarde la réponse de Dranreb
Oui il faut un peu de VBA pour faire ça. C'est pas si compliqué que ça en a l'air et l'enregistreur de macro t'aide bien souvent
quelques pages pour comprendre le vocabulaire et les bases ici
Les macros Excel | www.excelabo.net
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12