Bonjour,
J'ai beaucoup de problème pour réaliser les étapes suivantes :
J'ai un array de type :
Avec ce tableau comme vous pouvez le voir, j'ai des nomenclatures similaires, je souhaite donc avoir :
Je précise que je ne connais ni l'emplacement à l'avance du doublons ni l'emplacement à l'avance du tableau.
j'ai :
Worksheets("User").Range(Cells(derniereL + 2, 3), Cells(derniereL + 10, 9)) = matmont
Merci pour votre aide!
Au cas ou vous voudriez le code qui créé le tableau, il doit être possible d'agir en amont :
Sub Materiel()
'********Matériel Canne*********************************
Dim z As Byte
Dim e As Byte
Dim n As Byte
Dim derniereL As Byte
'Dim matmont() As Variant
Dim matmont(10, 6)
n = 0
For z = 4 To 14 'jusqu'a la fin du tableau en colonne
If Range("Choix_pos_regulateurs") = Sheets("Montage").Cells(1, z) Then Exit For
Next z
For e = 2 To 32
If Sheets("Montage").Cells(e, z) >= 1 Then
'ReDim Preserve matmont(n, 2)
matmont(n, 0) = Sheets("Montage").Cells(e, 2)
matmont(n, 5) = Sheets("Montage").Cells(e, 3)
'définir les valeur de e en fonction de la colonne pour possible ajout user d'articles
If e <= 13 Then matmont(n, 6) = Sheets("Montage").Cells(e, z) * PiqSt
If PiqTour > 0 And e > 13 And e <= 23 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqTour
If PiqRéh > O And e > 23 And e <= 25 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqRéh
If PiqRampe > 0 And e > 25 And e <= 29 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqRampe
If PiqKitroue > 0 And e > 29 And e <= 32 Then matmont(n, 6) = Sheets("montage").Cells(e, z) * PiqKitroue
n = n + 1
End If
Next e
'si matériels = 0 alors supprimer ligne
Worksheets("User").Range(Cells(derniereL + 2, 3), Cells(derniereL + 10, 9)) = matmont
End Sub