Utilisation worksheet change

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
Rechercher des sujets similaires à "utilisation worksheet change"