Déclenchement d'une macro à partir d'une macro évènementielle
Le
JP

Bonsoir,
J'ai dans une feuille une macro évènementielle du genre:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H6:D33")) Is Nothing Then
Set Feuille = ActiveSheet
classement
Feuille.Activate
End If
End Sub
je souhaite déclencher la macro nommée classement qui est dans un modul=
e avec option private module.
J'ai un message d'erreur au déclenchement de la macro Private Sub au n=
iveau de la ligne classement.
Pourquoi et que faut-il modifier selon vous?
Merci pour votre aide.
JP
J'ai dans une feuille une macro évènementielle du genre:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H6:D33")) Is Nothing Then
Set Feuille = ActiveSheet
classement
Feuille.Activate
End If
End Sub
je souhaite déclencher la macro nommée classement qui est dans un modul=
e avec option private module.
J'ai un message d'erreur au déclenchement de la macro Private Sub au n=
iveau de la ligne classement.
Pourquoi et que faut-il modifier selon vous?
Merci pour votre aide.
JP
l'option Private Module sert à éviter d'insérer les routines
(Sub / Function) dans le /proposeur/ de fonctions (désolé du mot ;-) )
L'option Private Sub / Private Function rend la routine inaccessible
depuis tout autre module.
Donc à priori, ce qu'il faut modifier c'est Private Sub en Public Sub.
Par contre Private Module restera.
Sauf erreur de ma part... ;-)
Bonne journée.
Merci pour les explications.
Je viens de changer Private en Public mais la macro bloque au meme endroit.
Voici en dessous, la modification faite selon ta proposition.
Attendons d'autres voix!!
Cordialement
JP
Public Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H6:U33")) Is Nothing Then
Set Feuille = ActiveSheet
classement
Feuille.Activate
End If
End Sub
Non : c'est la procédure Classement qui doit être publique !
Une procédure événementielle est liée à la feuille, donc elle
est toujours privée (il n'y a pas de raison de la déclencher
depuis un autre point que l'événement lié à la feuille elle-même).
Sinon c'est quoi le message d'erreur ?
Le message d'erreur est:
Erreur de compilation. Variable ou procédure attendue, et non un module.
Je viens d'essayer avec Public Sub classement(). Le message d'erreur est le même.
Cordialement
JP
Alors cela doit signifier que vous avez un module nommé "classement".
Dans ce cas, s'il y a aussi une routine nommée classement, il faut
appeler : classement.classement
soit:
Si la routine classement est déclarée Private vous aurez l'erreur :
Membre de méthode ou de données introuvable.
Ce qui paraît cohérent.
Quoiqu'il en soit, l'Option Private Module est sans effet.
En plus c'est logique.
Bonne soirée et merci encore.
Cordialement
JP
Application.Run "classement"
ou
Application.Run "Classeur1!classement"
isabelle
Le 2013-06-14 16:44, JP a écrit :
Application.Run "ThisWorkbook.classement", Variable1, Variable2
isabelle
Le 2013-06-15 22:56, isabelle a écrit :