Parcourir untableau excel boucle for

ed'14 -  
 amigo -
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'
Configuration: Windows Vista
Internet Explorer 7.0

1 réponse

  1. amigo
     
    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