Comparaison de matrice en VBA

mimosifa Messages postés 1 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 5 juillet 2005 - 5 juil. 2005 à 16:11
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 6 juil. 2005 à 19:44
Bonjour à Tous,
Je dois faire une comparaison entre deux tableaux à deux dimensions et afficher les differences dans une feuille Excel. Est ce que quelqu'un pourrait m'aider pour le code en VBA ?
Merci

3 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
6 juil. 2005 à 05:46
Tu travailles sous quelle version de Excel ? Parles-tu de variable tableaux ou de tableaux Excels ???



Pour des variables tableaux je ne connais qu'un seul moyen qui, je
pense, n'est pas le plus efficace!!! Je vais quand même te le donner
parce qu'on sait jamais, ça peut toujours te servir!!!



Le seul moyen est de parcourir, via 2 boucles imbriquées, tes tableaux
et d'afficher les différences (je parles donc ici de soustractions et
toi ???) dans une feuille Excel. Pour se faire il vaut mieux utiliser
Cells(x,y) à Range("A1") pour une question de comodité! De plus, on
considérera que tes tableaux commencent à l'index "1" et non "0" comme
théoriquement. Si ce n'est pas le cas, à toi de corriger le tire dans
la déclaration des FOR et dans le ciblage des cellules !!!




tblPremier 'Ton 1er tableau


tblSecond 'Ton 2ème tableau




Dim varTourX As Long 'Ou Integer ou ce que tu veux!!!


Dim varTourY As Long





nbrY = UBound(tblPremier) 'ou (tblSecond) qu'importe puisqu'ils doivent avoir la même taille!!!


nbrX = UBound(idem




Sinon t'a qu'a faire un test du style :

If Ubound(tblPremier) > Ubound(tblSecond) Then

nbrX = Ubound(tblPremier)


nbrY = Ubound(tblPremier)


Else


nbrX = Ubound(tblSecond)


nbrY = Ubound(tbl
Second
)



End If



C'est au choix!!!





For varTourY = 1 To nbrY


For varTourX = 1 To nbrX

ThisWorkbook.Worksheets(" Feuil1 ").Cells(varTourX, varTourY).Value = tblPremier(varTourX, varTourY) -
tblSecond(varTourX, varTourY)


Next varTourX


Next varTourY




Ceci répond-il à ta question



Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée". )
0
cs_mimos Messages postés 1 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 6 juillet 2005
6 juil. 2005 à 11:15
Merci ScSami pour ta reponse.
En fait, je dois comparaer deux à deux les tables de deux bases de données, et afficher les differences (les lignes qui ne sont pas les mêmes dans les deux bases)
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
6 juil. 2005 à 19:44
Ah, désolé... Alors mon code ne correspond pas!



Refait un post sur le forum en essyant d'être plus clair dès le début
et en n'ouvliant pas de préciser avec quoi tu travailles ainsi que la
version (VBA 2003, VB6, ...).



Je peux pas t'aider car moi et les bases de données ça fait... 32 bits



Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée". )
0
Rejoignez-nous