RE
S'il n'y a qu'in ligne dans le tableau cela ne marche pas : j'ai distingué le cas et ajouté la recherche de Immat
Sub Anonymiser()
Dim Infos As Range
Dim Tempo()
Dim WS As Worksheet, TS As ListObject
Dim Z As Byte, Col As Byte
For Each WS In ThisWorkbook.Worksheets
For Each TS In WS.ListObjects
If Left(TS, 2) = "t_" Then
With TS
For Z = 1 To 2
Col = IIf(Z = 1, .ListColumns("Nom").Index, .ListColumns("Nais").Index)
Set Infos = .ListColumns(Col).DataBodyRange
Select Case Infos.Rows.Count
Case Is = 1
ReDim Tempo(1)
Tempo(1) = Infos.Value
Case Else
Tempo = WorksheetFunction.Transpose(Infos)
End Select
For X = 1 To UBound(Tempo)
If Z = 1 Then
Tempo(X) = UCase(Left(Tempo(X), 1))
Else
Tempo(X) = Year(Tempo(X))
End If
Next X
.ListColumns(Col).DataBodyRange.Value = IIf(Infos.Rows.Count > 1, WorksheetFunction.Transpose(Tempo), Tempo(1))
Next Z
End With
End If
TS.ListColumns(Col).DataBodyRange.NumberFormat = "0"
For Each CL In TS.ListColumns
If CL.Name = "Immat" Then CL.Delete
Next CL
Next TS
Next WS
End Sub