Rechercher : dans
Par :

Comparer deux tableaux

Dernière réponse le 11 nov 2009 à 09:44:35 manautop, le 10 nov 2009 à 11:55:11 
 Signaler ce message aux modérateurs

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.xl­s

merci d avance


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

Configuration: Windows XP Internet Explorer 7.0

1

manautop, le 10 nov 2009 à 14:03:29

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

Répondre à manautop

2

manautop, le 10 nov 2009 à 14:35:43

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

Répondre à manautop

3

 manautop, le 11 nov 2009 à 09:44:35

Quelqu un pour me dire comment mettre les references apparaissant une seule fois en fin de liste ?

Répondre à manautop
Collection CommentÇaMarche.net