Advertisement
Otm02

Inventory Tracker

Sep 26th, 2022
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VisualBasic 2.96 KB | Source Code | 0 0
  1. Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  2. Dim int_range As Range
  3. Set int_range = Intersect(Target, Range("F2:F" & Rows.Count)) 'Colonne nombre de produits
  4. "F"
  5. Dim prod_range As Range
  6. Set prod_range = Intersect(Target, Range("C2:C" & Rows.Count)) 'Colonne noms produits "C"
  7. Dim i As Integer
  8. i = Target.Row - 1 '3 est la premiere colonne du nombre de produits
  9. If Not (prod_range Is Nothing) Then
  10. With ActiveSheet 'Nom de la feuille "Sheet1"
  11. If (Target.Rows.Count <> 1 Or Target.Columns.Count <> 1) Then Exit Sub
  12. For Each c In prod_range
  13. c.Offset(-1 * i, (5 * i) + 7).Value = "Produit (Unité)"
  14. c.Offset(-1 * i, (5 * i) + 7).Columns.AutoFit
  15. c.Offset(-1 * i, (5 * i) + 8).Value = "Nb total"
  16. c.Offset(-1 * i, (5 * i) + 8).Columns.AutoFit
  17. c.Offset(-1 * i, (5 * i) + 9).Value = "Suivi"
  18. c.Offset(-1 * i, (5 * i) + 9).Columns.AutoFit
  19. c.Offset(-1 * i, (5 * i) + 10).Value = "Date et Heure du suivi"
  20. c.Offset(-1 * i, (5 * i) + 10).Columns.AutoFit
  21. c.Offset(-1 * i, (5 * i) + 11).Value = "Modificateur"
  22. c.Offset(-1 * i, (5 * i) + 11).Columns.AutoFit
  23. Next
  24. End With
  25. End If
  26. If Not (int_range Is Nothing) Then
  27. With ActiveSheet 'Nom de la feuille "Sheet1"
  28. If Target.Count > 1 Then Exit Sub
  29. For Each c In int_range
  30. If Not IsNumeric(c.Value) Then
  31. MsgBox "Veuillez uniquement entrer des chiffres!"
  32. c.Value = vbNullString
  33. Else
  34. c.Offset(-1 * (i - 1), (5 * i) + 5).Value = c.Offset(-1 * (i - 1), (5 * i) + 5).Value + c.Value
  35. .Range("O" & Rows.Count).Offset(0, 5 * (i - 1)).End(xlUp).Offset(1).Value = .Range("C" &
  36. Target.Row).Value
  37. '"O" suivi du nom de produits "C"
  38. End If
  39. Next
  40. .Range("Q" & Rows.Count).Offset(0, 5 * (i - 1)).End(xlUp).Offset(1).Value = .Range("F" &
  41. Target.Row).Value
  42. '"Q" suivi du nombre de commandes "F"
  43. End With
  44. End If
  45. Dim n As Long
  46. Const suivi_column As Integer = 17
  47. For n = suivi_column To ActiveSheet.UsedRange.Columns.Count Step 5
  48. If (n - 2) Mod 5 = 0 Then
  49. If Target.Count > 1 Then Exit Sub
  50. If Not Intersect(Target, Columns(n)) Is Nothing Then
  51. If Target.Value <> vbNullString Then
  52. Target.Offset(0, -2).EntireColumn.AutoFit
  53. Target.Offset(0, 1).Value = Format(Now(), "yyyy-MM-dd | hh:mm")
  54. Target.Offset(0, 1).ColumnWidth = 20
  55. Target.Offset(0, 2).Value = Application.UserName
  56. Target.Offset(0, 2).EntireColumn.AutoFit
  57. End If
  58. End If
  59. End If
  60. Next n
  61. End Sub
  62. Sub Backup_Mensuel()
  63. Dim myWorksheet As Worksheet
  64. Dim myWorksheetName As String
  65. myWorksheetName = "BKP " & Format(Now, "mmmm_yyyy")
  66. For Each myWorksheet In Worksheets
  67. If myWorksheet.Name = myWorksheetName Then
  68. MsgBox "La feuille du mois existe déjà!"
  69. Exit Sub
  70. End If
  71. Next myWorksheet
  72. Sheets.Add.Name = myWorksheetName
  73. Sheets(myWorksheetName).Move After:=Sheets(Sheets.Count)
  74. Worksheets("SUIVI DES COMMANDES").Range("O1", Cells(1,
  75. Columns.Count).End(xlToLeft)).Copy Worksheets(myWorksheetName).Range("A1")
  76. Worksheets("SUIVI DES COMMANDES").Range("O2",
  77. Range("O2").SpecialCells(xlCellTypeLastCell)).Cut
  78. Worksheets(myWorksheetName).Range("A2")
  79. 'backup à partir de la colonne O
  80. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement