Computed values are values that are computed at runtime and do not affect the original list passed to the table. This is by design.
I have not tested this, but try this
Sub subCategorie (item As Map) As String 'ignore
item.put("idcategorie", "NEW VALUE")
return NEW VALUE
End Sub
Note that updating "idcategorie" in this way might have some unexpected consequences.
What you can do, is to add a fictitious column to the table, so that the original value is not changed and update the value of that column with a value based on the original data.
Table1.AddColumn("idcategorie1", "Categoria") 'map categorie
Table1.SetColumnComputeValue("idcategorie1", "subCategorie")
'
'
Sub subCategorie (item As Map) As String 'ignore
dim sidcategorie as string = item.get("idcategorie")
item.put(''idcategorie1'', new_value_based_on_idcategory)
return new_value_based_on_idcategory
'
'
End Sub
This might just work, unfortunately Im not sure about search.