ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Incrementing no.s creating new but not changing no. opening saved (https://www.excelbanter.com/excel-discussion-misc-queries/184213-incrementing-no-s-creating-new-but-not-changing-no-opening-saved.html)

ml123

Incrementing no.s creating new but not changing no. opening saved
 
I have used the following steps to automatically populate the PO number field
in a Purchase Order file, based on a template, with an incremental number .
It works perfectly!!

1. Create a folder called Base Data and within it create a file called
PONumber.xls

2. Type the next new PO number in cell A1 of Sheet1.

3. Press Alt+F11 and double click on the "This Workbook" node for
PONumber.xls. (Make sure it says "PONumber -[ThisWookbook (Code)]" in the
title bar.)

4. Copy and paste in the following code

Private Sub Workbook_Open()
Sheets("Sheet1").Select
Dim number
number = Range("A1").Value
number = number + 1
Range("A1").Value = number
Range("A1").Select
End Sub

5. Save and close this file.

6. Open your PO template file and in the cell where you want the number to
appear type this formula:

='C:\Base Data\[PONumber.xls]Sheet1'!$A$1

in the cell where you want the number to appear.

7. Press Alt +F11 and double click on the "ThisWorkbook" node for your
template (check the title bar) then copy and paste in the following code:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Base Data\PONumber.xls"
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

8. Save the template

HOWEVER, whenever I later open the saved populated Purchase Order the
numbers is changed. For examplte, if when the file was populated the PO
number was "PO0115" and a number of new POs have been saved since the
original file was created, when I open file "PO0115" it's PO number on screen
changes to the next new number held in my PONumber file e.g. "PO0119". How
do I stop this?

Dave Peterson

Incrementing no.s creating new but not changing no. opening saved
 
As long as you allow links to recalculate, then this formula will always grab
the current po from the ponumber.xls workbook.

='C:\Base Data\[PONumber.xls]Sheet1'!$A$1

You may want to try this change in the template file.

First, put this in the cell that holds the PO Number:
PONUMBER
(It'll be an indicator to see if you should retrieve a new PO.)

Then in the ThisWorkbook module of the template:

Private Sub Workbook_Open()
'what cell on what worksheet holds the PO number?
with me.worksheets("Sheet9999").range("A1")
if lcase(.value) = lcase("PONUMBER") then
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Base Data\PONumber.xls"
'retrieve the current value from the ponumber.xls file
.value = activeworkbook.worksheets("sheet1").range("a1").va lue
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
end if
end with
End Sub

You may want to review JE McGimpsey's notes:
http://mcgimpsey.com/excel/udfs/sequentialnums.html

ml123 wrote:

I have used the following steps to automatically populate the PO number field
in a Purchase Order file, based on a template, with an incremental number .
It works perfectly!!

1. Create a folder called Base Data and within it create a file called
PONumber.xls

2. Type the next new PO number in cell A1 of Sheet1.

3. Press Alt+F11 and double click on the "This Workbook" node for
PONumber.xls. (Make sure it says "PONumber -[ThisWookbook (Code)]" in the
title bar.)

4. Copy and paste in the following code

Private Sub Workbook_Open()
Sheets("Sheet1").Select
Dim number
number = Range("A1").Value
number = number + 1
Range("A1").Value = number
Range("A1").Select
End Sub

5. Save and close this file.

6. Open your PO template file and in the cell where you want the number to
appear type this formula:

='C:\Base Data\[PONumber.xls]Sheet1'!$A$1

in the cell where you want the number to appear.

7. Press Alt +F11 and double click on the "ThisWorkbook" node for your
template (check the title bar) then copy and paste in the following code:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Base Data\PONumber.xls"
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

8. Save the template

HOWEVER, whenever I later open the saved populated Purchase Order the
numbers is changed. For examplte, if when the file was populated the PO
number was "PO0115" and a number of new POs have been saved since the
original file was created, when I open file "PO0115" it's PO number on screen
changes to the next new number held in my PONumber file e.g. "PO0119". How
do I stop this?


--

Dave Peterson

ml123

Incrementing no.s creating new but not changing no. opening sa
 
Many thanks. I managed to figure out that the problem was with the
Workbook_Open macro. I added a button calling a macro getting the next
sequential number from the PONumber worksheet and removed the Workbook_Open
macro. All now seems to be well.

"Dave Peterson" wrote:

As long as you allow links to recalculate, then this formula will always grab
the current po from the ponumber.xls workbook.

='C:\Base Data\[PONumber.xls]Sheet1'!$A$1

You may want to try this change in the template file.

First, put this in the cell that holds the PO Number:
PONUMBER
(It'll be an indicator to see if you should retrieve a new PO.)

Then in the ThisWorkbook module of the template:

Private Sub Workbook_Open()
'what cell on what worksheet holds the PO number?
with me.worksheets("Sheet9999").range("A1")
if lcase(.value) = lcase("PONUMBER") then
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Base Data\PONumber.xls"
'retrieve the current value from the ponumber.xls file
.value = activeworkbook.worksheets("sheet1").range("a1").va lue
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
end if
end with
End Sub

You may want to review JE McGimpsey's notes:
http://mcgimpsey.com/excel/udfs/sequentialnums.html

ml123 wrote:

I have used the following steps to automatically populate the PO number field
in a Purchase Order file, based on a template, with an incremental number .
It works perfectly!!

1. Create a folder called Base Data and within it create a file called
PONumber.xls

2. Type the next new PO number in cell A1 of Sheet1.

3. Press Alt+F11 and double click on the "This Workbook" node for
PONumber.xls. (Make sure it says "PONumber -[ThisWookbook (Code)]" in the
title bar.)

4. Copy and paste in the following code

Private Sub Workbook_Open()
Sheets("Sheet1").Select
Dim number
number = Range("A1").Value
number = number + 1
Range("A1").Value = number
Range("A1").Select
End Sub

5. Save and close this file.

6. Open your PO template file and in the cell where you want the number to
appear type this formula:

='C:\Base Data\[PONumber.xls]Sheet1'!$A$1

in the cell where you want the number to appear.

7. Press Alt +F11 and double click on the "ThisWorkbook" node for your
template (check the title bar) then copy and paste in the following code:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Base Data\PONumber.xls"
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

8. Save the template

HOWEVER, whenever I later open the saved populated Purchase Order the
numbers is changed. For examplte, if when the file was populated the PO
number was "PO0115" and a number of new POs have been saved since the
original file was created, when I open file "PO0115" it's PO number on screen
changes to the next new number held in my PONumber file e.g. "PO0119". How
do I stop this?


--

Dave Peterson



All times are GMT +1. The time now is 05:07 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com