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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #25759702
Bonjour,
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


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 zone
"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
JP
Le #25759732
Bonjour 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
DanielCo
Le #25759792
Ajoute la ligne :
If Target.Count = 1 Then Exit Sub
en début de macro.
Daniel

Bonjour Daniel,

Je viens de tester. Il faut vraiment que la condition de sélection sur
plusieurs 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'userform5 doit s'ouvrir que si
plusieurs cellules sont selectionnées.


Cordialement

JP
JP
Le #25759942
Une petite ligne en plus comme celle-là et tout et bien.

Merci Daniel

JP
Publicité
Poster une réponse
Anonyme