VBA for Generating Cycle Counts

bneighbors9

New Member
Joined
Aug 22, 2024
Messages
20
Office Version
  1. 365
Platform
  1. Windows
I am looking for a VBA assigned to a button that will generate a cycle count for inventory control purposes. Each time I press the button, a new list will populate and not repeat any part numbers from a previous time of pressing the button. The list of part numbers with description/ location are on sheet 1 , Column B through D. The count sheet that I need this information to go to is on sheet2.

The button needs to do the following
Put todays date in the top of the sheet2
Randomly pull 15 part numbers from sheet 1 and paste that onto the count sheet (Sheet2 in A4 through A18). It needs to not select any part number that has a date in the E column.
Once a part number has been selected, put todays date in column E on sheet 1 to show the date it was selected and to stop it from being selected again.
Be able to click the button over and over again to create a new list until all part numbers have been selected 1 time.
 

Attachments

  • Sheet1.PNG
    Sheet1.PNG
    69.1 KB · Views: 39
  • Sheet2.PNG
    Sheet2.PNG
    40.2 KB · Views: 36
When you are selecting from the remaining data in sheet1, where you want to place the selected data. Below the existing data in Sheet2 or in some other sheet?
 
Upvote 0

Excel Facts

Format cells as currency
Select range and press Ctrl+Shift+4 to format cells as currency. (Shift 4 is the $ sign).
When I press the button on sheet2, I would like for it to pull the first 15 available material numbers from sheet1 that do not have a date in the E column and place them into Sheet2. Right now it is pulling the material numbers at random. I would like for them to be in order from top of the list to the bottom. Each time I click the button, the next 15 material numbers with generate on sheet2 until there is not anymore available without a date in the E column.
 
Upvote 0
CC test page.xlsm
ABCDE
1STORAGE TYPEMATERIALDESCRIPTIONSTORAGE BINCOMPLETE
2FSP0157221225SEATHJ12FSP01A
3FSP08036D1630CLIPHJ12FSP01B
4FSP2A54611C50KCPLATE ASSY CLAMPHJ12FSP01C
5FSP2A670K1191BRACKETHJ12FSP01C
6FSP2079707420BRACKETHJ12FSP02A
7FSP2079707430BRACKETHJ12FSP02A
8FSP207943A130BRACKETHJ12FSP02B
9FSP2069437A90small stripHJ12FSP02C
10FSP20Y9703572BRACKETHJ12FSP03A
11FSP2089707180BRACKET ARMHJ12FSP03B
12FSP2089707190BRACKET ARMHJ12FSP03B
13FSP20Y7042E51PLATEHJ12FSP03B
14FSP2067072B60PIPEHJ12FSP03C
15FSP20Y7022H50Grease tubeHJ12FSP03C
16FSP2A76215610BRACKETHJ12FSP04A
17FSP20Y6245172CLAMP BRACKETHJ12FSP04B
18FSP2077062B52KSGrease TubeHJ12FSP04C
19FSP2087066B40KSPIPE SOZAIHJ12FSP04C
20FSP2089446B40KSPLATE SOZAIHJ12FSP04C
21FSP2056221150BRACKETHJ12FSP05A
22FSP2A56228280BRACKETHJ12FSP05B
23FSP2A66221240BRACKETHJ12FSP05C
24FSP2A67021140BRACKETHJ12FSP06A
25FSP2A57011130PLATEHJ12FSP06B
26FSP0158003024NUTHJ12FSP06C
27FSP2086274210SEATHJ12FSP06C
28FSP2A77011150BRACKETHJ12FSP07A
29FSP2A66221250BRACKETHJ12FSP07B
30FSP2A67021220BRACKETHJ12FSP07C
31FSP2A56228260BRACKET BOOM TUBE SADDLEHJ12FSP08A
32FSP2056221140BRACKETHJ12FSP08B
33FSP2A66211290BRACKETHJ12FSP08C
34FSP2086224440BRACKETHJ12FSP09A
35FSP2A66211280BRACKETHJ12FSP09B
36FSP2076242830TUBE CLAMP BRACKETHJ12FSP09C
37FSPS205270022BAR-2(SUTEZAI) 9mm sq X 300mm lgHJ12FSP10A
38FSP2086274241CLAMP BRACKETHJ12FSP10B
39FSPS2052700321/2'' BAR 250MM LGHJ12FSP10C
40FSP2086227510BRACKET PC490LCI-11HJ12FSP11A
41FSP2086274251CLAMP BRACKETHJ12FSP11B
42FSP2A56228270BRACKET BOOM TUBE SADDLEHJ12FSP11C
43FSP2A546A2M90JAPLATEHJ12FSP12A
44FSP2076274281BRACKETHJ12FSP12B
45FSP22U46A8A90PLATEHJ12FSP12C
46FSP2A56226450BRACKETHJ12FSP13A
47FSP2A77011140BRACKETHJ12FSP13B
48FSP08036D2045CLIPHJ12FSP13C
49FSP2A56226460BRACKETHJ12FSP14A
50FSP2A67021320SEATHJ12FSP14B
51FSP5678912140SEATHJ12FSP14B
52FSP2A54611E41KBPLATE ***'YHJ12FSP14C
53FSP2A546A2420SEAT, PLATE A.HJ12FSP15A
54FSP0101163030BOLTHJ12FSP15B
55FSP2A546A2430SEAT, PLATE A.HJ12FSP15C
56FSP2074671D20KSlong seat (6 holes)HJ12FSP16A
57FSP2074661E20KAPLATE ***'YHJ12FSP16B
58FSP2A74611910SEATHJ12FSP16C
59FSP22U4621A90KSPLATE SOZAIHJ12FSP17A
60FSP2A646A1A31JAPLATE ASEMBLYHJ12FSP17B
61FSP2A64631B51BRACKETHJ12FSP17C
62FSP2074672C51JAANGLE A.HJ12FSP18A
63FSP2A54611C41KCPLATE ASSY CLAMPHJ12FSP18B
64FSP2A54611C41KDPLATE ASSY CLAMPHJ12FSP18B
65FSP2084641C10BRACKETHJ12FSP18C
66FSP2074661E20KDPLATE ***'YHJ12FSP19A
67FSP2084621C60KAPLATE ***'YHJ12FSP19B
68FSP2A54626A30BRACKETHJ12FSP19B
69FSP2087027A30SEATHJ12FSP19C
70FSP2A54611C60PLATEHJ12FSP19C
71FSP2097215210SEATHJ12FSP20A
72FSP0157221019SEATHJ12FSP20B
73FSP21T4615140SEAT, M10X1.50 (X2) L60.00HJ12FSP20B
74FSP2334611850SEATHJ12FSP20B
75FSP2074661E20KEPLATE ***'YHJ12FSP20C
76FSP5661611240BOSSHJ12FSP20C
77FSP2014673E61KAPLATE ASSEMBLYHJ12FSP21A
78FSP2A54611C51KAPLATE ASSY CLAMPHJ12FSP21A
79FSP2A54611F90KCPLATEHJ12FSP21B
80FSP2A64611B40BRACKETHJ12FSP21B
81FSP2A54611F90KDPLATEHJ12FSP21C
82FSP20Y3082B60TR FRAME (NRW)-210LL/230FHJ12FSP22A
83FSP20Y3082B70TR FRAME (NARROW) - PC210LLHJ12FSP22A
84FSP2083012160PLATEHJ12FSP22C
85FSP2A76215150BRACKETHJ12FSP22C
86FSP2083012130BOLT,TRACK FRAMEHJ12FSP23A
87FSP2083031650COLLARHJ12FSP23A
88FSP2064621161BRACKETHJ12FSP23B
89FSP2083065C30KSBAR SOZAIHJ12FSP23B
90FSP20Y4651361BRACKETHJ12FSP23B
91FSP0157221232SEATHJ12FSP23C
92FSP2A56226480BRACKETHJ12FSP23C
93FSP2A646A1A20SEATHJ12FSP23C
94FSP2084671D80PLATE PC 360HJ12FSP24B
95FSP2A67021330SEATHJ12FSP24B
96FSP0157221422SEATHJ12FSP28A
97FSP0157221219SEATHJ12FSP28B
98FSP2856219360BOSS, M12X1.75 L35.00HJ12FSP28B
99FSP2059706371SEATHJ12FSP28C
100FSP2A77011130BRACKETHJ12FSP29
FSP
Cells with Conditional Formatting
CellConditionCell FormatStop If True
A2:E964Expression=$E2<>""textNO
 
