Bonjour,

Je suis actuellement en train de développer un outils pour Excel permettant de mettre à jour automatique une liste de liens hypertexts en les comparant à une base de données existante.
Arrive donc le moment où je dois comparer mes deux tableaux (attention, un tableau au sens array, pas en temps que feuille Excel) et pour le faire, j'utilise ce morceau de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub ComparaisonTableau()
 
Dim BdD() As String
Dim TaC() As String
Dim InString() As String
 
Dim i As Integer
 
'Définition de la taille des tableaux
 
ReDim BdD(10)
ReDim TaC(10)
ReDim InString(10)
 
'Définition du tableau post scan
 
TaC(1) = "paul"
TaC(2) = "dany"
TaC(3) = "leandro"
TaC(4) = "simon"
TaC(5) = "hubert"
TaC(6) = "roberto"
TaC(7) = "baptiste"
 
'definition du tableau de la base de donnés
 
BdD(6) = "paul"
BdD(1) = "leandro"
BdD(2) = "baptiste"
BdD(3) = "hubert"
BdD(4) = "simon"
BdD(5) = "dany"
 
'boucle pour tester tous les membres du tableau postscan
For i = 0 To UBound(TaC)
 
    InString = Filter(BdD, TaC(i), True)
 
    If (UBound(InString) <> 0) Then
        MsgBox ("Ceci n'existe pas dans la base de données : " & TaC(i))
        'Debug.Print InString(i)
    End If
 
 
 
Next i
 
End Sub
Mais là, j'ai un souci. Quand je compile et je que fais tourner le code, je devrais n'avoir qu'une fenêtre qui s'ouvre avec écrit dedans "Ceci n'existe pas dans la base de données : roberto" or j'ai en plus 4 fenêtre qui s'ouvre en cascade (une avant le bon message et 3 après) avec juste écrit "Ceci n'existe pas dans la base de données :".

J'ai essayé d'affiné la définition de la taille de mes tableaux, mais même avec TaC comprennant que 7 variables, j'ai une fenêtre qui s'ouvre quand même avant la bonne ( les 3 après ne s'affiche plus, ce qui est logique). C'est n'est pas un réel problème en soit, sauf que je vais avoir un très grand nombre de variables pour mes tableaux TaC et BdD, il n'est donc pas envisageable d'avoir à appuyer une bonne centaine de fois sur Ok à chaque fois qu'on lance la routine.
Voilà donc ma première question, quelqu'un a-t-il une solution pour régler ce problème.

Pour la deuxième question, pense avoir la réponse mais j'espère me tromper, est-il possible de garder mes tableaux en dynamique (donc sans avoir à initialiser le nombre de variables à l'intérieur) car je vais avoir un grand nombre de données, et ce nombres est variable ?

Merci d'avance pour l'aider qu'il est possible d'apporter à un novice du VBA comme moi.

Cordialement,
Truc machin chose