cantona25
Messages postés1Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention 8 mai 2010
-
7 mai 2010 à 22:15
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
8 mai 2010 à 16:41
bonjour à tous,
j'ai récupéré un formulaire pour suivre la gestion de stocks de marchansises et leur valeur et j'ai rencontré des difficultés surtout au niveau d'ajout et de suppression d'article et de l'impression.
je vous remercie d'avance
merci
ps : code:
Private Sub B_FermerStock_Click()
ActiveWorkbook.Close True
End Sub
Private Sub B_Impression_Click()
Me.Hide
'aperçu avant impression
Sheets("IMPRESSION").PrintPreview
Me.Show
Sheets("IMPRESSION").Select
Cells.Select
Selection.Delete
End Sub
Private Sub B_SuppressionArticle_Click()
Dim Article As String
Article = ListView1.SelectedItem
With Sheets("STOCK")
Dim iRow As Long
For iRow = .Cells(Rows.Count, "A").End(xlUp).Row To 3 Step -1
If .Cells(iRow, 1).Value = Article Then
x = MsgBox("CONFIRMEZ-VOUS LA SUPPRESSION DE CET ARTICLE DU STOCK ?", vbYesNo)
If x = 6 Then
.Rows(iRow).Cut
Worksheets("ARTICLES RETIRES DU STOCK").Select
DerLig = Sheets("ARTICLES RETIRES DU STOCK").Range("A65536").End(xlUp)(2).Row
Range("A" & DerLig).Select
ActiveSheet.Paste
Worksheets("STOCK").Select
.Rows(iRow).Select
Selection.Delete Shift:=xlUp
Else
Exit Sub
End If
Exit For
End If
Next iRow
For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected = True Then ListView1.ListItems.Remove i
Next i
End With
End Sub
Private Sub UserForm_initialize()
With ListView1
With .ColumnHeaders
.Clear
.Add , , "Référence", 100
.Add , , "Désignation", 250
.Add , , "Qté en stock", 70, (2) 'alignement de la col est au centre (2)
.Add , , "Prix Vente HT", 70, (1) 'alignement de la col est à droite (1)
.Add , , "Durée", 70, (1)
.Add , , "Poids MA", 70, (1)
.Add , , "Calibre", 70, (1)
.Add , , "Type", 100, (1)
.Add , , "Fournisseur", 100, (1)
End With
.Gridlines = True
For i = 3 To Sheets("STOCK").Range("A65536").End(xlUp).Row
.ListItems.Add , , Sheets("STOCK").Cells(i, 1) 'référence
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 3) 'désignation
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 16) 'qté en stock
.ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 11), "## ##0.00 €") 'PVHT
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 6) 'durée
.ListItems(.ListItems.Count).ListSubItems.Add , , Format(Sheets("STOCK").Cells(i, 7), "# ##0.000") 'poids MA
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 5) 'calibre
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 4) 'type
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("STOCK").Cells(i, 2) 'fournisseur
If Sheets("STOCK").Cells(i, 16) > 0 Then
.ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &H4040
Else
.ListItems(.ListItems.Count).ListSubItems(2).ForeColor = &HFF
.ListItems(.ListItems.Count).ListSubItems(2).Bold = True
End If: Next: End With
End Sub
Private Sub ListView1_Click()
'dès que l'on clique sur l'article, on affiche dans le formulaire usfDetailArticle les entrées et sorties de stock de l'article
NumArticle = ListView1.SelectedItem
Dim ShS As Worksheet
Set ShS = Worksheets("SORTIES")
Dim ShE As Worksheet
Set ShE = Worksheets("ENTREES")
Dim Article As String
Article = NumArticle
On Error Resume Next
With ShS
'définir la zone de critère
'choisir l'étiquette de la colonne A1 -> champ où exploiter le filtre
.Range("K1") = .Range("A1")
.Range("K2") = Article 'la valeur du critère du filtre
ShS.Range("P1").CurrentRegion.Clear
'Définir la plage de cellules pour le filtre...
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
'Application du filtre
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=ShS.Range("K1:K2"), _
CopyToRange:=ShS.Range("P1"), Unique:=False
'Copie vers la cellule où débutera la plage résultat
End With
.ShowAllData
End With
With ShE
'définir la zone de critère
'choisir l'étiquette de la colonne A1 -> champ où exploiter le filtre
.Range("K1") = .Range("A1")
.Range("K2") = Article 'la valeur du critère du filtre
ShE.Range("P1").CurrentRegion.Clear
'Définir la plage de cellules pour le filtre...
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
'Application du filtre
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=ShE.Range("K1:K2"), _
CopyToRange:=ShE.Range("P1"), Unique:=False
'Copie vers la cellule où débutera la plage résultat
End With
.ShowAllData
NumArticle = ShS.Range("K2").Value
With Sheets("STOCK").Range("A:A")
Set C = .Find(NumArticle, LookIn:=xlValues, lookat:=xlWhole)
If Not C Is Nothing Then Lig = C.Row
End With
End With
Me.Hide
Unload UsfDetailArticle
UsfDetailArticle.Show
End Sub
Private Sub B_NouvelArticle_Click()
Me.Hide
Unload UsfNouvelArticle
UsfNouvelArticle.Show
End Sub
Private Sub B_GoFour_click()
Me.Hide
UsfStockFournisseur.Show
End Sub
Private Sub B_GoType_click()
Me.Hide
UsfStockType.Show
End Sub
Private Sub B_GoCalibre_click()
Me.Hide
UsfStockCalibre.Show
End Sub
Private Sub Userform_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel CloseMode vbFormControlMenu
End Sub
A voir également:
Probleme d'ajout et de suppression d'article et d'impression