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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| Sub trier()
Dim Tab_Sauv, Tab_Retour
Dim iRow As Integer
Dim iExact As Integer
'On initialise les 2 Tableaux
'Ici il faut partir de A1 jusqu'a J..
Tab_Sauv = Feuil4.Range("A1", Feuil4.Cells(Rows.Count, "J").End(xlUp)).Value
Tab_Retour = Feuil4.Range("A1", Feuil4.Cells(Rows.Count, "J").End(xlUp)).Value
'On Boucle sur le tableaux SAuv, celui ci ne sera pas modifié, on modifiera Retour
'Pour ne pas perdre de données en route
For iRow = 2 To UBound(Tab_Sauv, 1)
'On recharche la valeur correspondante de la ligne irow de la colonne D dans la colonne J
For iExact = 2 To UBound(Tab_Sauv, 1)
'On compare
If (Tab_Sauv(iRow, 4) = Tab_Sauv(iExact, 10)) Then
If (iRow <> iExact) Then 'On est deja sur la m^me ligne, on ne fait donc rien
'correspondance trouvée, on modifie tab_retour
Tab_Retour(iRow, 1) = Tab_Sauv(iExact, 1) 'colonne A
Tab_Retour(iRow, 10) = Tab_Sauv(iExact, 10) 'J
' Tab_Retour(iRow, 2) = Tab_Sauv(iExact, 2) 'B
' Tab_Retour(iRow, 3) = Tab_Sauv(iExact, 3) 'C
End If
'On quite cette boucle pour tester le prochain iRow
GoTo suite
End If
Next
'Si le code arrive ici, on a affaire avec un nouveau produit
'On vide A et on renseigne J pour le prochain coup
Tab_Retour(iRow, 1) = ""
Tab_Retour(iRow, 10) = Tab_Sauv(iRow, 4)
suite:
Next
'On affiche notre tab_retour
'Je le place a partir de la colonne G pour comparaison
Feuil4.Range("A1").Resize(UBound(Tab_Retour, 1), UBound(Tab_Retour, 2)).Value = Tab_Retour
End Sub
Sub trier()
Dim Tab_Sauv, Tab_Retour
Dim iRow As Integer
Dim iExact As Integer
'On initialise les 2 Tableaux
'Ici il faut partir de A1 jusqu'a J..
Tab_Sauv = Feuil4.Range("A1", Feuil4.Cells(Rows.Count, "J").End(xlUp)).Value
Tab_Retour = Feuil4.Range("A1", Feuil4.Cells(Rows.Count, "J").End(xlUp)).Value
'On Boucle sur le tableaux SAuv, celui ci ne sera pas modifié, on modifiera Retour
'Pour ne pas perdre de données en route
For iRow = 2 To UBound(Tab_Sauv, 1)
'On recharche la valeur correspondante de la ligne irow de la colonne D dans la colonne J
For iExact = 2 To UBound(Tab_Sauv, 1)
'On compare
If (Tab_Sauv(iRow, 4) = Tab_Sauv(iExact, 10)) Then
If (iRow <> iExact) Then 'On est deja sur la m^me ligne, on ne fait donc rien
'correspondance trouvée, on modifie tab_retour
Tab_Retour(iRow, 1) = Tab_Sauv(iExact, 1) 'colonne A
Tab_Retour(iRow, 10) = Tab_Sauv(iExact, 10) 'J
' Tab_Retour(iRow, 2) = Tab_Sauv(iExact, 2) 'B
' Tab_Retour(iRow, 3) = Tab_Sauv(iExact, 3) 'C
End If
'On quite cette boucle pour tester le prochain iRow
GoTo suite
End If
Next
'Si le code arrive ici, on a affaire avec un nouveau produit
'On vide A et on renseigne J pour le prochain coup
Tab_Retour(iRow, 1) = ""
Tab_Retour(iRow, 10) = Tab_Sauv(iRow, 4)
suite:
Next
'On affiche notre tab_retour
'Je le place a partir de la colonne G pour comparaison
Feuil4.Range("A1").Resize(UBound(Tab_Retour, 1), UBound(Tab_Retour, 2)).Value = Tab_Retour
End Sub |
Partager