Bonjour,
J'ai actuellement un problème avec mon code qui est le suivant :

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
Sub Cherche_Commun()
 
    'sur la portion Excel qui m'intéresse
    For i = 4728 To 4731
 
        'si la cellule est coloriée
        If Sheets("Avancement").Range("A" & i).Interior.TintAndShade <> 0 Then
 
            'j'attribue à material la valeur de la clé
            material = Range("A" & i).Value
 
            'je trie tous mes tableaux en fonction de la clé (pour voir si la valeur que je cherche y est)
            Sheets("DATA").Select
            ActiveSheet.Range("$A$4:$AB$12414").AutoFilter Field:=11, Criteria1:=material
            Sheets("ParameterQuery").Select
            ActiveSheet.Range("$A$25:$V$63590").AutoFilter Field:=5, Criteria1:=material
            Sheets("Spend+ UPI+Parameters").Select
            ActiveSheet.Range("$A$36:$CD$12444").AutoFilter Field:=11, Criteria1:=material
 
            'si jamais ma valeur, qui est forcément un entier, apparait dans au moins un tableau
            If IsNumeric(Sheets("DATA").Range("K12416").End(xlUp).Value) Or IsNumeric(Sheets("ParameterQuery").Range("E63592").End(xlUp).Value) Or IsNumeric(Sheets("Spend+ UPI+Parameters").Range("K12446").End(xlUp).Value) Then
 
            'la technique que j'ai utilisé ci dessus est la suivante: je me place sous le tableau, ensuite je regarde
            'quelle est la première cellule écrite en remontant, et si je tombe sur un nombre c'est qu'il y a au moins
            'une ligne, si je tombe sur un string, c'est qu'il n'y a rien et que je suis sur l'intitulé des colonnes
 
            'alors je mets rien
            Sheets("avancement").Range("E" & i).Value = ""
 
            'sinon (si elle n'y est pas) je mets rien du tout
            Else
                Sheets("avancement").Range("E" & i).Value = "Rien du tout"
 
            End If
 
        End If
 
    Next i
 
 
End Sub
Le problème c'est que ça marche de temps en temps, mais pas tout le temps ! En fait ça marche pour le premier et c'est tout...
J'ai essayé de changer le test (j'ai fait un test sur la valeur de la ligne lorsque l'on remonte), j'ai aussi essayé de rajouter une boucle avec un timer pour laisser du temps entre la fabrication du test et les tables, mais rien n'y fait ....
Si vous avez une idée... je suis preneur !

I need your help !