Private Sub Workbook_SheetChange(ByVal o As Object, ByVal c As Range) ' v2
Dim oC As Range
With Application
.ScreenUpdating = False
End With
If c.Column <> 2 Or c.Row < 2 Then Exit Sub 'si colonne differente de la 2 et Ligne inferieure a 2 "On quitte"
If c.Rows.Count = 1 Then 'si la plage traite est composee d'une ligne
Select Case o.Name 'selon le nom de la feuille ou a lieu le Changement
Case "MAS", "DRK", "KLM" 'si le Nom est l'un de de ces Noms
With c.Offset(, -1) 'Avec la cellule à gauche de la cellule concernée
.Value = o.Name & Year(Date) & Format(.Row - 1, "000") 'on colle les donnees ainsi definies
End With
If c = "" Then c.Offset(, -1) = "" 'si la cellule concernée est Vide on vide la Cellule à sa gauche
End Select
ElseIf c.Rows.Count > 1 Then 'si la plage traitee est composee de plus d'une ligne
For Each oC In c 'pour chaque lignes de cette Plage
Select Case o.Name 'selon le nom de la feuille ou a lieu le Changement
Case "MAS", "DRK", "KLM" 'si le Nom est l'un de de ces Noms
With oC.Offset(, -1)
.Value = o.Name & Year(Date) & Format(.Row - 1, "000") 'on colle les donnees ainsi definies
End With
If oC = "" Then oC.Offset(, -1) = "" 'si la cellule concernée est Vide , on vide la Cellule à sa gauche
End Select
Next oC
End If
With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub