Thank you to both,
I am sure you are right Curtis, but I don't know how the environment settings could be fixed in VBA for Map Algebra. As suggested by Dan, I attach the code used just in case it could help to bring more information.
Thank you very much,
Carles.
Sub Map_algebra_calculation(calculation_text As String, Output_raster_name As String)
strData = "C:\OUTPUT_PATH\"
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
Dim pRLayer As IRasterLayer
Dim pLayer_AAA As ILayer
Dim pInRaster_AAA As IRaster
Dim pLayer_BBB As ILayer
Dim pInRaster_BBB As IRaster
Dim pLayer_CCC As ILayer
Dim pInRaster_CCC As IRaster
Dim pLayer_DDD As ILayer
Dim pInRaster_DDD As IRaster
Dim pLayer_EEE As ILayer
Dim pInRaster_EEE As IRaster
' Create a Spatial operator
Dim pAlgbOp As IMapAlgebraOp
Set pAlgbOp = New RasterMapAlgebraOp
Set pLayer_AAA = pMap.Layer(2)
Set pRLayer = pLayer_AAA
Set pInRaster_AAA = pRLayer.Raster
Set pLayer_BBB = pMap.Layer(3)
Set pRLayer = pLayer_BBB
Set pInRaster_BBB = pRLayer.Raster
Set pLayer_CCC = pMap.Layer(4)
Set pRLayer = pLayer_CCC
Set pInRaster_CCC = pRLayer.Raster
Set pLayer_DDD = pMap.Layer(5)
Set pRLayer = pLayer_DDD
Set pInRaster_DDD = pRLayer.Raster
Set pLayer_EEE = pMap.Layer(6)
Set pRLayer = pLayer_EEE
Set pInRaster_EEE = pRLayer.Raster
' Bind a raster
Call pAlgbOp.BindRaster(pInRaster_AAA, "AAA")
Call pAlgbOp.BindRaster(pInRaster_BBB, "BBB")
Call pAlgbOp.BindRaster(pInRaster_CCC, "CCC")
Call pAlgbOp.BindRaster(pInRaster_DDD, "DDD")
Call pAlgbOp.BindRaster(pInRaster_EEE, "EEE")
' Set output workspace
Dim pEnv As IRasterAnalysisEnvironment
Set pEnv = pAlgbOp
Dim pWS As IWorkspace
Dim pWSF As IWorkspaceFactory
Set pWSF = New RasterWorkspaceFactory
Set pWS = pWSF.OpenFromFile("C:\OUTPUT_PATH\TEMP", 0)
Set pEnv.OutWorkspace = pWS
' Perform Spatial operation
Dim pOutRaster As IRaster
' Defineix les variable de la iteracio de l'Excel llegit
' Dim Texte_calculadora_raster As String
' Set Texte_calculadora_raster = calculation_text
' Dim Nom_fitxer_sortida As String
' Set Nom_fitxer_sortida = Output_raster_name
'aquí comança el càlcul de la regressio multiple
Set pOutRaster = pAlgbOp.Execute(calculation_text) '(Texte_calculadora_raster)
' Unbind rasters
Call pAlgbOp.UnbindRaster("AAA")
Call pAlgbOp.UnbindRaster("BBB")
Call pAlgbOp.UnbindRaster("CCC")
Call pAlgbOp.UnbindRaster("DDD")
Call pAlgbOp.UnbindRaster("EEE")
' Add it into ArcMap
Set pRLayer = New RasterLayer
pRLayer.CreateFromRaster pOutRaster
' Add its name (Output raster name)
pRLayer.Name = Output_raster_name pMap.AddLayer pRLayer
Call createFileFromRaster(pOutRaster, strData + pRLayer.Name)
End Sub