Selected Answer
Kalil
In the revised workbook attached, I modified the sub cmdSAVE_Click() by changing the test:
If x > f Then
to read:
If x > f And Me.Controls("CA1").Text <> "" Then
(and likewise for CB and CC). That adds a test to see it the first ComboBox (was "DESCRIBE", now "Description") is complete- if not, values are NOT written to the sheet. That way, you can write any or all rows and only those (or all) will be written to the (common) Month column in the worksheet.
In those If sections, you might want to add a Else statement to either report that the columns were not all complete (or force the user back to the UserForm to complete them).
Regarding the problem of repeat month entries setting the price to 0 (in the Discussion below), if there's data in the first row of ComboBoxes, the lines:
If InStr(1, chk4, chk1) Then
Sheet1.Cells(x, z) = p1
write the new value to column D. Further down the macro, the line:
If InStr(1, chk4, chk2) Then
Sheet1.Cells(x, z) = p2
then overwrites the cell with P2 (=0) since (null string) chk2 (="") is "found" in ch4 by Instr (at position 1). Same happens for similar lines for chk3.
I got around that by making each Instr test like this:
If chk1 <> "" And InStr(1, chk4, chk1) Then
Sheet1.Cells(x, z) = p1
Now the price is replaced by the new row, whichever row of ComboBoxes is populated.
Hope this helps.