Déclenchement d'une macro à partir d'une macro évènementielle
8 réponses
JP
Bonsoir,
J'ai dans une feuille une macro =E9v=E8nementielle du genre:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H6:D33")) Is Nothing Then
Set Feuille =3D ActiveSheet
classement
Feuille.Activate
End If
End Sub
je souhaite d=E9clencher la macro nomm=E9e classement qui est dans un modul=
e avec option private module.
J'ai un message d'erreur au d=E9clenchement de la macro Private Sub... au n=
iveau de la ligne classement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
GL
Le 14/06/2013 19:04, JP a écrit :
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 module avec option private module.
l'option Private Module sert à éviter d'insérer les routines (Sub / Function) dans le /proposeur/ de fonctions (désolé du mot ;-) )
J'ai un message d'erreur au déclenchement de la macro Private Sub... au niveau de la ligne classement.
L'option Private Sub / Private Function rend la routine inaccessible depuis tout autre module.
Pourquoi et que faut-il modifier selon vous?
Donc à priori, ce qu'il faut modifier c'est Private Sub en Public Sub.
Par contre Private Module restera.
Merci pour votre aide.
Sauf erreur de ma part... ;-)
Bonne journée.
Le 14/06/2013 19:04, JP a écrit :
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 module avec option private module.
l'option Private Module sert à éviter d'insérer les routines
(Sub / Function) dans le /proposeur/ de fonctions (désolé du mot ;-) )
J'ai un message d'erreur au déclenchement de la macro Private Sub... au niveau de la ligne classement.
L'option Private Sub / Private Function rend la routine inaccessible
depuis tout autre module.
Pourquoi et que faut-il modifier selon vous?
Donc à priori, ce qu'il faut modifier c'est Private Sub en Public Sub.
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 module avec option private module.
l'option Private Module sert à éviter d'insérer les routines (Sub / Function) dans le /proposeur/ de fonctions (désolé du mot ;-) )
J'ai un message d'erreur au déclenchement de la macro Private Sub... au niveau de la ligne classement.
L'option Private Sub / Private Function rend la routine inaccessible depuis tout autre module.
Pourquoi et que faut-il modifier selon vous?
Donc à priori, ce qu'il faut modifier c'est Private Sub en Public Sub.
Par contre Private Module restera.
Merci pour votre aide.
Sauf erreur de ma part... ;-)
Bonne journée.
JP
Bonsoir GL,
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
Bonsoir GL,
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
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
GL
Le 14/06/2013 20:38, JP a écrit :
Bonsoir GL,
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!!
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 ?
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
Le 14/06/2013 20:38, JP a écrit :
Bonsoir GL,
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!!
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 ?
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
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!!
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 ?
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
JP
Je dois mettre Public Sub classement()au lieu Sub classement()?
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
Je dois mettre Public Sub classement()au lieu Sub classement()?
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.