Bonjour,
J'ai un problème que je n'arrive pas à résoudre sur un tableau dynamique : je veux sélectionner une ligne dans une combo de sélection du tableau dynamique, mais lorsque la valeur n'existe pas, je voudrais appliquer un traitement spécial.

Voilà mon code actuel :

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
              ' on remplit le tableau du haut
                i = 8
                While ActiveSheet.Range("A" & i).Value <> "Total"
                    ' récupération du nom de la direction
                    nomDir = ActiveSheet.Range("A" & i).Value
 
                    If nomDirTraitee = nomDir Then
                        ActiveSheet.Range("A" & i & ":C" & i).Select
                        With Selection.Interior
                            .ColorIndex = 6
                            .Pattern = xlSolid
                        End With
                        Selection.Font.Bold = True
                    End If
 
                    Workbooks(2).Activate
                    ActiveWorkbook.Sheets(nomFeuille).Select
 
                    On Error GoTo -1: On Error GoTo finDir
                    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Branche Direction").CurrentPage = nomDir
 
                        cout = ActiveSheet.Range("H8").Value
 
                        ' on récupère le mois en cours (pas forcément dans la dernière colonne)
                        numCol = 14
                        While numCol >= 2
                            If ActiveSheet.Cells(12, numCol).Value <> "" Then
                                nbPrest = ActiveSheet.Cells(12, numCol).Value
                                numCol = 1
                            Else
                                numCol = numCol - 1
                            End If
                        Wend
 
                        ' MAJ du tableau
                        Workbooks(3).Activate
                        ActiveWorkbook.Worksheets(Left(nomSociete, 31)).Select
 
                        If IsError(cout) Then
                            ActiveSheet.Rows(i).Delete
                        Else
                            ActiveSheet.Range("B" & i).Value = nbPrest
                            ActiveSheet.Range("C" & i).Value = cout
                            i = i + 1
                        End If
finDir:
Err.Number = 0
 
                Wend

La valeur que je sélectionne dans la combo de sélection du tableau dynamique peut ne pas exister : c'est ce cas qui me bloque, car quand elle n'existe pas, j'aimerais appliquer le code "ActiveSheet.Rows(i).Delete"
j'ai utilisé le "onError GoTo" car je n'ai rien trouvé d'autre, mais s'il existe un moyen de tester l'existence d'une valeur dans la liste, je préfèrerais.

Merci d'avance pour votre aide