Bonjour,
Tout d'abord j'espère que je poste au bon endroit.
Je recherche de l'aide pour une macro dont la principale fonction est de copier/coller des données filtrées par axes analytiques (Région,Business unit, etc...) issues d'une table powerpivot et des les générer sur une trame Excel unique à dupliquer en autant d'Axe analytique existant.
Ma problématique est la suivante : lorsque la macro active les différents filtres du powerpivot, il arrive parfois que le champ "BU" soit inexistant dans la base de données. En effet si je n'ai pas de données financière pour la BU à l'instant T, il est tout à fait probable que je puisse avoir des données lors de la mise à jour suivante.
J'ai donc bien entendu un message d'erreur lorsque cela se produit.
j'ai fait plusieurs recherches pour contourner le problème, et j'ai pensé à utiliser une instruction de type ON ERROR RESUME NEXT, mais cela ne me convient pas.
En réalité, je ne souhaite pas aller à l'instruction suivante mais tout simplement sauter toute une partie de la procédure lorsque l'erreur se produit ( voir l'exemple d'un bout de code ci-dessous annoté de ce que je souhaiterais mettre en place).
Je précise également que contourner l'erreur ne me pose pas de problème avec un tel type d'instruction dans ma macro même si je sais qu'elles ne sont pas toujours bien accueillies par des développeurs aguerris.
Je vous remercie pour l'attention que vous porterez à mon message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 '--------------------------------------------------------CODE REGION 1--------------------------------------------------------------------------------- Sheets("En-Cours").Select ActiveWorkbook.SlicerCaches("Segment_Branche_Nom1"). _ VisibleSlicerItemsList = Array( _ "[EN-COURS].[Branche_Nom].&[DIRECTION OPERATION 1]") ActiveWorkbook.SlicerCaches("Segment_BU_Code1"). _ VisibleSlicerItemsList = Array( _ "[EN-COURS].[BU_Code].&[BU1]") -> Si code en erreur aller directement au point 2 ActiveWorkbook.SlicerCaches("Segment_Entité_Code").ClearManualFilter VisibleSlicerItemsList = Array( _ "[EN-COURS].[Type].&[> 6 mois]", _ "[EN-COURS].[Type].&[entre 1 et 6 mois]") Range("E2") = "REGION 1" 'Ouverture Trame Point 2 Workbooks.Open Filename:= XXX\XXX\XXX.xls
Partager