XL 2013 VBA Gestion d'erreur avec fonction Getpivotdata

  • Initiateur de la discussion Initiateur de la discussion Vero2782
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Vero2782

XLDnaute Nouveau
Bonjour,

Mon code fonctionnait presque bien jusqu'à ce que je veuille lui ajouter une condition.

Pour chaque item de la liste (FOR EACH), il va chercher la donnée de la variable NBGB dans un TCD (GetPIVOTDATA) et me la colle dans la colone à droite de la liste recherchée (OFFSET(0,1))

Par contre, lorsque je recherche une valeur qui n'est pas dans le TCD, il me colle la valeur de la variable précédente alors que je voudrais qu'il écrive 0.

Donc, je pensais lui dire que si NBGB est error , la valeur =0 ... Ça ne fonctionne pas.


Aussi, Même si la fonction InStr est dans mon code et fonctionne... Je ne comprend pas vraiment sa lecture... Quelqu'un peut me la "traduire" en mot ?

Merci beaucoup !


Windows("Master.xls").Activate
Sheets("feuille1").Select
Set SrchRng = Range("$G$2:$G$15")

For Each Cel In SrchRng

Windows("Data.xlsx").Activate
Sheets("Feuille 1").Select
Set PTGB = ActiveSheet.PivotTables(1)

NBGB = PTGB.GetPivotData("enddaterange", "princname", ClientName, "dept", DEPT, "typedesce", Cel).Value

If IsError(NBGB) Then
Cel.Offset(0, 1).Value = "0"

Else
If InStr(1, Cel.Value, Cel) > 0 Then
Cel.Offset(0, 1).Value = NBGB
End If
End If


Next Cel
 
Re : VBA Gestion d'erreur avec fonction Getpivotdata

Je n'ai pas encore trouvé de solutions à ce problème... quelqu'un à une idée ?
Dans le fond, Je veux programmer que s'ils ne trouve pas de résultats au getpivotdata, il doit enregistrer 0 dans la variable NBGB...
 
Re : VBA Gestion d'erreur avec fonction Getpivotdata

Voici ce que j'ai trouvé si ça peut aider quelqu'un ! Fonction On error resume next

Windows("Master.xls").Activate
Sheets("Feuille1").Select
Set SrchRng = Range("$G$2:$G$15")

For Each Cel In SrchRng

Windows("Data.xlsx").Activate
Sheets("feuille1.xls").Select
Set PTGB = ActiveSheet.PivotTables(1)

On Error Resume Next
NBGB = 0
NBGB = PTGB.GetPivotData("enddaterange", "princname", ClientName, "dept", DEPT, "typedesce", Cel).Value

If InStr(1, Cel.Value, Cel) > 0 Then
Cel.Offset(0, 1).Value = NBGB

End If


Next Cel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
791
Réponses
7
Affichages
657
Retour