Re le forum
La macro modifiée selon ta demande (Plus de #Valeur et de #N/A)
Option Explicit
Function Liste3D(Champ As String, Code As String)
Dim TblSh, Sh
Dim Dico As Object, C As Range, Cpt As Byte
TblSh = Array("Janvier", "Février", "Mars", "Avril", _
"Mai", "Juin", "Juillet", "Août", _
"Septembre", "Octobre", "Novembre", "Décembre")
Application.Volatile
Set Dico = CreateObject("Scripting.Dictionary")
For Each Sh In TblSh
With Worksheets(Sh)
For Each C In .Range(Champ)
If C.Value = Code Then _
Dico(.[A4].Offset(, C.Column - 1).Value) = .[A4].Offset(, C.Column - 1).Value
Next C
End With
Next Sh
For Cpt = Dico.Count To Application.Caller.Rows.Count
Dico(Cpt) = ""
Next Cpt
Liste3D = Application.Transpose(Dico.items)
End Function
Pour éviter les erreurs de saisie (cp, cP, Cp ou CP) remplace la ligne surlignée par
If UCase(C.Value) = UCase(Code) Then _
Mytå