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
| Public ShArticles As Worksheet
Public TitreArticles As Long
Public DerniereLigneArticles As Long
Public CelluleArticles As Range
Public AireArticles As Range
Public ShCommande As Worksheet
Public TitreCommande As Long
Public DerniereLigneCommande As Long
Public LigneCommandeEnCours As Long
Public ColonneDebutTableau As Long
Sub CopierLesArticlesSelectionnesDansLaFeuilleCommande()
Set ShArticles = Sheets("Articles")
TitreArticles = 10
DerniereLigneArticles = ShArticles.Cells(ShArticles.Rows.Count, 8).End(xlUp).Row
Set ShCommande = Sheets("Commande")
TitreCommande = 10
DerniereLigneCommande = ShCommande.Cells(ShCommande.Rows.Count, 8).End(xlUp).Row
LigneCommandeEnCours = TitreCommande + 1
ColonneDebutTableau = 4
If DerniereLigneCommande > TitreCommande Then
Range(ShCommande.Cells(TitreCommande + 1, 4), ShCommande.Cells(DerniereLigneCommande, 8)).ClearContents
End If
Set AireArticles = Range(ShArticles.Cells(TitreArticles + 1, 8), ShArticles.Cells(DerniereLigneArticles, 8))
If DerniereLigneArticles > TitreArticles Then
For Each CelluleArticles In AireArticles
If CelluleArticles <> "" Then
With ShCommande
.Cells(LigneCommandeEnCours, ColonneDebutTableau) = CelluleArticles.Offset(0, 1 - 8)
.Cells(LigneCommandeEnCours, ColonneDebutTableau + 1) = CelluleArticles.Offset(0, 2 - 8)
.Cells(LigneCommandeEnCours, ColonneDebutTableau + 2) = CelluleArticles.Offset(0, 3 - 8)
.Cells(LigneCommandeEnCours, ColonneDebutTableau + 3) = CelluleArticles.Offset(0, 4 - 8)
.Cells(LigneCommandeEnCours, ColonneDebutTableau + 4) = CelluleArticles
LigneCommandeEnCours = LigneCommandeEnCours + 1
End With
End If
Next CelluleArticles
ShCommande.Activate
Else
MsgBox "Pas d'article sélectionné !", vbCritical, "Etablir une commande"
End If
Set AireArticles = Nothing
Set ShCommande = Nothing
Set ShArticles = Nothing
End Sub |
Partager