There is no .visible property of a range, only .hidden.
Dim locale As String
locale = InputBox("Which column should not be hidden?", "Hide columns")
For i = 8 To 1000
If Cells(1, i).Value = locale Then
Columns(i).Hidden = False
Else
Columns(i).Hidden = True
End If
Next
but faster (and case insensitive (so you don't have to get the header capitals correct)):
Dim locale As String
locale = InputBox("Which column should not be hidden?", "Hide columns")
locale = UCase(locale)
Columns("H:ALL").Hidden = True
For i = 8 To 1000
If UCase(Cells(1, i).Value) = locale Then Columns(i).Hidden = False
Next