Fonctionnement conjoint de worksheet_Change et worksheet_selectionChange
Le
JP

Bonjour,
Dans une même feuille, j'ai les deux macros là.
Quand je sélectionne sur ma feuille une colonne (ailleurs que dans la zon=
e "edt")pour là maquer, excel 2010 plante.
Je dois redémarrer.
Est-ce quelqu'un aurait une idée du pourquoi?
Merci
JP
Public Feuille As Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("edt")) Is Nothing Then ' plage nommée edt
'Lance la macro DeprotegeFeuilles
Set Feuille = ActiveSheet
DeprotegeFeuilles
Feuille.Activate
'Lance la macro couleur du module
Couleurs
End If
End Sub
' ************************************************************
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim var As Integer
For Each PK In Target
Set isect = Application.Intersect(PK, Range("edt")) ' plage nommée =
edt
If Not isect Is Nothing Then var = var + 1
Next
If var > 1 And var = Selection.Count Then
'Lance la macro DeprotegeFeuilles
Set Feuille = ActiveSheet
DeprotegeFeuilles
Feuille.Activate
UserForm5.Show
End If
End Sub
Dans une même feuille, j'ai les deux macros là.
Quand je sélectionne sur ma feuille une colonne (ailleurs que dans la zon=
e "edt")pour là maquer, excel 2010 plante.
Je dois redémarrer.
Est-ce quelqu'un aurait une idée du pourquoi?
Merci
JP
Public Feuille As Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("edt")) Is Nothing Then ' plage nommée edt
'Lance la macro DeprotegeFeuilles
Set Feuille = ActiveSheet
DeprotegeFeuilles
Feuille.Activate
'Lance la macro couleur du module
Couleurs
End If
End Sub
' ************************************************************
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim var As Integer
For Each PK In Target
Set isect = Application.Intersect(PK, Range("edt")) ' plage nommée =
edt
If Not isect Is Nothing Then var = var + 1
Next
If var > 1 And var = Selection.Count Then
'Lance la macro DeprotegeFeuilles
Set Feuille = ActiveSheet
DeprotegeFeuilles
Feuille.Activate
UserForm5.Show
End If
End Sub
Essaie comme ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim isect As Range
Set isect = Intersect(Target, Range("edt"))
If Not isect Is Nothing Then
If isect.Count = Target.Count Then
Set Feuille = ActiveSheet
DeprotegeFeuilles
Feuille.Activate
UserForm5.Show
End If
End If
End Sub
Cordialement.
Daniel
Je viens de tester. Il faut vraiment que la condition de sélection sur pl usieurs cellules soit prise en considération.
Avec ta proposition, dès qu'une nouvelle cellule est sélectionnée, la macro démarre, l'userform5 s'ouvre. Ce n'est pas le but recherché. L'u serform5 doit s'ouvrir que si plusieurs cellules sont selectionnées.
Cordialement
JP
If Target.Count = 1 Then Exit Sub
en début de macro.
Daniel
Merci Daniel
JP