Bonjour,

dans la macro ci après, je vais chercher des infos dans un TCD, je selectionne une catégorie - une fois la catégorie selectionnée, j'active une macro pour traiter les données, copie et colle des données dans un tableau - plutot que de le faire manuellement j ai eu l idée d'enregistrer une macro qui selectionne copie et colle - le seul souci c'est quand la catégorie n'existe pas - la macro plante -

J'aimerais donc dans la macro ci après ajouter une condition if "" alors passer à l'action suivante - je ne sais pas si je sui clair - en d autres termes, si la catégorie n'existe pas passer à la catégorie suivante -

Merci par avance pour vos idées

voici ce que jai enregistré :

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Sub test2()
'
' test2 Macro
' Macro enregistrée le 15/06/2009 par freddy
'
 
'
    ActiveWorkbook.ShowPivotTableFieldList = False
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("CONSUMABLE IN MECHANICS").Visible = False
        .PivotItems("DIA PURCHASING SEGMENTS").Visible = False
        .PivotItems("ELECTRICITY").Visible = False
        .PivotItems("ENERGY FUELS & UTILITIES").Visible = False
        .PivotItems("GENERAL SERVICES").Visible = False
        .PivotItems("INSTRUMENTATION AND CONTROL").Visible = False
        .PivotItems("IT AND TELECOM.").Visible = False
        .PivotItems("LABORATORY PRODUCTS AND EQU.").Visible = False
        .PivotItems("LOGISTICS- PACKAGING").Visible = False
        .PivotItems("LUBRICANTS").Visible = False
        .PivotItems("MACHINES AND PROCESS EQU.").Visible = False
        .PivotItems("MISC CONSUMABLES").Visible = False
        .PivotItems("PHARMACEUTICALS PRODUCTS").Visible = False
        .PivotItems("TECHNICAL GOODS").Visible = False
        .PivotItems("TECHNICAL GOODS AND SERVICES").Visible = False
        .PivotItems("VALVES AND PIPING").Visible = False
        .PivotItems("VESSELS AND SPECIAL EQU.").Visible = False
        .PivotItems("(vide)").Visible = False
        .PivotItems("Not Assigned Mat Group DIA (s)").Visible = False
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("CHEMICALS AND RAW MATERIALS").Visible = False
        .PivotItems("IT AND TELECOM.").Visible = True
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=9
    Range("I34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-15
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("IT AND TELECOM.").Visible = False
        .PivotItems("TECHNICAL GOODS").Visible = True
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=6
    Range("J34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-15
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("CHEMICALS AND RAW MATERIALS").Visible = True
        .PivotItems("TECHNICAL GOODS").Visible = False
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=9
    Range("K34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-21
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("CHEMICALS AND RAW MATERIALS").Visible = False
        .PivotItems("PHARMACEUTICALS PRODUCTS").Visible = True
    End With
    ActiveWindow.SmallScroll Down:=-6
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=6
    Range("L34").Select
    ActiveSheet.Paste
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.SmallScroll Down:=-18
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("ENERGY FUELS & UTILITIES").Visible = True
        .PivotItems("PHARMACEUTICALS PRODUCTS").Visible = False
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=6
    Range("M34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-15
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("ENERGY FUELS & UTILITIES").Visible = False
        .PivotItems("LOGISTICS- PACKAGING").Visible = True
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=9
    Range("N34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-18
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Name Mat Group DIA")
        .PivotItems("GENERAL SERVICES").Visible = True
        .PivotItems("LOGISTICS- PACKAGING").Visible = False
    End With
    Application.Run "'new version.xls'!Feuil6.multiloadGeneral"
    Range("H9:H18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("O24").Select
    Range("O34").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=9
End Sub