Upvote 0
CC test page.xlsm
ABCDEFGHIJK
1D74 CYCLE COUNT DATA SHEET
2
3PART NUMBERDISCRIPTIONLOCATIONCOUNT2ND COUNTFINALBOOKVAR
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19______________________________ 2ND CNT SIGNATURE:_________________________________ ID NUMBER:________________
201ST CNT SIGNATURE:
21DATE:
COUNT SHEET
 
Upvote 0
In post#1 you asked for random selection. When you are selecting 2nd and further times where to place selected data in sheet2. Every time replace a4:c18 data by new data or some other range.?
 
Upvote 0
Yes I would like to change what was said in the first post from random selection to selecting in order. each time it should replace A4:C18
 
Upvote 0
Try.
VBA Code:
Sub SelectPartNumbers()
Dim T&, Lr&, cnt&
Dim A, B, Dt, M
Lr = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
A = Sheets("Sheet1").Range("B2:D" & Lr)
Dt = Sheets("Sheet1").Range("E2:E" & Lr)
cnt = WorksheetFunction.Min(WorksheetFunction.CountIf(Sheets("Sheet1").Range("E2:E" & Lr), ""), 15)
M = Filter(Evaluate("transpose(If('Sheet1'!e2:e" & Lr & "="""",'Sheet1'!b2:b" & Lr & ",False))"), False, False)
If cnt > 0 Then
ReDim B(0 To cnt - 1, 1 To 3)
For T = 0 To cnt - 1
B(T, 1) = A(M(T), 1): B(T, 2) = A(M(T), 2): B(T, 3) = A(M(T), 3): Dt(M(T), 1) = Date
Next T
Sheets("Sheet1").Range("E2:E" & Lr) = Dt
Sheets("Sheet1").Range("E2:E" & Lr).NumberFormat = "dd-mm-yyyy"
With Sheets("Sheet2")
.Range("A4:C18").Clear
.Range("A4:C" & 4 + cnt - 1) = B
.Range("B1") = Date
End With
Else
Sheets("Sheet2").Range("A4:C18").Clear
End If

MsgBox cnt & " Part numbers are selected", vbOKOnly, "Free Part Numbers"
End Sub
 
Upvote 0

Forum statistics

Threads
1,226,494
Messages
6,191,363
Members
453,655
Latest member
lasvegasbuffet

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top