Si tu as une erreur sur cette ligne, c'est que le contenu de la cellule ne correspond pas à ce qui est attendu...
Modifie txdh = Split(c.Value) en :
txdh = Split(Trim(c.Value))
ce qui éliminera déjà des espaces parasites.
Tu peux aussi :
Sub ConversionDate()
Dim c As Range, txdh, txd
Dim Rangeeffect As Range
Set Rangeeffect = Worksheets("mdr").Range("G2:P40")
For Each c In Rangeeffect
On Error GoTo errform
txdh = Split(Trim(c.Value))
txd = Split(txdh(0), ".")
txdh(0) = DateSerial(CInt(txd(2)), CInt(txd(1)), CInt(txd(0)))
c.Value = CDate(txdh(0)) + CDate(txdh(1))
c.NumberFormat = "dd/mm/yyyy"
errform:
Next c
End Sub
Ce qui fera sauter les valeurs non conformes, sans interrompre...
Nb- Essaie de respecter l'indentation (lisibilité du code) et utilise la balise Code dans les posts.