Parcourir untableau excel boucle for

Fermé
ed'14 - 6 févr. 2008 à 22:07
 amigo - 6 févr. 2008 à 22:33
Bonjour,
J'ai un petit problème: je cherche à parcourir un tableau excel en comparant les valeurs des cellules rencontrées par rapport aux cellules d'une autre feuille. Je pensais donc utiliser une boucle for pour adresser les cellules à analyser. Mais il me met des erreurs d'execution '9'...

l'idée est que si la date de la cellules trouvée lorsque toutes les conditions en amont sont vérifiées est inférieure à la date précédente, elle prend sa place (je ne suis pas sur que la comparaison entre dates fonctionne, mais je n'en suis pas à régler ce problème); il existe peut-être un autre moyen plus rapide de tester si deux plages de cellules sont identiques???
voici ma macro, dans son état actuel:

Sub date_debourrement()
For ifinal = 2 To 601 'lignes du tableau d'arrivée
For iinitial = 1 To 9500 'lignes du tableau source
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 1).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 1).Value Then
End If
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(initial, 2).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 2).Value Then
End If
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 3).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 3).Value Then
End If
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 4).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 4).Value Then
End If
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 5).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 5).Value Then
Date = Workbooks("bourgeon.xls").Worksheets("valeurs au 3.02.2008").Range(iinitial, 6).Value
End If
If Date <= Workbooks("bourgeon.xls").Worksheets("suivi individuel").Cells(ifinal, 6).Value Then Workbooks("bourgeon.xls").Worksheets("suivi individuel").Cells(ifinal, 6).Value = Date
Next iinitial
Next ifinal
End Sub


Merci d'avance de votre aide.
Ed'
A voir également:

1 réponse

Bonjour,

Le prolème vient de l'inbrication des conditions IF.. THEN.. END IF

Voici la bonne sintaxe:

Sub date_debourrement()
For ifinal = 2 To 601 'lignes du tableau d'arrivée
For iinitial = 1 To 9500 'lignes du tableau source
'Condition1
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 1).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 1).Value Then
'Condition2
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(initial, 2).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 2).Value Then
'Condition3
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 3).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 3).Value Then
'Condition4
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 4).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 4).Value Then
'Condition5
If Workbooks("bourgeon.xls").Worksheet("valeurs au 3.02.2008").Cells(iinitial, 5).Value = Workbooks("bourgeon.xls").Worksheet("suivi individuel").Cells(ifinal, 5).Value Then
Date = Workbooks("bourgeon.xls").Worksheets("valeurs au 3.02.2008").Range(iinitial, 6).Value
End If ''Condition5
End If ''Condition4
End If ''Condition3
End If 'Condition2
End If ''Condition1
If Date <= Workbooks("bourgeon.xls").Worksheets("suivi individuel").Cells(ifinal, 6).Value Then Workbooks("bourgeon.xls").Worksheets("suivi individuel").Cells(ifinal, 6).Value = Date
Next iinitial
Next ifinal
End Sub
0