Ошибок несколько:
1.
Dim Number, Minimum, Room, Product, Data, X As Double
вовсе не означает, что все переменные имеют тип
Double
. В VBA каждой переменной надо задавать отдельный тип:
Dim Number As Integer, Minimum As Double, Data As Double, Room As Integer, Product As Double, X As Double
Так, инициализация, которую привели Вы, инициализирует как
Double
только последнюю переменную. Все остальные инициализируются как
Variant
. Таким образом,
Data
у Вас получается текстовой переменной поскольку извлекается из
InputBox
. Это приводит к тому что "-1" < "-2" (1 < 2).
2. Из
If Data > Minimum Then
Вы находите не минимум, а максимум.
3. Имена, такие как"Data", "Minimum"... лучше не использовать - можете нарваться на функцию с таким же именем. В VBA Вам повезло, в других языках может и не повезти.
Работающий код:
If X = 1 Then
Minimum = Data
Room = X
End If
If Data < Minimum Then
Minimum = Data
Room = X
End If
If Data < 0 Then
If Product = 0 Then
Product = Data
Else
Product = Product * Data
End If
End If