OVH Cloud OVH Cloud

onflit entre 2 macro

2 réponses
Avatar
JACK 43
Bonjour,

Je débute en "macro" et j'ai un problème certainement de conflit car il doit
manquer qelques choses entre les deux macros.
car les 2 macros prisent seul fonctionnent.
La première macro affiche un message lorsque l'on sort de la cellule " B2"
La seconde macro sélectionne la cellule immédiatement contigue (sur la
droite) lorsque l'on clique sur la première

les 2 macro ne doivent que s'exécuter dans une feuille bien spécifique et
pas dans l'intégralité du fichier.

****************************


Dim mtst As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> [b2].Address Then
If mtst Then MsgBox "bonjour....", , "Message d'information"
mtst = False
Else
mtst = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'une seule cellule selectionnée !
If Target.Count = 1 Then
'colonnes A et J
If Not Intersect(Target, _
Union(Columns("A"), Columns("J"))) Is Nothing Then
'suspend les évennements
'(sinon SelectionChange se produit à nouveau)
Application.EnableEvents = False
'sélectionne les deux cellules
Range(Target, Target.Offset(0, 1)).Select
'rétabli les évennements
Application.EnableEvents = True
End If
End If
End Sub

********************************

MERCI et A +

2 réponses

Avatar
Daniel
Bonsoir.
Je dirais que, à mon humble avis, tu ne dois pas pouvoir mettre deux macros
pour gérer le même évènement (selection change) dans la même feuille.
Regroupe ton code dans une seule macro.
Si j'ai tort, eh bien,j'aurais appris quelque chose ce soir !
Cordialement.
Daniel
"JACK 43" (sansspam)> a écrit dans le message de
news:
Bonjour,

Je débute en "macro" et j'ai un problème certainement de conflit car il
doit
manquer qelques choses entre les deux macros.
car les 2 macros prisent seul fonctionnent.
La première macro affiche un message lorsque l'on sort de la cellule " B2"
La seconde macro sélectionne la cellule immédiatement contigue (sur la
droite) lorsque l'on clique sur la première

les 2 macro ne doivent que s'exécuter dans une feuille bien spécifique et
pas dans l'intégralité du fichier.

****************************


Dim mtst As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> [b2].Address Then
If mtst Then MsgBox "bonjour....", , "Message d'information"
mtst = False
Else
mtst = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'une seule cellule selectionnée !
If Target.Count = 1 Then
'colonnes A et J
If Not Intersect(Target, _
Union(Columns("A"), Columns("J"))) Is Nothing Then
'suspend les évennements
'(sinon SelectionChange se produit à nouveau)
Application.EnableEvents = False
'sélectionne les deux cellules
Range(Target, Target.Offset(0, 1)).Select
'rétabli les évennements
Application.EnableEvents = True
End If
End If
End Sub

********************************

MERCI et A +



Avatar
LSteph
Bonsoir,
'***
Dim mtst As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> [b2].Address Then
If mtst Then MsgBox "bonjour....", , _
"Message d'information"
mtst = False

If Target.Count = 1 Then

If Not Intersect(Target, _
Union(Columns("A"), Columns("J"))) Is Nothing Then

Application.EnableEvents = False

Range(Target, Target.Offset(0, 1)).Select

Application.EnableEvents = True
End If
End If
Else
mtst = True
End If
End Sub
'***

'lSteph



"JACK 43" (sansspam)> a écrit dans le message de
news:
Bonjour,

Je débute en "macro" et j'ai un problème certainement de conflit car il
doit
manquer qelques choses entre les deux macros.
car les 2 macros prisent seul fonctionnent.
La première macro affiche un message lorsque l'on sort de la cellule " B2"
La seconde macro sélectionne la cellule immédiatement contigue (sur la
droite) lorsque l'on clique sur la première

les 2 macro ne doivent que s'exécuter dans une feuille bien spécifique et
pas dans l'intégralité du fichier.

****************************


Dim mtst As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> [b2].Address Then
If mtst Then MsgBox "bonjour....", , "Message d'information"
mtst = False
Else
mtst = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'une seule cellule selectionnée !
If Target.Count = 1 Then
'colonnes A et J
If Not Intersect(Target, _
Union(Columns("A"), Columns("J"))) Is Nothing Then
'suspend les évennements
'(sinon SelectionChange se produit à nouveau)
Application.EnableEvents = False
'sélectionne les deux cellules
Range(Target, Target.Offset(0, 1)).Select
'rétabli les évennements
Application.EnableEvents = True
End If
End If
End Sub

********************************

MERCI et A +