Hallo Roland,
> Dim d As Date
> Dim T, M, J
> T = 2
> M = 4
> J = 2001
> **d = CDate(Str(t) + "/" + Str(m) + "/" + Str(j))**
> MsgBox d
das ist eine Lösung, stimmt. Hatte ich auch noch rausgekriegt, nachdem VBA sich entschieden hatte, nicht mehr rumzuspinnen 
Problem dabei: CDate interpretiert die Reihenfolge immer im Sinne der eingestellten Sprache. Deine Version funktioniert also nicht, wenn Englisch eingestellt ist. Deshalb soll man ja die Literale verwenden, weil die immer gleich interpretiert werden.
Meine Lösung (wackelig zwar, aber immerhin) ist diese:
'Test Date Setting (German/English)
German = (CDate("02.04.2001") = #4/2/2001#)
'Else it should be English. Hopefully it is!
If German Then
Date = CDate(d & "." & m & "." & y)
Else
Date = CDate(m & "." & d & "." & y)
End If
Kristian