Re : comparer 2 BDD question sur procédure
Salut Blafi
bonjour le Forum
je vais tenter de répondre à tes interrogations à mon niveau lol
1/ à la ligne "set MaPlage1=Range([A1], [A1].end(xldown))" il s'agit de la définition d'une variable, mais s'agit-il d'une variable tableau à plusieurs dimensions ?
MaPlage1 définie une variable qui représente une plage de cellules
dans l'exemple si dessus équivalent à
set
MaPlage1= Range("A1:A" & Range("A1").end(xldown).Row)
tu obtiens ainsi une plage( X lignes et une seule Colonne) à une (seule) dimension tirée de la colonne A
pour obtenir une plage à deux dimensions si j'ai compris il faudrait par exemple pour obtenir une plage de X lignes et Trois colonnes A,B,C
set
MaPlage1= Range("A1:
C" & Range("A1").end(xldown).Row)
pour ce qui est des crochets c'est une façon plus consise d'écrire mais qui revient au même ,peut être un peu moins évidente pour la lecture de la macro
pour ce qui est :
3/dans les lignes suivantes (à l'intérieur des boucles) l'expression "MaPlage1(l1,1)" fait-elle référence à la cellule (l1,1) de MaPlage c'est à dire à la cellule de la ligne l1 et de la colonne 1?. En d'autres termes, si je mettais (l1,2) est-ce que je ferais référence à la cellule de MaPlage située en ligne l1 et en colonne 2 ?
lorsque tu définies une plage les opération que tu effectues ensuite sur cette plage font toujours référence au cellules de cette plage et non plus à ta feuille excel d'ou est tirée ta plage
l1 est une variable qui aurait pu s'appeler maligne donc si tu passes en revue les lignes de ta plage tu auras cellule (maligne,1) qui représentera la cellule située en ligne Une première colonne , cellule (maligne,2) représentera la cellule située en ligne Une deuxième colonne etc à condition d'avoir définie Maplage1 comme ayant plusieurs colonnes
car avec l'exemple
set
MaPlage1= Range("A1:A" & Range("A1").end(xldown).Row)
tu ne peux faire varier que les lignes,(sinon bug) ta plage n'ayant qu'une colonne arff j'espère me faire comprendre
pour comparer deux colonne on peut parfois utiliser une variable qui reprend les deux colonnes
ex
Dim MyString As String 'définition de la variable
MyString comme étant une chaine de caractères
on donne comme valeur à cette variable la concaténation des deux premieres colonnes de la ligne considérée
exemple
j'ai
Durand en colonne une ,ligne
maligne et
Pierre en Colonne deux ,ligne
maligne de
MaPlage1
MyString=Maplage1(
maligne,1)&" "&Maplage1( maligne,2)
cela donnera
MyString=Durand
&" "& pierre
si dans l'autre boucle tu as aussi une variable
exemple
MyString2=Maplage2(
maligne2,1)&" "&Maplage2( maligne2,2)
cela donnera par exemple
MyString2=Durand
&" "& Louis
puis on compare ces deux chaines de caractères
si MyString =MyString2 alors
en espèrant t'avoir aidé dans la compréhension de cette procèdure
si tu le veux, mets nous un exemple de ce que tu as on pourras peut être t'aider un peu plus ( fichier moins de 50k (.Zip,.xls) et sans données confidentielles)