Comparaison de valeurs et utilisation de variables
Bonjour à tous,
J'ai cherché sur le ouaib, mais je n'ai malheureusement rien trouvé qui répondait à mon problème ... ou bien je n'ai pas tout compris, ce qui est aussi possible ! Alors je pose mon problème ici.
J'ai deux tableaux d'une longueur variable selon les requêtes qui les alimentent.
Le 1er (tableau A) ne comporte qu'une colonne avec des adresses mail.
Le 2ème (tableau B) comporte plusieurs colonnes dont la C qui contient aussi des adresses mail.
Dans ma macro, je souhaite :
- d'une part déclarer des variables pour simplifier les formules de comparaison
- d'autre part et ensuite prendre la première adresse du tableau A, voir si elle existe dans le tableau B et vider toutes les cellules qui comportent cette adresse, et ainsi de suite tant qu'il y a des cellules remplies tant dans le tableau A que dans le B.
Pour cela j'ai créé deux boucles imbriquées Do ... Loop Until (voir le simili-code ci-dessous dans lequel je voudrai simplifier les formules de comparaison par l'utilisation de variables, et surtout les faire fonctionner !).
-------------------------------------------------------------------------
Code:
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
| ' Variables de comptage pour la boucle
Dim i As Integer ' Variable de comptage pour le tableau A
Dim j As Integer ' Variable de comptage pour le tableau B
' Compteur de ligne à partir de la 2ème ligne (1ère ligne = titre de colonne)
i = 2 ' variable n° de ligne du tableau A
j = 2 ' variable n° de ligne du tableau B
' Lancement du calcul en boucle
' La colonne A du tableau B (Sheets(1)) contient les adresses mail.
' Les boucles tournent tant qu'il y a une valeur dans la colonne A des deux tableaux.
'
' Début des boucles
Do
Do
' Si la cellule Range("A" & i), 4ème feuille, tableau A n'est pas vide,
' alors l'adresse mail (colonne C du tableau B) est comparée au contenu du tableau A
If ligne(i), 4ème feuille, tableau A visible And valeur de Range("A" & i), 4ème feuille, tableau A <> "" And valeur de Range("A" & i), 4ème feuille, tableau A = valeur de Range("C" & j), 1ère feuille, tableau B Then
valeur de Range("C" & j), 1ère feuille, tableau B = ""
Else
valeur de Range("C" & j), 1ère feuille, tableau B = valeur de Range("C" & j), 1ère feuille, tableau B
End If
' On passe à la ligne suivante du tableau B
j = j + 1
' Boucle tant que la cellule Range("A" & j), 1ère feuille, tableau B n'est pas vide
Loop Until valeur de Range("A" & j), 1ère feuille, tableau B = ""
' FIN DE LA 1ère BOUCLE
' On passe à la ligne suivante du tableau A
' et on reprend l'analyse du fichier à traiter avec la nouvelle valeur du tableau A
' ou l'analyse s'arrête s'il n'y a plus de valeur dans la cellule Range("A" & i)
i = i + 1
' Boucle tant que la cellule Range("A" & i), 4ème feuille, tableau A n'est pas vide
Loop Until valeur de Range("A" & i), 4ème feuille, tableau A = ""
' FIN DE LA 2ème BOUCLE |
-------------------------------------------------------------------------
Mais pour l'instant, je n'arrive pas à la faire fonctionner car je n'arrive pas à créer, voire à utiliser les variables créées pour essayer de simplifier le code.
Est-ce que l'un d'entre-vous peut me sortir de cette ornière ? Merci d'avance.
Cordialement
Bruno
Excel 2003
Windows XP pro