Parcourir untableau excel boucle for
ed'14
-
amigo -
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'
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:
- Parcourir untableau excel boucle for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
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
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