bonjour,
voici une correction de ton code.
Sub transposeliq()
Dim i As Long, lastrow As Long, dc As Long
Dim Pays As String
Dim Plage As Range, re As Range
dc = Worksheets("summary").Cells(5, Columns.Count).End(xlToLeft).Column
lastrow = Worksheets("cash").Cells(Rows.Count, "B").End(xlUp).Row - 1
Set Plage = Worksheets("summary").Cells(5, "A").Resize(, dc)
For i = 4 To lastrow Step 1 'on prend chaque pays de la liste cash et on le recherche dans le nom de fichier (ligne 5) de la feuille summary
Pays = Worksheets("cash").Cells(i, 2)
Set re = Plage.Find(Pays, lookat:=xlPart, MatchCase:=False) 'recherche partielle, ignorant la casse
If re Is Nothing Then
MsgBox "pays " & Pays & " non trouvé dans la feuille data"
Else
Worksheets("Summary").Cells(15, re.Column).Copy
Worksheets("cash").Range("AN" & i).PasteSpecial xlPasteValues
End If
Next i
End Sub
Par rapport à tes données, cette méthode de recherche risque de donner des problèmes pour la France et la Hongrie, à cause des recherches partielles. Si tu veux éviter ces problèmes, il faut que tu remplaces le nom de fichier en ligne 5 par le nom du pays tel qu'écrit dans la feuille cash et remplacer le lookat:=xlpart par lookat:=xlwhole dans le code