Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

probleme vba : l'indice n'appartient pas à la selection

perdinch

XLDnaute Occasionnel
Bonsoir,

pouvez vous m'aidez à résoudre le problème de de code qui renvoie ce message d'erreur: l'indice n'appartient pas à la sélection
merci
Dans un classeur,avec une feuille nommée "mafeuille"

Sub essai()
Dim test() As String
Sheets("mafeuille").Activate
For j = 1 To Sheets("mafeuille").Range("A2").End(xlDown).Row
For i = 1 To Sheets("mafeuille").Range("A2").End(xlDown).Row
If Cells(i, 15) = 1 Then
test(j) = Sheets("mafeuille").Cells(i, 1).Value
MsgBox test(j)
End If

Next i
Next j

End Sub
 

tashiqi

XLDnaute Occasionnel
Re : probleme vba : l'indice n'appartient pas à la selection

Bonjour
1°/Quand tu utilises une variable tableau (test()), il faut préciser sa dimension.
2°/Pour devancer ton prochain problème, quand tu emboîtes deux boucles for, tu vas non pas avoir
j, i
0, 0
1, 1
2, 2
...
N,N
mais
j, i
0, 0
1, 0
2, 0
...
N,0
N,1
N,2
...
N,N
Il faut donc remanier ta boucle.
Avec les deux modifs
Code:
Sub essai()
Dim test() As String
Sheets("mafeuille").Activate
i = 0
For j = 1 To Sheets("mafeuille").Range("A2").End(xlDown).Row
Redim Preserve test(j - 1)
i = i + 1
If Cells(i, 15) = 1 Then
test(j - 1) = Sheets("mafeuille").Cells(i, 1).Value
MsgBox test(j)
End If


Next j

End Sub

(PS : le j-1 vient du fait qu'une variable tableau commence à 0)

Je te laisse tester et revenir dire si ça marche
Bonne chance
 

ChTi160

XLDnaute Barbatruc
Re : probleme vba : l'indice n'appartient pas à la selection

Bonjour
Bonjour le fil
Bonjour le forum
voila ce que j'ai testé (pourquoi deux boucles ????)

VB:
Sub essai()
Dim test() As String
Dim x As Integer
Dim i As Integer
Dim mafeuille As Worksheet
x = 0
Set mafeuille = Worksheets("Feuil1")
   With mafeuille
      For i = 1 To .Range("A2").End(xlDown).Row
         
                  If .Cells(i, 2) = 1 Then
                  ReDim Preserve test(x)
                        test(x) = .Cells(i, 1).Value
                        MsgBox test(x)
                        x = x + 1
                  End If
      Next i
      End With
End Sub
apas de fichier pour tester !!!!!
Bonne fin de journée
Amicalement
Jean Marie
 

Discussions similaires

Réponses
11
Affichages
335
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…