Utilisation worksheet change
V
Bonjour à tous,
J'utilise la propriété worksheet_change dans laquelle dès qu'une cellule sur une ligne voulue, une action se réalise (un changement de couleur le plus souvent)
j'aimerai savoir comment faire pour appeler ma fonction pour plusieurs lignes sans coder l'appel de la fonction pour chaque lignes une par une ?
voici le code :
Sub Worksheet_Change(ByVal target As Range)
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set rng1 = Intersect(target, Range("G8:AU8")) ' cellules contenant le type d'activité
Set rng2 = Intersect(target, Range("G2:AU2")) 'cellule de MAJ ou clear ou cancel ou Manu
Set rng3 = Intersect(target, Range("G24:AU24"))
If rng1 Is Nothing Then GoTo Suite
With rng1
Call Module1.ChangecolorTYPE
End With
Suite:
If rng2 Is Nothing Then GoTo Suite2
With rng2
Call Module1.ChangecolorMAJX
End With
Suite2:
If rng3 Is Nothing Then GoTo Suite3
With rng3
Call Module1.ChangeColorDispoSP
End With
Suite3:
End Sub
Dans l'idée je voudrais que "ChangeColorDispoSP" s'exécute quand je clique sur la ligne 24 (ce qui fonctionne actuellement) et aussi sur les lignes 29,34,46,48,50.
merci d'avance :)
VH
Bonjour,
Un début de réponse avec toutes les inconnues !?
Cdlt.
Option Explicit
Dim lRow As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo errHandler
Application.EnableEvents = False
lRow = Target.Row
Select Case lRow
Case 24, 29, 34, 46, 48, 50: Call Module1.ChangeColorDispoSP
Case Else:
End Select
exitHandler:
Application.EnableEvents = True
Exit Sub
errHandler:
MsgBox "Erreur : " & Err.Number & Chr(10) & Err.Description
Resume exitHandler
End Sub
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errHandler
'If Not Intersect(target, Union(Range("G2:AU2"), Range("G8:AU8"), Range("G24:AU24"))) Then
If Not Intersect(Target, Union(Range("G2:AU2"), Range("G8:AU8"))) Then
Application.EnableEvents = False
lRow = Target.Row
Select Case lRow
Case 2: Call Module1.ChangecolorMAJX
Case 8: Call Module1.ChangecolorTYPE
'Case 24: Call Module1.ChangeColorDispoSP
Case Else:
End Select
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
errHandler:
MsgBox "Erreur : " & Err.Number & Chr(10) & Err.Description
Resume exitHandler
End Sub