Para crear macros, reqerimos el menu oculto de developer que tiene excel, por lo que el primer paso es habilitarlo en el excel, en Files->Options ->Customize Ribbon y seleccionar el checkbox de Developer
Teniendo el menu listo, procedemos a abrir la pantalla Visual Basic
Otro paso importante es activar el diccionario de referencias para que se entiendan los comandos de BPC en Vba, esto se logra en Tools->References y buscar seleccionar el checkbox de FPMXLClient
Ahora si teniendo todo esto podremos ejecutar comandos directamente en VBA que realicen cambios a BPC directamente, aqui exploramos una rutina de ejemplo utilizando los siguientes elementos de EPM:
FPMXLClient.EPMAddInAutomation: Con este comando inicializas una variable que tenga los diferentes metodos que EPM permite.
SaveWorksheetData: Salva datos utilizando como referencia la hoja donde este siendo ejecutado
RefreshActiveSheet: Refresca datos utilizando como referencia la hoja donde este siendo ejecutado
GetActiveConnection: Obtiene la conexion activa, es necesario enviarle la hoja de donde obtendra la conexion
SetContextMember: Cambiar contexto de elementos es requerido pasarle conexion, nombre tecnico de contexto y valor al que se le asignara.
Dim EPM As New FPMXLClient.EPMAddInAutomation 'asigna las propiedades de BPC a una variable
Sub savemulticurrency()
EPM.SaveWorksheetData 'ejecuta salvar datos en la pestaña actual
EPM.RefreshActiveSheet 'refresca los datos de la hoja actual
Sheets("CashFlowStm ConvCap").Select
CONNE = EPM.GetActiveConnection(ActiveSheet) 'obtener conexion de la hoja activa
EPM.SetContextMember CONNE, "RPTCURRENCY", "MXN" 'mueve parametro en RPTCURRENCY a MXN basado en la conexion capturada anteriormente
EPM.RefreshActiveSheet 'refresca los datos de la hoja actual
EPM.SaveWorksheetData 'ejecuta salvar datos en la pestaña actual
EPM.SetContextMember CONNE, "RPTCURRENCY", "USD" 'mueve parametro en RPTCURRENCY a USD basado en la conexion capturada anteriormente
EPM.RefreshActiveSheet 'refresca los datos de la hoja actual
EPM.SaveWorksheetData 'ejecuta salvar datos en la pestaña actual
EPM.SetContextMember CONNE, "RPTCURRENCY", "EUR" 'mueve parametro en RPTCURRENCY a EUR basado en la conexion capturada anteriormente
EPM.RefreshActiveSheet 'refresca los datos de la hoja actual
EPM.SaveWorksheetData 'ejecuta salvar datos en la pestaña actual
MsgBox ("Monedas EUR, USD y MXN generadas exitosamente!")
End Sub