The simplest way of combining the three modules might be to use another one to call each of the others. For example:
Code:
Sub Refresh()
Call DownloadFile
Call Convert_PDF_To_Text_File
Call UpdatePrices
End Sub
If there are any timing issues, such that the 'Convert_PDF_To_Text_File' sub runs before the DownloadFile sub finishes its processing, for example, it shouldn't be too difficult to insert some code to loop until the downloaded file is present; the same applies with ensuring the 'ProductCatalog.txt' text is present before allowing the UpdatePrices sub to run. This raises another issue: you should add code to delete (kill) or rename the old copies at the start of each run, so they don't confuse issues.