Fonctionnement conjoint de worksheet_Change et worksheet_selectionChange
4 réponses
JP
Bonjour,
Dans une m=EAme feuille, j'ai les deux macros l=E0.
Quand je s=E9lectionne sur ma feuille une colonne (ailleurs que dans la zon=
e "edt")pour l=E0 maquer, excel 2010 plante.=20
Je dois red=E9marrer.
Est-ce quelqu'un aurait une id=E9e 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=E9e edt
'Lance la macro DeprotegeFeuilles
Set Feuille =3D 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 =3D Application.Intersect(PK, Range("edt")) ' plage nomm=E9e =
edt
If Not isect Is Nothing Then var =3D var + 1
Next
If var > 1 And var =3D Selection.Count Then
'Lance la macro DeprotegeFeuilles
Set Feuille =3D ActiveSheet
DeprotegeFeuilles
Feuille.Activate
UserForm5.Show
End If
End Sub
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
DanielCo
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
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
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
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
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.
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
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
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.
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
Une petite ligne en plus comme celle-là et tout et bien.
Merci Daniel
JP
Une petite ligne en plus comme celle-là et tout et bien.