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 créateur de rapports. Pour utiliser ces appels d’API, vérifiez que la version la plus récente du créateur de rapports 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 créateur de rapports.

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 créateur de rapports. 

RefreshAllReportBuilderRequests()

Cette macro actualise toutes les requêtes du créateur de rapports dans le classeur actif. Elle commence par appeler le complément COM du créateur de rapports 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 créateur de rapports 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 créateur de rapports :

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 créateur de rapports 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

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