Bonjour à tous,

En préambule, je précise que je n'ai pas de problème à résoudre, j'ai une solution qui fonctionne, mais j'aimerais soumettre le problème suivant à votre sagacité.

Dans un code que je viens d'écrire j'avais une première version qui lit le contenu d'une feuille avec une boucle For Each (ligne). Ma feuille de test contient 8 lignes. L'objectif est de lire 3 critères par ligne pour déterminer la nature de la ligne. La boucle For Each lit bien les données jusqu'à la ligne 4 puis ne trouve plus les informations. J'ai modifié mon code pour faire un For avec un compteur et là tout se passe bien. Ci-dessous les deux codes de test et le résultat de la console.

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
 
        Set wbkNewedge = Workbooks.Open(strFileName)
        Set rgeDataNewedge = wbkNewedge.Sheets(1).Cells(1, 1).CurrentRegion
 
        Debug.Print "Adresse de la plage = " & rgeDataNewedge.Address
 
 
        ' NOUVEAU 06/11/2017
        ' A chaque ligne du fichier NE
        ' on regarde si c'est une transaction, une position ou une valo
        ' on écrit dans la colonne 2 le résultat
 
        Debug.Print "======== Boucle For Compteur Next ======="
        For i = 1 To rgeDataNewedge.Rows.Count
            Debug.Print "Ligne : " & i & " -> " & rgeDataNewedge.Cells(i, 2).Value & " " & rgeDataNewedge.Cells(i, 4).Value & " " & rgeDataNewedge.Cells(i, 117).Value
        Next i
        Debug.Print vbCrLf
        Debug.Print "======== Boucle For Each Next ==========="
        For Each rgeRow In rgeDataNewedge.Rows
            Debug.Print "Ligne : " & rgeRow.Row & " -> " & rgeRow.Cells(rgeRow.Row, 2) & " " & rgeRow.Cells(rgeRow.Row, 4) & " " & rgeRow.Cells(rgeRow.Row, 117)
'            If ValueOfType(strType, rgeRow) Then
'                rgeRow.Cells(rgeRow.Row, 2).Value = strType
'            End If
        Next rgeRow
Adresse de la plage = $A$1:$DN$8
======== Boucle For Compteur Next =======
Ligne : 1 -> Message Type Lifecycle Event Eulite Level
Ligne : 2 -> Trade State New T
Ligne : 3 -> Trade State New T
Ligne : 4 -> Trade State New T
Ligne : 5 -> Trade State New T
Ligne : 6 -> Trade State New T
Ligne : 7 -> Trade State New T
Ligne : 8 -> Trade State Modify P


======== Boucle For Each Next ===========
Ligne : 1 -> Message Type Lifecycle Event Eulite Level
Ligne : 2 -> Trade State New T
Ligne : 3 -> Trade State New T
Ligne : 4 -> Trade State New T
Ligne : 5 ->
Ligne : 6 ->
Ligne : 7 ->
Ligne : 8 ->

C'est le grand mystère mystérieux de la semaine... Quelqu'un aurait il une idée de ce qui cloche ? Par avance, je précise que nous avons passé le classeur source au crible et que les données semblent absolument kasher...

Merci par avance pour votre temps et vos réponses.

Guillaume.