'lire le nombre de ligne à prendre en compte
p = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(2, 1).Value
Worksheets("Code_barre").Select
'ranger la matrice de valeur
Range(Cells(3, 1), Cells(p, 7)).Sort Key1:=Cells(3, 6), Key2:=Cells(3, 7)
Worksheets("feuil1").Select
k = 9
i = 3
m = 4
n = 1
'vérifie tous les codes barres
If p = 3 Then
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 1) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 6)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 2) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 2)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 7)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i + 1) = n
End If
For m = 4 To p
n = 1
If p = 4 Then
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 1) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 6)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 2) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 2)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 7)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i + 1) = n
k = k + 1
End If
'si position n differente de position n+1, sauter une ligne
If Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 1, 7) <> Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 2, 7) Then
m = m + 1
End If
'compter le nombre de meme position, si la commande est la meme
While Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 1, 6) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 2, 6) And n < p And Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 1, 7) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 2, 7)
n = n + 1
Wend
'inscrire le nombre de meme position
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i + 1) = n
'décrémenter pour une position differente
If Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 2, 7) <> Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + n - 3, 7) Then
m = m - 1
End If
'inscrire la position
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, i) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 7)
'vérifier si la commande à changé
If Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m + 1, 6) <> Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 6) Then
k = k + 1
i = 3
z = 1
If m = p Then
k = k - 1
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 1) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 6)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 2) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 2)
Else
GoTo 20
End If
End If
'Recopier le numéro de commande technifen
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 1) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 6)
'recopier le numéro de commande easywin
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(k, 2) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 2)
'incrémenter la ligne pour la position suivante
If Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m, 6) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(m - 1, 6) And m < p Then
i = i + 2
20
End If
Next
If Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(9, 1) <> Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(3, 6) Then
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(9, 1) = Workbooks("Cartonette_v2.xlsm").Sheets("Code_barre").Cells(3, 6)
End If
m = 9
i = 3
k = i
C = i
n = 1
'balayer le tableau entier
For m = 9 To 17
For C = 3 To 19 Step 2
n = 1
l = C
'regarder si deux meme positions se suivent
While Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, C) = Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, C + 2)
C = C + 2
n = n + 1
If C >= 21 Then
GoTo 30
End If
Wend
30
'si deux positions se suivent, décaller les cases
If n >= 2 Then
Do Until C >= 21
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, l + 2) = Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, C + 2)
Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, l + 3) = Workbooks("Cartonette_v2.xlsm").Sheets("Feuil1").Cells(m, C + 3)
C = C + 1
l = l + 1
Loop
End If
Next C
Next m