Ajout dans un tableau à condition que la valeur n'existe pas

Auzingueur

XLDnaute Junior
Salut à tous,

Je viens aujourd'hui vous présenter un nouveau problème d'utilisation de tableau.
J'ai créé le code suivant dans le but de récupérer mes arrangements (famille de produits) dans un tableau :

Code:
Dim i As Integer 'permet de se déplacer dans la feuille données
Dim tabArrang() As Variant 'Tableau pour récupérer la liste des arrangements utilisants l'ABP
Dim arrang As String 'variable pour récupérer les arrangements qui nous interessent
Dim j As Integer 'permet de remplir le tableau

j = 0
For i = 4 To Sheets("Donnees").[A65536].End(3).Row
    If Sheets("Donnees").Range("G" & i) = 1 Then
        arrang = Sheets("Donnees").Range("F" & i)
        If IsError(Application.Match(arrang, tabArrang(j), 0)) Then 'Probleme d'utilisation : "L'indice n'appartient pas a la sélection"
            tabArrang(j) = arrang
            Sheets("test").Range("A" & j) = arrang
            j = j + 1
        End If
    End If
Next

Le code fonctionne, mais ayant plusieurs produits répondants à ma condition, je me retrouve avec plein de doublons et c'est pourquoi j'ai rajouté la ligne "If IsError....", la fonction Match étant supposée me retourner #N/A si il ne trouve pas ma valeur dans le tableau, cela m'aurai permis de ne rentrer mes arrangements qu'en un seul exemplaire dans le tableau.

Manque de bol, "l'indice n'appartient pas a la sélection", et je ne comprend pas trop pourquoi, du coup je bloque sur ce problème qui semble banal, mais je n'ai pas trouvé de solution pour le moment :/

Si quelqu'un peut m'apporter son aide je lui en serai reconnaissant!

Merci
Auzingueur
 

Auzingueur

XLDnaute Junior
Re : Ajout dans un tableau à condition que la valeur n'existe pas

Bonjour pierrejean,
De nouveau tu me viens en aide, merci.

tabArrang est ce que j'avais fais initialement, mais ce n'est pas ça, j'ai toujours la même erreur :/

Indication suplémentaire : L'idéal pour moi serai de faire le test sur la totalité des valeurs de mon tableau, mais les produits étant classés par arrangement dans ma feuille "données" je pense que le simple fait de tester le dernier arrangement est suffisant.
 
Dernière modification par un modérateur:

Auzingueur

XLDnaute Junior
Re : Ajout dans un tableau à condition que la valeur n'existe pas

Bonjour à tous, je me permet de relancer le forum sur ce problème que je n'ai toujours pas résolu :/

Merci!


EDIT : J'ai un peu avancé : j'ai enlevé l'erreur en redimensionnant mon tableau avant ma boucle FOR :

Code:
ReDim tabArrang(Sheets("Donnees").[A65536].End(3).Row)

mais je ne suis pas tellement satisfait, puisque je perd l'utilité d'avoir un tableau dynamique et le problème de doublons n'est toujours pas résolu, je les ai toujours :(
 
Dernière modification par un modérateur:

Auzingueur

XLDnaute Junior
Re : Ajout dans un tableau à condition que la valeur n'existe pas

Bon, ne vous cassez pas la tête, j'ai trouvé une solution qui fera l'affaire, voici le code pour les interessés :

Code:
Dim i As Integer 'permet de se déplacer dans la feuille données
Dim tabArrang() As Variant 'Tableau pour récupérer la liste des arrangements utilisants l'ABP
Dim arrang As String 'variable pour récupérer les arrangements qui nous interessent
Dim j As Integer 'permet de remplir le tableau


ReDim tabArrang(Sheets("Donnees").[A65536].End(3).Row)
j = 0
For i = 4 To Sheets("Donnees").[A65536].End(3).Row
    If Sheets("Donnees").Range("G" & i) = 1 Then
        arrang = Sheets("Donnees").Range("F" & i)
        If j = 0 Then
            tabArrang(j) = arrang
            Sheets("test").Range("A" & j + 1) = tabArrang(j)
            j = j + 1
        End If
        If IsError(Application.Match(arrang, tabArrang, 0)) And j <> 0 Then 'Probleme d'utilisation : "L'indice n'appartient pas a la sélection"
            tabArrang(j) = arrang
            Sheets("test").Range("A" & j + 1) = tabArrang(j)
            j = j + 1
        End If
    End If
Next

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 062
Membres
103 447
dernier inscrit
DamD