Erreur "i n'appartient pas à la selection "
SalmaZ
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
SalmaZ Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
SalmaZ Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis débutante en vba et je n'arrive pas à résoudre ce problème. On me dit que l'indice i n'appartient pas à la séléction.
Merci.
Sub compareSheets()
Application.ScreenUpdating = False
Dim i As Integer
Dim j As Integer
Dim cmp As Integer
Dim nbLignes1 As Integer
Dim nbLignes2 As Integer
Worksheets("Données CSV").Cells.Interior.Pattern = xlNone
nbLignes1 = Worksheets("Données CSV").Range("A65536").End(xlUp).Row
nbLignes2 = Worksheets("Données Apollo").Range("A65536").End(xlUp).Row
For i = 1 To nbLignes1
cmp = 0
For j = 1 To nbLignes2
If Worksheets("Données CSV").Range("E" & i + 2).Value = Worksheets("Données Apollo").Range("A" & j + 8).Value Then
cmp = cmp + 1
End If
Next j
If cmp = 0 Then
Worksheets("Données CSV").Rows(i).Interior.ColorIndex = 3
End If
Next i
Application.ScreenUpdating = True
End Sub
Merci.
Sub compareSheets()
Application.ScreenUpdating = False
Dim i As Integer
Dim j As Integer
Dim cmp As Integer
Dim nbLignes1 As Integer
Dim nbLignes2 As Integer
Worksheets("Données CSV").Cells.Interior.Pattern = xlNone
nbLignes1 = Worksheets("Données CSV").Range("A65536").End(xlUp).Row
nbLignes2 = Worksheets("Données Apollo").Range("A65536").End(xlUp).Row
For i = 1 To nbLignes1
cmp = 0
For j = 1 To nbLignes2
If Worksheets("Données CSV").Range("E" & i + 2).Value = Worksheets("Données Apollo").Range("A" & j + 8).Value Then
cmp = cmp + 1
End If
Next j
If cmp = 0 Then
Worksheets("Données CSV").Rows(i).Interior.ColorIndex = 3
End If
Next i
Application.ScreenUpdating = True
End Sub
A voir également:
- Erreur "i n'appartient pas à la selection "
- A qui appartient ce numéro - Guide
- I deux point - Forum Windows
- Bouton on off o i - Forum Word
- I love pdf avis ✓ - Forum PDF
- O ou i pour allumer - Forum Facebook
2 réponses
Bonjour,
Je dirai normal ...
I va de 1 à 65536 or dans votre test vous faites i+2 donc 65538 qui ne doit probablement pas exister.
Question :
êtes vous obligée de parcourir l'ensemble du fichier Excel ?
Ceci :
If Worksheets("Données CSV").Range("E" & i + 2).Value = Worksheets("Données Apollo").Range("A" & j + 8).Value Then
peut être remplacé par ceci:
If Worksheets("Données CSV").cells(5,i+2) = Worksheets("Données Apollo").cells(1,j+8) Then
Personnellement je prefère utiliser Cells que Range, cela permet une navigation en ligne et en colonne plus facilement.
Pour que votre programme marche sans soucis vous pouvez ajouter :
"if(i +2 <= 65536) then "
juste avant la 2eme boucle for.
Si vous avez d'autre question ne pas hésiter.
Je dirai normal ...
I va de 1 à 65536 or dans votre test vous faites i+2 donc 65538 qui ne doit probablement pas exister.
Question :
êtes vous obligée de parcourir l'ensemble du fichier Excel ?
Ceci :
If Worksheets("Données CSV").Range("E" & i + 2).Value = Worksheets("Données Apollo").Range("A" & j + 8).Value Then
peut être remplacé par ceci:
If Worksheets("Données CSV").cells(5,i+2) = Worksheets("Données Apollo").cells(1,j+8) Then
Personnellement je prefère utiliser Cells que Range, cela permet une navigation en ligne et en colonne plus facilement.
Pour que votre programme marche sans soucis vous pouvez ajouter :
"if(i +2 <= 65536) then "
juste avant la 2eme boucle for.
Si vous avez d'autre question ne pas hésiter.
Merci beaucoup scinarf mais le problème ne venait pas de là finalement. Excel ne reconnaisait pas la Worksheets("Données Apollo"). J'ai du passer par :
Set principal = ThisWorkbook
principal.Sheets(2).Activate
Set principal = ThisWorkbook
principal.Sheets(2).Activate