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.
Adresse de la plage = $A$1:$DN$8
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
======== 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.
Partager