Fonction Case par nom de colonnes et pas "lettres" de colonnes

Bonjour à tous,

J'ai adapté une macro qui met automatiquement la date du jour dans une colonne quand des modifications dans d'autres colonnes sur la même ligne sont faites à mes besoins,

Voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)
Colonne = Target.Column
If Target.Row > 1 Then
   Select Case Colonne
       Case 2, 8, 10, 11, 13, 16, 21, 27, 28
        For Each Cell In Target
            Cells(Cell.Row, "A") = Date
        Next Cell
   End Select
End If
End Sub

Sauf que cela ne marche bien que si l'on n'ajoute pas de colonnes au tableau, ce qui n'est pas le cas.

Du coup je m'étais dis qu'une solution serait de nommer les colonnes par des noms type toto1, toto2... (désolée pour le manque d'originalité), et de lui demander de prendre en compte les colonnes qui portent ces noms et non pas des numéros de colonnes.

J'ai essayé Case "toto1", "toto2".... ne marche pas, ni Case toto1, mais c'eut été trop facile

Auriez-vous une idée de comment je pourrais l'écrire?

Merci d'avance

Bonsoir,

Il suffit de créer initialement un nom faisant référence aux colonnes 2, 8, 10, 11, 13, 16, 21, 27, 28, par exemple "plage_modif". Tout ajout de colonne ultérieur mettra automatiquement à jour les plages auxquelles fait référence ce nom.

Ci-dessous code :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 1 Then Exit Sub
    If Not Intersect(Target, Range("plage_modif")) Is Nothing Then
        For Each Cell In Target
            Cells(Cell.Row, "A") = Date
        Next Cell
    End If

End Sub

ci-joint exemple

10classeur1.xlsm (18.77 Ko)
Rechercher des sujets similaires à "fonction case nom colonnes pas lettres"