Comment faire pour qu'une macro (par exemple Macro1) s'exécute lorsque je
"sort" d'une cellule bien spécifique (par exemple la cellule A1 et bien que
la cellule A1 et pas toutes les cellules d'un classeur ou d'une feuille) pour
aller me positionner dans une autre cellules.
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
AV
En supposant que tu veuilles faire le contrôle sur "Feuil1" du classeur : Dans le module de ThisWorkBook :
Private Sub Workbook_Open() Sheets("Feuil1").Activate ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address End Sub
Dans le module de "Feuil1" (clic droit sur l'onglet > visualiser le code)
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If [cellActive] = "$A$1" Then macro1 Else: ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:=zz.Address End If End Sub
Sub macro1() MsgBox "vous venez de quitter A1" ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address End Sub
AV
En supposant que tu veuilles faire le contrôle sur "Feuil1" du classeur :
Dans le module de ThisWorkBook :
Private Sub Workbook_Open()
Sheets("Feuil1").Activate
ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address
End Sub
Dans le module de "Feuil1" (clic droit sur l'onglet > visualiser le code)
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If [cellActive] = "$A$1" Then
macro1
Else: ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:=zz.Address
End If
End Sub
Sub macro1()
MsgBox "vous venez de quitter A1"
ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address
End Sub
En supposant que tu veuilles faire le contrôle sur "Feuil1" du classeur : Dans le module de ThisWorkBook :
Private Sub Workbook_Open() Sheets("Feuil1").Activate ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address End Sub
Dans le module de "Feuil1" (clic droit sur l'onglet > visualiser le code)
Private Sub Worksheet_SelectionChange(ByVal zz As Range) If [cellActive] = "$A$1" Then macro1 Else: ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:=zz.Address End If End Sub
Sub macro1() MsgBox "vous venez de quitter A1" ActiveWorkbook.Names.Add Name:="cellActive", RefersTo:¬tiveCell.Address End Sub
AV
Pierre Fauconnier
Bonjour
Il faut utiliser l'évènement Selection_Change de la feuille. Le problème, c'est que la variable objet Target fait référence à la cellule sur laquelle on arrive. Dès lors, il faut la mémoriser à l'activation de la feuille.
Dès lors, dans le module de la feuille concernée, tu peux copier ceci :
Private Cellule_Quittee As Range
Private Sub Worksheet_Activate() Set Cellule_Quittee = ActiveCell End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Cellule_Quittee, Range("a1")) Is Nothing Then Ma_Macro_Specifique End If Set Cellule_Quittee = Target End Sub
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"JACK 43" a écrit dans le message de news:
BONJOUR,
Comment faire pour qu'une macro (par exemple Macro1) s'exécute lorsque je "sort" d'une cellule bien spécifique (par exemple la cellule A1 et bien que la cellule A1 et pas toutes les cellules d'un classeur ou d'une feuille) pour aller me positionner dans une autre cellules.
merçi, Bonne Soirée !!!!!!
Bonjour
Il faut utiliser l'évènement Selection_Change de la feuille. Le problème,
c'est que la variable objet Target fait référence à la cellule sur laquelle
on arrive. Dès lors, il faut la mémoriser à l'activation de la feuille.
Dès lors, dans le module de la feuille concernée, tu peux copier ceci :
Private Cellule_Quittee As Range
Private Sub Worksheet_Activate()
Set Cellule_Quittee = ActiveCell
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Cellule_Quittee, Range("a1")) Is Nothing Then
Ma_Macro_Specifique
End If
Set Cellule_Quittee = Target
End Sub
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"JACK 43" <JACK43@discussions.microsoft.com> a écrit dans le message de
news: 2F3FC4A5-BF92-4B19-9742-ADD3FB720554@microsoft.com...
BONJOUR,
Comment faire pour qu'une macro (par exemple Macro1) s'exécute lorsque je
"sort" d'une cellule bien spécifique (par exemple la cellule A1 et bien
que
la cellule A1 et pas toutes les cellules d'un classeur ou d'une feuille)
pour
aller me positionner dans une autre cellules.
Il faut utiliser l'évènement Selection_Change de la feuille. Le problème, c'est que la variable objet Target fait référence à la cellule sur laquelle on arrive. Dès lors, il faut la mémoriser à l'activation de la feuille.
Dès lors, dans le module de la feuille concernée, tu peux copier ceci :
Private Cellule_Quittee As Range
Private Sub Worksheet_Activate() Set Cellule_Quittee = ActiveCell End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Cellule_Quittee, Range("a1")) Is Nothing Then Ma_Macro_Specifique End If Set Cellule_Quittee = Target End Sub
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"JACK 43" a écrit dans le message de news:
BONJOUR,
Comment faire pour qu'une macro (par exemple Macro1) s'exécute lorsque je "sort" d'une cellule bien spécifique (par exemple la cellule A1 et bien que la cellule A1 et pas toutes les cellules d'un classeur ou d'une feuille) pour aller me positionner dans une autre cellules.