Il ne faut pas utiliser la méthode select si tu veux travailler depuis une autre feuille.
D'autant qu'ici ça ne sert a rien de selectionner.
Public Sub Batiment()
'
' Batiment Macro
'
'
Dim oShD As Worksheet
Dim iDerLig As Integer
Set oShD = Worksheets("Donnée")
oShD.Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
oShD.Range("D1").FormulaR1C1 = "LOGEMENT"
oShD.Range("D2").FormulaR1C1 = _
"=IF(RC[-3]=""The Land of Cold"",VLOOKUP(RC[-1],'Don''t Touch'!R2C2:R51C3,2),Donnée!RC[-3])"
oShD.Range("D2").AutoFill Destination:=oShD.Range("D2:D117"), Type:=xlFillDefault
oShD.Activate
Set oShD = Nothing
End Sub