Les macros VBA, également appelées macros Visual Basic, permettent de manipuler des classeurs Excel de toute autre manière qu’Excel. Visual Basic a accès au classeur, à Excel et même à Windows.

Depuis le 21 mars 2013, VBA peut appeler trois méthodes de l’API du Report Builder. Pour utiliser ces appels d’API, vérifiez que la version la plus récente du Report Builder est installée sur votre ordinateur, puis connectez-vous avant d’exécuter les macros.

Important : pour des raisons de sécurité, vous ne pouvez pas planifier un classeur qui contient une macro via l’interface de planification du Report Builder.

Pour des raisons de sécurité, il n’est pas possible de programmer un classeur qui contient une macro dans l’interface de planification du Report Builder. 

RefreshAllReportBuilderRequests()

Cette macro actualise toutes les requêtes du Report Builder dans le classeur actif. Elle commence par appeler le complément COM du Report Builder via son ID de produit. Elle appelle ensuite la commande d’API RefreshAllRequests() :

Sub RefreshAllReportBuilderRequests()

 Dim addIn As COMAddIn
 Dim automationObject As Object
 Dim success As String
 Set addIn = Application.COMAddIns("ReportBuilderAddIn.Connect")
 Set automationObject = addIn.Object
 success = automationObject.RefreshAllRequests(ActiveWorkbook)

End Sub

RefreshAllReportBuilderRequestsInActiveWorksheet()

Cette macro actualise toutes les requêtes du Report Builder dans la feuille de calcul active. L’appel d’API RefreshWorksheetRequests() utilise un objet de feuille de calcul en tant qu’argument. Vous pouvez utiliser cet appel pour les feuilles de calcul qui contiennent des requêtes du Report Builder :

Sub RefreshAllReportBuilderRequestsInActiveWorksheet()

 Dim addIn As COMAddIn
 Dim automationObject As Object
 Dim success As String
 Set addIn = Application.COMAddIns("ReportBuilderAddIn.Connect")
 Set automationObject = addIn.Object
 success = automationObject.RefreshWorksheetRequests(ActiveWorkbook.ActiveSheet)

End Sub

RefreshAllReportBuilderRequestsInCellsRange()

Cette macro actualise toutes les requêtes du Report Builder dont les cellules de sortie se trouvent à l’intersection de la plage de cellules spécifiée. La plage de cellules utilisée dans cet exemple pointe vers la plage B1:B54 de la feuille de calcul « Data » du classeur actif. L’expression de plage gère toutes les expressions de plage Excel prises en charge :

Sub RefreshAllReportBuilderRequestsInCellsRange()

 Dim addIn As COMAddIn
 Dim automationObject As Object
 Dim success As String
 Set addIn = Application.COMAddIns("ReportBuilderAddIn.Connect")
 Set automationObject = addIn.Object
 success = automationObject.RefreshRequestsInCellsRange("'Data'!B1:B54")
 
End Sub

Autres ressources

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne