Salut tout le monde,


J'ai un comportement bizarre que je n'explique pas et là, je sèche complètement...

Peut-être auriez vous un regard neuf, ou peut-être même qu'en parlant...

Mon objectif, est le suivant :
- lister les valeurs d'une colonne donnée, dans le fichier Excel courant
- pour chacune des valeurs, chercher sa présence dans un autre fichier Excel...

Voici mon code (je l'ai manipulé et trituré dans tous les sens avant de venir vous faire c...)

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
 
        Set cWB = ThisWorkbook
 
        With oExcel
            .Visible = True
            Set WB = .Workbooks.Open(sFile)
            Set WS = WB.Worksheets(CONST_DATA_SHEET_NAME)
 
            Set cWS = cWB.Worksheets(CONST_DATA_SHEET_NAME)
            With cWS
                .Select
                Set cRNG = .Range(.Cells(CONST_VAR_IDX_START_ROW, CONST_VAR_IDX_COLUMN), _
                                  .Cells(CONST_VAR_IDX_START_ROW, CONST_VAR_IDX_COLUMN).End(xlDown))
                           '.Cells(.Cells(Rows.Count, "B").End(xlDown).Row, 2))
 
                With cRNG
                    For Each cCursor In cRNG
                        'cWB.Activate
                        Debug.Print cCursor.Value
 
                        'WB.Activate
                        With WB
                            .Activate
                            With WS
                                .Select
                                Set RNG = .Range(.Cells(CONST_VAR_IDX_START_ROW, CONST_VAR_IDX_COLUMN), _
                                                 .Cells(CONST_VAR_IDX_START_ROW, CONST_VAR_IDX_COLUMN).End(xlDown))
                                RNG.Select
 
                                'Set myCell = Selection.Find(What:=cCursor.Text, After:=ActiveCell, LookIn:=xlFormulas, _
                                             LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlDown, _
                                             MatchCase:=False, SearchFormat:=False)
                                Set myCell = Selection.Find(What:=cCursor.Text, After:=ActiveCell)
 
                                If myCell Is Nothing Then
                                    'do nothing...
                                Else
                                    Debug.Print myCell.Row
                                End If
 
                                Set RNG = Nothing
                                Set myCell = Nothing
                            End With
                        End With
                    Next
                End With
            End With
 
            'WB.Activate
            'closeExcel False
            '.Quit
        End With
Et le comportement observé :
- aléatoire...
- le find me ressort soit, la première ligne, soit la deuxième ligne mais rien d'autres... (et pourtant, il y en a...)

le premier Debug.Print cCursor.Value me liste bien les différentes valeurs de la première liste

le deuxième Debug.Print myCell.Row c'est la fête!

J'ai changé les différents paramétrages au niveau du find, rien n'a changé, ce n'est ni un problème de sélection, ni un problème d'activation de workbook...

Bref, je sèche complètement

Merci d'avance pour vos retours