Bah, c'est pas dur, il suffit de boucler sur les colonnes, du genre :
Sub go()
Dim Tdata As Variant, Sh As Shape, iPict As IPictureDisp
Dim L As Single, T As Single, W As Single, H As Single
Dim lg As Long, cl As Long, i As Long, j As Long
Dim rep As String, NDF As String
With Sheets("Feuil1")
For Each Sh In .Shapes
If Left(Sh.Name, 2) <> "A" Then Sh.Delete
Next Sh
lg = .Cells(Rows.Count, 1).End(xlUp).Row
cl = .Cells(1, Columns.Count).End(xlToLeft).Column
Tdata = .Range(.Cells(1, 1), .Cells(lg, cl)).Value
rep = ThisWorkbook.Path & "\Images\"
If Not Exist_Rep(rep) Then MkDir rep
For i = 1 To lg
For j = 1 To cl
NDF = Ndf_Img(CStr(Tdata(i, j)))
If Exist_Fichier(rep & NDF) Then
Set iPict = LoadPicture(rep & NDF)
With .Cells(i, j)
T = .Top + 1
H = .Height - 2
W = (H / iPict.Height) * iPict.Width
L = .Left + (.Width - W) / 2
End With
.Shapes.AddPicture rep & NDF, True, True, L, T, W, H
Set iPict = Nothing
End If
Next j
Next i
End With
End Sub