ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   User defined date entry into message box? (https://www.excelbanter.com/excel-programming/374491-user-defined-date-entry-into-message-box.html)

Meltad

User defined date entry into message box?
 
Hi all,

Can I start my macro with a message box/prompt for the user to enter the
date and set this as 'todaysdate' (or something!) - I would then use this
user defined date to go into 3 other workbooks, select all data for that
date, copy the rows and paste into the original workbook.
Is this possible?!

Thank you!

NickHK[_3_]

User defined date entry into message box?
 
Look at Application.InputBox in help

NickHK

"Meltad" ...
Hi all,

Can I start my macro with a message box/prompt for the user to enter the
date and set this as 'todaysdate' (or something!) - I would then use this
user defined date to go into 3 other workbooks, select all data for that
date, copy the rows and paste into the original workbook.
Is this possible?!

Thank you!




Meltad

User defined date entry into message box?
 
Thanks Nick,

I've put this at the start of my macro...
Set TodaysDate = Application.InputBox(prompt:="Please enter today's date",
Type:=1)
How do I ensure a date is accepted and recognised later in the code?
How can I now use 'TodaysDate' to copy relevant rows from my spreadsheets?


"NickHK" wrote:

Look at Application.InputBox in help

NickHK

"Meltad" ...
Hi all,

Can I start my macro with a message box/prompt for the user to enter the
date and set this as 'todaysdate' (or something!) - I would then use this
user defined date to go into 3 other workbooks, select all data for that
date, copy the rows and paste into the original workbook.
Is this possible?!

Thank you!





NickHK[_3_]

User defined date entry into message box?
 
One thing, because you expect a Date variable back, you do not use the "Set"
key owrd ; that is only for Object.
Dim TodaysDate as Date

Also, if you actually want today's date, you do not need to ask the user ;
you have "Date", which returns today's date.
As for the last, that depends what you want to do...

NickHK

"Meltad" ...
Thanks Nick,

I've put this at the start of my macro...
Set TodaysDate = Application.InputBox(prompt:="Please enter today's date",
Type:=1)
How do I ensure a date is accepted and recognised later in the code?
How can I now use 'TodaysDate' to copy relevant rows from my spreadsheets?


"NickHK" wrote:

Look at Application.InputBox in help

NickHK

"Meltad" ...

Hi all,

Can I start my macro with a message box/prompt for the user to enter
the
date and set this as 'todaysdate' (or something!) - I would then use
this
user defined date to go into 3 other workbooks, select all data for
that
date, copy the rows and paste into the original workbook.
Is this possible?!

Thank you!







Meltad

User defined date entry into message box?
 
Hi Nick,

It is most likely to be todays date needed but there may be occasions when a
different date is needed so I thought it best to include this input box from
the outset.

I'll post all my code so far - this pretty much works as it is but I want to
add this user defined date element if possible.


Sub FailedDeliveries()

'Macro recorded 01/09/2006 by tadhum

Dim nRows As Long
Dim i As Long
Dim Source As Range
Dim strCheckDate As String
Dim datCheck As Date
Dim datLatest As Date
Dim lngColumnDate As Long
Dim TodaysDate As Date

TodaysDate = Application.InputBox(prompt:="Please enter the relevant
date")

'First Spreadsheet (Red) copy latest date from Unentered POD (podnondel)
weekly report

ChDir "N:\2006 PRODUCTION STATS\LF Transport"
Workbooks.Open Filename:="N:\2006 PRODUCTION STATS\LF
Transport\Unentered POD Report.CSV"

lngColumnDate = 2
nRows = Cells.SpecialCells(xlCellTypeLastCell).Row

'Loop one time to find the latest date
For i = 2 To nRows
If (Len(Cells(i, lngColumnDate).Value) 0) Then

'Re-evaluate the cell contents
Cells(i, lngColumnDate).Activate
SendKeys "{F2}" 'go into edit mode
SendKeys "~" 'hit enter

datCheck = Format(Cells(i, lngColumnDate).Value, "m/d/yyyy")

If (datLatest < datCheck) Then datLatest = datCheck
End If
Next i

strCheckDate = Format(datLatest, "m/d/yyyy")

'Loop a second time to find all occurences of this date
For i = 2 To nRows
If (Len(Cells(i, lngColumnDate).Value) 0) Then
If (Format(Cells(i, lngColumnDate).Value, "m/d/yyyy") =
strCheckDate) Then
If (Source Is Nothing) Then
Set Source = Cells(i, lngColumnDate).EntireRow
Else
Set Source = Union(Source, Cells(i,
lngColumnDate).EntireRow)
End If
End If
End If
Next i

If (Source Is Nothing) Then
Call MsgBox("No dates found")
Exit Sub
End If

'Paste all latest dates into blank workbook
Source.Copy
Windows("Failed Deliveries.XLS").Activate
Sheets("Report").Select
Cells(Rows.Count, lngColumnDate).End(xlUp).Offset(1, -1).Select
ActiveSheet.Paste

'colour rows red
Selection.Font.ColorIndex = 3

'Delete columns A and B
Columns("A:B").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select

'Copy column headings from format sheet
Sheets("Format").Select
Rows("1:1").Select
Selection.Copy
Sheets("Report").Select
Rows("1:1").Select
ActiveSheet.Paste

'Close podnondel workbook
PathName = "N:\2006 PRODUCTION STATS\LF Transport\"
OutName1 = "Unentered POD Report " & Date & ".csv"
OutName1 = Replace(OutName1, "/", "_", 1, -1)
OutFile1 = PathName & OutName1

Windows("Unentered POD Report.csv").Activate
Workbooks("Unentered POD Report.csv").SaveAs Filename:=OutName1
ActiveWorkbook.Close

'Second Spreadsheet (Blue) copy latest date from weekly podreg report
'Not done yet!!

'Third spreadsheet (Black) 'Discrepancies Report' is daily so no need to
select latest date

ChDir "N:\2006 PRODUCTION STATS\LF Transport"
Workbooks.Open Filename:="N:\2006 PRODUCTION STATS\LF
Transport\Discrepancies Report.xls"

'Delete cell A16 to align first row
Range("A16").Select
Selection.Delete Shift:=xlToLeft
Rows("1:15").Select
Selection.Delete Shift:=xlUp

'Copy every 3rd cell in column C starting one row before the last row, and
paste into next blank row +1 in 'Failed Deliveries' worksheet col A
For i = 1 To Cells(Rows.Count, "c").End(xlUp).Row Step 3
With Workbooks("Failed Deliveries.xls").Sheets("Report")
Lr = .Cells(Rows.Count, "A").End(xlUp).Row + 1
Cells(i, "c").Copy .Cells(Lr, "A")
End With
Next i

'Copy every 3rd cell in column C starting at the last row, and paste into
next blank row +1 in 'Failed Deliveries' worksheet col H
Windows("Discrepancies Report.xls").Activate
For i = 1 To Cells(Rows.Count, "c").End(xlUp).Row Step 3
With Workbooks("Failed Deliveries.xls").Sheets("Report")
Lr = .Cells(Rows.Count, "H").End(xlUp).Row + 1
Cells(i + 1, "c").Copy .Cells(Lr, "H")
End With
Next i

'Close 'Discrepancies Report' workbook
PathName = "N:\2006 PRODUCTION STATS\LF Transport\"
OutName2 = "Discrepancies Report " & Date & ".xls"
OutName2 = Replace(OutName2, "/", "_", 1, -1)
OutFile2 = PathName & OutName2

Windows("Discrepancies Report.xls").Activate
Workbooks("Discrepancies Report.xls").SaveAs Filename:=OutFile2
ActiveWorkbook.Close

'Change number format and adjust column width
Range("A:A,D:D").Select
Range("D1").Activate
Selection.NumberFormat = "0"
Cells.Select
Cells.EntireColumn.AutoFit

End Sub



"NickHK" wrote:

One thing, because you expect a Date variable back, you do not use the "Set"
key owrd ; that is only for Object.
Dim TodaysDate as Date

Also, if you actually want today's date, you do not need to ask the user ;
you have "Date", which returns today's date.
As for the last, that depends what you want to do...

NickHK

"Meltad" ...
Thanks Nick,

I've put this at the start of my macro...
Set TodaysDate = Application.InputBox(prompt:="Please enter today's date",
Type:=1)
How do I ensure a date is accepted and recognised later in the code?
How can I now use 'TodaysDate' to copy relevant rows from my spreadsheets?


"NickHK" wrote:

Look at Application.InputBox in help

NickHK

"Meltad" ...

Hi all,

Can I start my macro with a message box/prompt for the user to enter
the
date and set this as 'todaysdate' (or something!) - I would then use
this
user defined date to go into 3 other workbooks, select all data for
that
date, copy the rows and paste into the original workbook.
Is this possible?!

Thank you!








All times are GMT +1. The time now is 03:30 PM.

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