Bonjour,

Je suis désolée si ce message a déjà été adressé, mais j'ai cherché dans la FAQ et dans les discussions sans trouver de réponse.

De plus, je cours un peu après les temps pour etre honnete.

Je débute complètement, ce n'est pas du tout mon domaine, mais on m'a confié ce boulot, donc.....

Alors, vraiment désolée si mon code est moche et pas du tout optimisé....

Mon problème :

Je crée un TCD dans VBA dans lequel je veux filtrer certaines valeurs d'un champ (.PivotItems(Pivot_i).Visible = True).
Mon souci est que parfois la valeur prise par ce fameux pivot_i n'existe pas dans le TCD et il y a donc une erreur.

Je souhaiterais que dans ce cas le reste de la procedure ne s'execute pas. Je suis dans une boucle for et je voudrais sortir de l execution et passer au next i.

J'ai essaye avec On error goto mais je ne m'en sors pas. En gros ca marche la premiere fois, mais ensuite rien...

On error resume next ne marche pas etant donne qu'alors le reste s'execute et je ne veux pas.

Voici mon code (encore desolee pour la mochete.....)

Si quelqu'un a une idee je prends.....Merci beaucoup.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
For i = 12 To derniere_ligne_P_and_L_HP
 
Worksheets("P&L HP").Activate
 
Pivot_i = Cells(i, 17).Value
 
If Pivot_i = "" Then
GoTo 14
Else
 
If Worksheets("Pivot").Cells(5, 1).Value = Pivot_i Then
GoTo 15
 
Else
 
Worksheets("Pivot").Activate
 
On Error GoTo Error_handler
 
With ActiveSheet.PivotTables("TCD").PivotFields("Ref Conso")
        .PivotItems(Pivot_i).Visible = True
 
End With
 
 
Worksheets("P&L HP").Activate
Cells(i, 18).Value = -Worksheets("Pivot").Cells(5, 2).Value
 
Worksheets("Pivot").Activate
 On Error GoTo Error_handler
With ActiveSheet.PivotTables("TCD").PivotFields("Ref Conso")
        .PivotItems(Pivot_i).Visible = False
 
End With
 
End If
 
GoTo 14
 
15:
 
Worksheets("P&L HP").Activate
Cells(i, 19).Value = -Worksheets("Pivot").Cells(5, 2).Value
 
14:
i = i
 
End If
 
Error_handler:
On Error GoTo 0
 
Next i