IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Actualisation de TCD trop long [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut Actualisation de TCD trop long
    Bonjour,

    Je suis en train de développer un programme sous VBA pour actualiser plusieurs TCD. Le temps d'exécution est trop long (avec ci peu de données je n'ose pas imaginer dans 1 an quand ma base sera plus concécante). Pourriez vous regarder mon code et m'aider dans l'optimisation de celui-ci?
    Ci joint le code
    En vous remerciant par avance.

    Cordialement

    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
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    Sub Modif_TCD_Rapport()
    ' Rafraichissment de tous les TCD
    ActiveWorkbook.RefreshAll
    ' Modif_TCD_Rapport Macro
    '
    ' Activation de la fenêtre "TCD rapport"
        Worksheets("Rapport").Activate
     
    ' Modification des champs de filtre TCD8
        ActiveSheet.PivotTables("TCD8").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD8").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD8").PivotFields("MOIS").ClearAllFilters
        ActiveSheet.PivotTables("TCD8").PivotFields("MOIS").CurrentPage = Rapport.ComboBox3.Value
     
    ' Modification des champs de filtre TCD6
        ActiveSheet.PivotTables("TCD6").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD6").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD6").PivotFields("MOIS").ClearAllFilters
        ActiveSheet.PivotTables("TCD6").PivotFields("MOIS").CurrentPage = Rapport.ComboBox3.Value
     
    ' Modification des champs de filtre TCD7
        ActiveSheet.PivotTables("TCD7").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD7").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD7").PivotFields("MOIS").ClearAllFilters
        ActiveSheet.PivotTables("TCD7").PivotFields("MOIS").CurrentPage = Rapport.ComboBox3.Value
     
     With ActiveSheet.PivotTables("TCD6").PivotFields("SECTION")
            .PivotItems("").Visible = True
            .PivotItems("M00").Visible = False
            .PivotItems("M01").Visible = False
            .PivotItems("M02").Visible = False
            .PivotItems("M10").Visible = False
            .PivotItems("M20").Visible = False
            .PivotItems("M22").Visible = False
            .PivotItems("M24").Visible = False
            .PivotItems("M25").Visible = False
            .PivotItems("M26").Visible = False
            .PivotItems("M27").Visible = False
            .PivotItems("M31").Visible = False
            .PivotItems("M34").Visible = False
            .PivotItems("M41").Visible = False
            .PivotItems("M44").Visible = False
            .PivotItems("M45").Visible = False
            .PivotItems("M46").Visible = False
            .PivotItems("M47").Visible = False
            .PivotItems("M50").Visible = False
            .PivotItems("M60").Visible = False
            .PivotItems("M62").Visible = False
            .PivotItems("M70").Visible = False
            .PivotItems("M81").Visible = False
        End With
     
        With ActiveSheet.PivotTables("TCD7").PivotFields("SECTION")
            .PivotItems("").Visible = True
            .PivotItems("M00").Visible = False
            .PivotItems("M01").Visible = False
            .PivotItems("M02").Visible = False
            .PivotItems("M10").Visible = False
            .PivotItems("M20").Visible = False
            .PivotItems("M22").Visible = False
            .PivotItems("M24").Visible = False
            .PivotItems("M25").Visible = False
            .PivotItems("M26").Visible = False
            .PivotItems("M27").Visible = False
            .PivotItems("M31").Visible = False
            .PivotItems("M34").Visible = False
            .PivotItems("M41").Visible = False
            .PivotItems("M44").Visible = False
            .PivotItems("M45").Visible = False
            .PivotItems("M46").Visible = False
            .PivotItems("M47").Visible = False
            .PivotItems("M50").Visible = False
            .PivotItems("M60").Visible = False
            .PivotItems("M62").Visible = False
            .PivotItems("M70").Visible = False
            .PivotItems("M81").Visible = False
        End With
     
     
    ' Si la sélection est = à M00 ou M02 alors Champ de filtre TCD6 et TCD7 = M00 et M02
        If Rapport.ComboBox1.ListIndex = 0 Or Rapport.ComboBox1.ListIndex = 2 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M00").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M02").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M00").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M02").Visible = True
        End If
     
    ' Si la sélection est = à M01 ou M10 ou M81 alors Champ de filtre TCD6 et TCD7 = M01 et M10 et M81
        If Rapport.ComboBox1.ListIndex = 1 Or Rapport.ComboBox1.ListIndex = 3 Or Rapport.ComboBox1.ListIndex = 24 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M01").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M10").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M81").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M01").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M10").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M81").Visible = True
        End If
     
    ' Si la sélection est = à M20 ou M27 alors Champ de filtre TCD6 et TCD7 = M20 et M27
        If Rapport.ComboBox1.ListIndex = 4 Or Rapport.ComboBox1.ListIndex = 9 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M20").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M27").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M20").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M27").Visible = True
        End If
     
    ' Si la sélection est = à M22 alors Champ de filtre TCD6 et TCD7 = M22
        If Rapport.ComboBox1.ListIndex = 5 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M22").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M22").Visible = True
        End If
     
    ' Si la sélection est = à M24 ou M25 alors Champ de filtre TCD6 et TCD7 = M24 et M25
        If Rapport.ComboBox1.ListIndex = 6 Or Rapport.ComboBox2.ListIndex = 7 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M24").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M25").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M24").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M25").Visible = True
        End If
     
    ' Si la sélection est = à M26 ou M31 ou M34 alors Champ de filtre TCD6 et TCD7 = M26 et M31 et M34
        If Rapport.ComboBox1.ListIndex = 8 Or Rapport.ComboBox1.ListIndex = 10 Or Rapport.ComboBox1.ListIndex = 11 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M26").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M31").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M34").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M26").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M31").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M34").Visible = True
        End If
     
    ' Si la sélection est = à M41 ou M43 alors Champ de filtre TCD6 et TCD7 = M41 et M43
        If Rapport.ComboBox1.ListIndex = 12 Or Rapport.ComboBox1.ListIndex = 13 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M41").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M43").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M41").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M43").Visible = True
        End If
     
    ' Si la sélection est = à M44 alors Champ de filtre TCD6 et TCD7 = M44
        If Rapport.ComboBox1.ListIndex = 14 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M44").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M44").Visible = True
        End If
     
    ' Si la sélection est = à M45 ou M46 alors Champ de filtre TCD6 et TCD7 = M45 et M46
        If Rapport.ComboBox1.ListIndex = 15 Or Rapport.ComboBox1.ListIndex = 16 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M45").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M46").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M45").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M46").Visible = True
        End If
     
    ' Si la sélection est = à M47 alors Champ de filtre TCD6 et TCD7 = M47
        If Rapport.ComboBox1.ListIndex = 17 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M47").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M47").Visible = True
        End If
     
    ' Si la sélection est = à M50 ou M51 alors Champ de filtre TCD6 et TCD7 = M50 et M51
        If Rapport.ComboBox1.ListIndex = 18 Or Rapport.ComboBox1.ListIndex = 19 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M50").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M51").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M50").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M51").Visible = True
        End If
     
    ' Si la sélection est = à M60 alors Champ de filtre TCD6 et TCD7 = M60
        If Rapport.ComboBox1.ListIndex = 20 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M60").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M60").Visible = True
        End If
     
    ' Si la sélection est = à M62 alors Champ de filtre TCD6 et TCD7 = M62
        If Rapport.ComboBox1.ListIndex = 21 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M62").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M62").Visible = True
        End If
     
    ' Si la sélection est = à M70 alors Champ de filtre TCD6 et TCD7 = M70
        If Rapport.ComboBox1.ListIndex = 22 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M70").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M70").Visible = True
        End If
     
     
    ' définition de la police et du fond des celulles E29 à I150
        Range("E29:I150").Select
        With Selection.Font
            .Name = "Calibri"
            .Size = 8
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent2
            .TintAndShade = 0.799981688894314
            .PatternTintAndShade = 0
        End With
    ' définition de la police et du fond des celulles J29 à L150
        Range("J29:L150").Select
        With Selection.Font
            .Name = "Calibri"
            .Size = 8
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        With Selection.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent3
            .TintAndShade = 0.799981688894314
            .PatternTintAndShade = 0
        End With
     
        ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").ClearAllFilters
     
        With ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2")
            .PivotItems("").Visible = True
            .PivotItems("M20").Visible = False
            .PivotItems("M22").Visible = False
            .PivotItems("M27").Visible = False
            .PivotItems("M44").Visible = False
            .PivotItems("M45").Visible = False
            .PivotItems("M70").Visible = False
        End With
     
    ' Si la sélection est = à M00 ou M02 alors Champ de filtre TCD9 = M00 et M02
        If Rapport.ComboBox1.ListIndex = 0 Or Rapport.ComboBox1.ListIndex = 2 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M00").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M02").Visible = True
        End If
     
    ' Si la sélection est = à M01 ou M10 ou M81 alors Champ de filtre TCD9 = M01 et M10 et M81
        If Rapport.ComboBox1.ListIndex = 1 Or Rapport.ComboBox1.ListIndex = 3 Or Rapport.ComboBox1.ListIndex = 24 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M01").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M10").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M81").Visible = True
        End If
     
    ' Si la sélection est = à M20 ou M27 alors Champ de filtre TCD9 = M20 et M27
        If Rapport.ComboBox1.ListIndex = 4 Or Rapport.ComboBox1.ListIndex = 9 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M20").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M27").Visible = True
        End If
     
    ' Si la sélection est = à M22 alors Champ de filtre TCD9 = M22
        If Rapport.ComboBox1.ListIndex = 5 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M22").Visible = True
        End If
     
    ' Si la sélection est = à M24 ou M25 alors Champ de filtre TCD9 = M24 et M25
        If Rapport.ComboBox2.ListIndex = 6 Or Rapport.ComboBox2.ListIndex = 7 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M24").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M25").Visible = True
        End If
     
    ' Si la sélection est = à M26 ou M31 ou M34 alors Champ de filtre TCD9 = M26 et M31 et M34
        If Rapport.ComboBox1.ListIndex = 8 Or Rapport.ComboBox1.ListIndex = 10 Or Rapport.ComboBox1.ListIndex = 11 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M26").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M31").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M34").Visible = True
        End If
     
    ' Si la sélection est = à M41 ou M43 alors Champ de filtre TCD9 = M41 et M43
        If Rapport.ComboBox1.ListIndex = 12 Or Rapport.ComboBox1.ListIndex = 13 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M41").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M43").Visible = True
        End If
     
    ' Si la sélection est = à M44 alors Champ de filtre TCD9 = M44
        If Rapport.ComboBox1.ListIndex = 14 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M44").Visible = True
        End If
     
    ' Si la sélection est = à M45 ou M46 alors Champ de filtre TCD9 = M45 et M46
        If Rapport.ComboBox1.ListIndex = 15 Or Rapport.ComboBox1.ListIndex = 16 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M45").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M46").Visible = True
        End If
     
    ' Si la sélection est = à M47 alors Champ de filtre TCD9 = M47
        If Rapport.ComboBox1.ListIndex = 17 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M47").Visible = True
        End If
     
    ' Si la sélection est = à M50 ou M51 alors Champ de filtre TCD9 = M50 et M51
        If Rapport.ComboBox1.ListIndex = 18 Or Rapport.ComboBox1.ListIndex = 19 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M50").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M51").Visible = True
        End If
     
    ' Si la sélection est = à M60 alors Champ de filtre TCD9 = M60
        If Rapport.ComboBox1.ListIndex = 20 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M60").Visible = True
        End If
     
    ' Si la sélection est = à M62 alors Champ de filtre TCD9 = M62
        If Rapport.ComboBox1.ListIndex = 21 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M62").Visible = True
        End If
     
    ' Si la sélection est = à M70 alors Champ de filtre TCD9 = M70
        If Rapport.ComboBox1.ListIndex = 22 Then
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M70").Visible = True
        End If
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ca serait bien si tu pouvais mettre un classeur exemple - sans données confidentielles - en pièce jointe.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Ci-joint le fichier original
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Il y a toutefois une différence entre le classeur et le code publié. Les lignes 28 et 54 et peut-être d'autres manquent dans le classeur, ce qui provoque un plantage. Est-ce que je dois les ajouter ?

    Ainsi modifiée, l'exécution de la macro (sans modifier l'userform) prend 0,6 sec. Comment lance-t-on l'userform et que faut-il entrer pour avoir un temps d'exécution trop long ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Effectivement le code que j'ai affiché diffère du fichier. Vous pouvez rajouter les lignes manquantes.

    Dans la combobox1 de l'userform, essayez de choisir M01 ou M26, puis choisissez le mois d'avril. En plus je viens de tester avant d'envoyer le message et malheureusement "Bugg" sur ligne 339 du module1 :"Impossible de lire la propriété PivotItems de la classe PivotFeild.
    Je pense que c'est du au fait que le TCD9 est là pour récupérer les données stockées dans l'onglet Plan d'action et comme je n'ai pas de plan d'action pour l'une ou l'autre des Sections, il plante. Peut être est il préférable de revoir le code afin de supprimer ce genre de bug.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Oui, mais bon, je ne sais pas quoi faire. Il n'y a pas d'item M00 ou M02 dans ce tableau.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Je reformule mon besoin depuis le début, pour clarifier les choses.

    L’objectif est d’automatiser la saisie des résultats d’audit et de pouvoir consulter et imprimer les rapports.

    Donnée d’entrée : il y a 14 responsables, assistés de leur Technicien Atelier, qui doivent réaliser toutes les semaines un audit. Parmi eux il y a des responsables qui ont 1 section d’autre 2 et d’autres 3. Une section est intitulée « MXX ».

    1ère étape :
    L’utilisateur ouvre le fichier puis clique sur le bouton « AUDIT EHS »
    L’USF « Formulaire » s’ouvre, il le complète, puis passe sur les questionnaires qui se succèdent dans l’ordre.
    Pour chaque réponse, une valeur est ajoutée à la base « Recueil données »
    - OUI = 0
    - N/A = « rien »
    - NON = 1 et ouvre l’USF « Plan_action » (Je reviendrai sur cette USF, pour d’autres problèmes)
    L’utilisateur rempli l’USF « Plan_action » et valide pour passer à la question suivante.
    La validation de celui-ci permet de remplir la base « Plan d’action »
    Une fois que tous les questionnaires sont remplis. Il valide et reviens sur la feuille de départ (Sheet1, que je renommerai « Menu »)

    2ème étape
    L’utilisateur clique sur le bouton « RAPPORT D’AUDIT »
    L’USF « Rapport » s’ouvre, il le complète, et valide
    La validation doit changer les items de filtre dans l’onglet « Rapport » avec les valeurs des ComboBox, par exemple, pour le choix de la section M01, les Items « SECTION » des TCD6 et TCD7 cochés sont M01, M10 et M81, et l’Item « SECTION » du TCD8 est égal à M01-10-81, mais aussi l’Item « SECTION2 »du TCD9 a comme sélections cochées M01, M10 et M81.

    Ma demande est : si l’utilisateur a fait son audit et n’a pas trouvé d’écarts, il doit pouvoir consulter et imprimer son rapport. Comment le faire ?

    J’ai bien d’autres problèmes mais celui-ci est prioritaire pour la suite.

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Regarde mon message du 07/06/2012 14:13. Il y a un plantage dû à des items inexistants.

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    re Daniel,

    Les items manquants sont la source de mon problème.
    En fait c'est de pouvoir passer outre ces items manquants, deux idées me sont venues:
    1- Remplir ma base de données "Plan d'action" avec toutes les sections en "G" mais rien dans les autres colonnes. Ce qui constituerai une banque d'item pour le code.
    Le risque est que ces données s'affichent dans mon TCD même vierge de commentaires, donc inutilede les afficher.
    2- Faire une condition et/ou boucle, permettant, si les items sont inexistants de tout de même aller au bout. Un peu comme le post de cozzmoss. sur la gestion des items de TCD.

    Vous voyez où je veux en venir.

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Tu pourrais aussi utiliser :

    pour sauter ces lignes si ça ne gêne pas le reste.

  11. #11
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Re salut Daniel,

    Le "On error Resume Next" marche bien et bien évidemment en fin de porgramme j'ai mis "On Error GoTo 0". Je l'ai testé plusieurs fois, sur plusieurs sections.
    Et justement lors de ces tests, les sections auparavent testées restent cochés dans le champs de filtre. J'ai relu plusieurs post du forum, notamment celui ci :"Gestion des Item dans un TCD en VBA" ouvert par BAHIRI le 03/03/2012à 11h45.
    J'ai dupliqué et adapté (enfin essayé) le code à mon programme. Or bug, du type : "Erreur d'exécution'1004': Impossible de lire la propriété PivotItems de la classe PivotFields."

    Voici le code:
    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
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    Sub Modif_TCD_Rapport()
     
    Dim i As Integer
    Dim Cb
     
    Cb = Rapport.ComboBox1.ListIndex
     
        Application.ScreenUpdating = False
        ActiveWorkbook.RefreshAll
     
    ' Modif_TCD_Rapport Macro
    '
    ' Activation de la fenêtre "TCD rapport"
        Worksheets("Rapport").Activate
     
    ' Modification des champs de filtre TCD8
        ActiveSheet.PivotTables("TCD8").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD8").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD8").PivotFields("MOIS").ClearAllFilters
        ActiveSheet.PivotTables("TCD8").PivotFields("MOIS").CurrentPage = Rapport.ComboBox3.Value
        ActiveSheet.PivotTables("TCD8").PivotFields("Section").ClearAllFilters
        ActiveSheet.PivotTables("TCD8").PivotFields("Section").EnableMultiplePageItems _
            = False
     
    ' Modification des champs de filtre TCD6
        ActiveSheet.PivotTables("TCD6").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD6").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD6").PivotFields("MOIS2").ClearAllFilters
        ActiveSheet.PivotTables("TCD6").PivotFields("MOIS2").CurrentPage = Rapport.ComboBox3.Value
     
     
    ' Modification des champs de filtre TCD7
        ActiveSheet.PivotTables("TCD7").PivotFields("ANNEE").ClearAllFilters
        ActiveSheet.PivotTables("TCD7").PivotFields("ANNEE").CurrentPage = Rapport.ComboBox2.Value
        ActiveSheet.PivotTables("TCD7").PivotFields("MOIS2").ClearAllFilters
        ActiveSheet.PivotTables("TCD7").PivotFields("MOIS2").CurrentPage = Rapport.ComboBox3.Value
     
    'Modification du TCD plan d'action
        ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").ClearAllFilters
     
    'Conditions de départ
        With ActiveSheet.PivotTables("TCD6").PivotFields("SECTION")
            For i = 1 To .PivotItems.Count
                If .PivotItems(i).Name = Cb Then
                    .PivotItems(i).Visible = True
                Else
                    .PivotItems(i).Visible = False
                End If
            Next i
        End With
     
        With ActiveSheet.PivotTables("TCD7").PivotFields("SECTION")
            For i = 1 To .PivotItems.Count
                If .PivotItems(i).Name = Cb Then
                    .PivotItems(i).Visible = True
                Else
                    .PivotItems(i).Visible = False
                End If
            Next i
        End With
     
        With ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2")
            .PivotItems("(blank)").Visible = True
        End With
     
    'Modification des champs du filtre Section suivant la condition
        On Error Resume Next
    ' Si la sélection est = à M00 ou M02 alors Champ de filtre TCD6 et TCD7 = M00 et M02
        If Rapport.ComboBox1.ListIndex = 0 Or Rapport.ComboBox1.ListIndex = 2 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M00 - Frappe horizontale").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M02 - Filage / Appointage").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M00 - Frappe horizontale").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M02 - Filage / Appointage").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M00-02"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M00 - Frappe horizontale").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M02 - Filage / Appointage").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M01 ou M10 ou M81 alors Champ de filtre TCD6 et TCD7 = M01 et M10 et M81
        If Rapport.ComboBox1.ListIndex = 1 Or Rapport.ComboBox1.ListIndex = 3 Or Rapport.ComboBox1.ListIndex = 24 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M01 - Frappe verticale").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M10 - Découpe lopins").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M81 - Parc Matière").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M01 - Frappe verticale").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M10 - Découpe lopins").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M81 - Parc Matière").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M01-10-81"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M01 - Frappe verticale").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M10 - Découpe lopins").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M81 - Parc Matière").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M20 ou M27 alors Champ de filtre TCD6 et TCD7 = M20 et M27
        If Rapport.ComboBox1.ListIndex = 4 Or Rapport.ComboBox1.ListIndex = 9 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M20 - Rectification").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M27 - Marquage").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M20 - Rectification").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M27 - Marquage").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M20-27"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M20 - Rectification").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M27 - Marquage").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
     
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M22 alors Champ de filtre TCD6 et TCD7 = M22
        If Rapport.ComboBox1.ListIndex = 5 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M22 - Reprise").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M22 - Reprise").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M22"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M22 - Reprise").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M24 ou M25 alors Champ de filtre TCD6 et TCD7 = M24 et M25
        If Rapport.ComboBox1.ListIndex = 6 Or Rapport.ComboBox2.ListIndex = 7 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M24 - TCN").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M25 - FCN").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M24 - TCN").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M25 - FCN").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M24-25"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M24 - TCN").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M25 - FCN").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M26 ou M31 ou M34 alors Champ de filtre TCD6 et TCD7 = M26 et M31 et M34
        If Rapport.ComboBox1.ListIndex = 8 Or Rapport.ComboBox1.ListIndex = 10 Or Rapport.ComboBox1.ListIndex = 11 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M26 - Perçage").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M31 - Galetage").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M34 - Roulage").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M26 - Perçage").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M31 - Galetage").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M34 - Roulage").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M26-31-34"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M26 - Perçage").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M31 - Galetage").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M34 - Roulage").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M41 ou M43 alors Champ de filtre TCD6 et TCD7 = M41 et M43
        If Rapport.ComboBox1.ListIndex = 12 Or Rapport.ComboBox1.ListIndex = 13 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M41 - Atelier rapide").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M43 - Cellule Axe").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M41 - Atelier rapide").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M43 - Cellule Axe").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M41-43"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M41 - Atelier rapide").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M43 - Cellule Axe").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M44 alors Champ de filtre TCD6 et TCD7 = M44
        If Rapport.ComboBox1.ListIndex = 14 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M44 - Recoupe ébauche").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M44 - Recoupe ébauche").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M44"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M44 - Recoupe ébauche").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M45 ou M46 alors Champ de filtre TCD6 et TCD7 = M45 et M46
        If Rapport.ComboBox1.ListIndex = 15 Or Rapport.ComboBox1.ListIndex = 16 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M45 - Cellule 12 dents gros Ø").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M46 - Cellule GE").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M45 - Cellule 12 dents gros Ø").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M46 - Cellule GE").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M45-46"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M45 - Cellule 12 dents gros Ø").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M46 - Cellule GE").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M47 alors Champ de filtre TCD6 et TCD7 = M47
        If Rapport.ComboBox1.ListIndex = 17 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M47 - Cellule auto").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M47 - Cellule auto").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M47"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M47 - Cellule auto").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M50 ou M51 alors Champ de filtre TCD6 et TCD7 = M50 et M51
        If Rapport.ComboBox1.ListIndex = 18 Or Rapport.ComboBox1.ListIndex = 19 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M50 - TS").Visible = True
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M51 - TTH").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M50 - TS").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M51 - TTH").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M50-51"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M50 - TS").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M51 - TTH").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M60 alors Champ de filtre TCD6 et TCD7 = M60
        If Rapport.ComboBox1.ListIndex = 20 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M60 - Contrôle").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M60 - Contrôle").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M60"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M60 - Contrôle").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error Resume Next
    ' Si la sélection est = à M62 alors Champ de filtre TCD6 et TCD7 = M62
        If Rapport.ComboBox1.ListIndex = 21 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M62 - Laboratoire").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M62 - Laboratoire").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M62"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M62 - Laboratoire").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
     
        On Error GoTo Vide
    ' Si la sélection est = à M70 alors Champ de filtre TCD6 et TCD7 = M70
        If Rapport.ComboBox1.ListIndex = 22 Then
            ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("M70 - Outillages").Visible = True
            ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("M70 - Outillages").Visible = True
            ActiveSheet.PivotTables("TCD8").PivotFields("Section").CurrentPage = "M70"
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("M70 - Outillages").Visible = True
            ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = False
        End If
        Exit Sub
     
    Vide:
    ActiveSheet.PivotTables("TCD6").PivotFields("SECTION").PivotItems("(blank)").Visible = True
    ActiveSheet.PivotTables("TCD7").PivotFields("SECTION").PivotItems("(blank)").Visible = True
    ActiveSheet.PivotTables("TCD8").PivotFields("Section").PivotItems("(blank)").Visible = True
    ActiveSheet.PivotTables("TCD9").PivotFields("SECTION2").PivotItems("(blank)").Visible = True
     
    Dim lg As Byte
    lg = Range("I" & Rows.Count).End(xlUp).Row
    ActiveSheet.PageSetup.PrintArea = "$E$3:$M$" & lg
     
    Application.ScreenUpdating = True
     
    End Sub
    ça va certes beaucoup plus vite qu'à l'origine en terme de calcul.

    Peux tu me dire ce qui ne va pas dans ce code? Et m'aider à l'optimiser

    Merci par avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrement trop long dans ACCESS (ALTER TABLE)
    Par Arrown dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/07/2004, 21h20
  2. Mot trop long
    Par Toudy dans le forum ASP
    Réponses: 6
    Dernier message: 28/07/2004, 18h51
  3. Chargement de page trop long
    Par t_o_7_ dans le forum ASP
    Réponses: 2
    Dernier message: 19/09/2003, 19h58
  4. [TComboBox] Contenu trop long pour la zone d'affichage
    Par bebeours dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2003, 17h21
  5. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo