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 :
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 :".
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
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
Partager