Fonctions évenementielles

  • Initiateur de la discussion Initiateur de la discussion Vilain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Vilain

XLDnaute Accro
Salut à tous,

Je n'arrive pas à faire la syntaxe de ma fonction événementielle. Je souhaiterai qu'elle se lance lorsque la valeur en A1 de mon onglet détail change.
Quelqu'un pour m'apporter ses lumières ?

Merci d'avance.

A plus
 
Re : Fonctions évenementielles

Salut Bruno,

euh bah je sais pas trop, c'est ma première (snif, une petite larme pour l'émotion)...
La macro est déjà rédigée (elle me sert à mettre à jour l'échelle de graphiques et a afficher des cellules masquées). Je souhaite juste qu'au lieu de la lancer manuellement, elle se lance en cas de changement de valeur de la cellule A1 de l'onglet "détails".

Merci pour tout.

A plus
 
Dernière édition:
Re : Fonctions évenementielles

Salut Gillus,


Code:
Private Sub Worksheet_Change(Byval Target As Range)    
 If Not Intersect(Target, Range("$A$1")) Is Nothing Then        
 Msgbox "La cellule A1 a été modifiée !"     
End If 
End Sub

http://www.excelabo.net/pasapas/evenements-feuille"

edit oups Bruno on se croise ! bises
 
Dernière édition:
Re : Fonctions évenementielles

Re,

Pour le faire, dans la partie "Explorateur de projet" de éditeur VBA,
double clique sur ta feuille "Détails"

Ensuite dans la partie de droite, sélectionne : Worksheet (qui représente ta feuille)
ScreenShot208.jpg

Dans le 2ème menu déroulant, tu sélectionnes ton évènement : Change (changement)
ScreenShot209.jpg

Tu vois apparaître (comme par magie) la sub correspondante
ScreenShot210.jpg

Il ne reste plus qu'à saisir le code suivant
Code:
  If Not Intersect(Target, Range("A1")) Is Nothing Then    Call MaProcedure
  End If

A+

Edit : oups, coucou Miss 😉 bises
 
Re : Fonctions évenementielles

Salut Misange, re Bruno,

Merci beaucoup pour ces réponses (comme souvent je me dis que j'aurai du aller voir excelabo avant de vous embêter...)
Tout fonctionne comme je le souhaite.
D'ailleurs je trouve ça tellement pratique que je vais maintenant en mettre de partout !

Encore merci.

A plus
 
Re : Fonctions évenementielles

Re,

Attention toutefois avec les interactions lorsque tu inscrit une valeur dans une cellule (par exemple)
Il faudra penser a mettre
Code:
Application.EnableEvents = False
' Tes lignes d'inscription
Application.EnableEvents = True

A+
 
Re : Fonctions évenementielles

Attention à un truc : tu n'as "droit" qu'à un seul type d'événement par feuille.
Autrement dit : si tu veux qu'une macro se déclenche quand tu modifies la cellule A1 et une autre quand tu modifies A2 il faut mettre tout ça dans la même macro worksheet_change et non recopier deux fois l'intégralité de cette macro. Sinon tu aurais deux macros avec le même nom et ça excel n'aime pas du tout...

Code:
Private Sub Worksheet_Change(Byval Target As Range)    
 If Not Intersect(Target, Range("$A$1")) Is Nothing Then        
 Msgbox "La cellule A1 a été modifiée !"     
End If 

 If Not Intersect(Target, Range("$A$2")) Is Nothing Then        
 Msgbox "La cellule A2 a été modifiée !"     
End If 
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
512
Retour