Comparer deux tableaux

manautop Messages postés 152 Statut Membre -  
manautop Messages postés 152 Statut Membre -
Bonjour,
j ai un probleme quie je n arrive pas a regler
donc voila j ai deux tableaux un 2008 et un 2009 avec reference, pricx des produits etc,
je voudrais creer un troisieme tableau sur une autre page ( ou pas ) qui alligne les produit en fonction de leur reference cela vous parait il possible

http://www.cijoint.fr/cjlink.php?file=cj200911/cij8GaXZUc.xls

merci d avance

ps : vu que je suis presse je poste d avance lol et je cherche en mm temps une solution

3 réponses

manautop Messages postés 152 Statut Membre 3
 
re coucou

alors j arrive a ca

Sub testcompare()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, i1, i2, i3, k, kk, z
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
Set ws3 = Worksheets(3)
i1 = ws1.Range("A1").End("4").Row
i2 = ws2.Range("A1").End("4").Row
With ws1
For k = 1 To i1
z = .Range("A" & k)
For kk = 1 To i2
If z = ws2.Range("A" & kk) Then
ws3.Range("A" & i3 + 1) = z
ws3.Range("B" & i3 + 1) = .Range("B" & k)
ws3.Range("C" & i3 + 1) = .Range("C" & k)
ws3.Range("D" & i3 + 1) = .Range("D" & k)
ws3.Range("E" & i3 + 1) = .Range("E" & k)
ws3.Range("F" & i3 + 1) = .Range("F" & k)
ws3.Range("G" & i3 + 1) = ws2.Range("B" & kk)
ws3.Range("H" & i3 + 1) = ws2.Range("C" & kk)
ws3.Range("I" & i3 + 1) = ws2.Range("D" & kk)
ws3.Range("J" & i3 + 1) = ws2.Range("E" & kk)
ws3.Range("K" & i3 + 1) = ws2.Range("F" & kk)
i3 = i3 + 1
End If
Next
Next
End With
End Sub

mais le probeme c est que ca me donne que 4 reponses
0
manautop Messages postés 152 Statut Membre 3
 
alors j ai trouve la solution qui consiste a separer le tout en trois page
page 1 tableau 1
page 2 tableau 2
page 3 tablea qui met sur une seule ligne les caracteristiques d une mm referenece presente en tableau un et deux
mais j ai un probleme pour les reference n existant qu une fois ( soit sur le tableau 1 soit sur le tableau deux) qui n apparaissent pas
mais y aurait il un moyen d accelerer l excution de la macro

Sub testcompare()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, i1, i2, i3, k, kk, z
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
Set ws3 = Worksheets(3)
i1 = ws1.Range("A1").End("4").Row
i2 = ws2.Range("A1").End("4").Row
With ws1
For k = 1 To 2029
z = .Range("A" & k)
For kk = 1 To 2049

If z = ws2.Range("A" & kk) Then
ws3.Range("A" & i3 + 1) = z
ws3.Range("B" & i3 + 1) = .Range("B" & k)
ws3.Range("C" & i3 + 1) = .Range("C" & k)
ws3.Range("D" & i3 + 1) = .Range("D" & k)
ws3.Range("E" & i3 + 1) = .Range("E" & k)
ws3.Range("F" & i3 + 1) = .Range("F" & k)
ws3.Range("G" & i3 + 1) = ws2.Range("B" & kk)
ws3.Range("H" & i3 + 1) = ws2.Range("C" & kk)
ws3.Range("I" & i3 + 1) = ws2.Range("D" & kk)
ws3.Range("J" & i3 + 1) = ws2.Range("E" & kk)
ws3.Range("K" & i3 + 1) = ws2.Range("F" & kk)
i3 = i3 + 1
End If
Next
Next
End With
End Sub
0
manautop Messages postés 152 Statut Membre 3
 
quelqu un pour me dire comment mettre les references apparaissant une seule fois en fin de liste ?
0