Rechercher : dans
Par :

Parcourir untableau excel boucle for

Dernière réponse le 6 fév 2008 à 22:33:24 ed'14, le 6 fév 2008 à 22:07:37 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « parcourir untableau excel boucle for » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...

1

 amigo, le 6 fév 2008 à 22:33:24

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

Répondre à amigo