ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Something wrong with undefined functions. (https://www.excelbanter.com/excel-programming/355534-something-wrong-undefined-functions.html)

a94andwi[_23_]

Something wrong with undefined functions.
 

Hello.

I have this "workbook_open" sub that looks like this.

Code:
--------------------
Private Sub Workbook_Open()
Application.CalculateFull
If (Weekday(Today()) = 6) Then
[Sheets("Stora lev problem").Range("E3") = TODAY() + 3]
Else
[Sheets("Stora lev problem").Range("E3") = TODAY() + 1]
End If

End Sub
--------------------


I get an error that TODAY() is not defined when I open the workbook.
Why? Isn't TODAY() a general function in excel that should work
automaticaly?

Can someone please give me a hint?
/Anders


--
a94andwi
------------------------------------------------------------------------
a94andwi's Profile: http://www.excelforum.com/member.php...o&userid=21077
View this thread: http://www.excelforum.com/showthread...hreadid=520475


Norman Jones

Something wrong with undefined functions.
 
Hi Anders,

Try:

'=============
Private Sub Workbook_Open()
Application.CalculateFull
If (Weekday(Date) = 6) Then
Sheets("Stora lev problem").Range("E3") = Date + 3
Else
Sheets("Stora lev problem").Range("E3") = Date + 1
End If

End Sub
'<<=============


---
Regards,
Norman



"a94andwi" wrote in
message ...

Hello.

I have this "workbook_open" sub that looks like this.

Code:
--------------------
Private Sub Workbook_Open()
Application.CalculateFull
If (Weekday(Today()) = 6) Then
[Sheets("Stora lev problem").Range("E3") = TODAY() + 3]
Else
[Sheets("Stora lev problem").Range("E3") = TODAY() + 1]
End If

End Sub
--------------------


I get an error that TODAY() is not defined when I open the workbook.
Why? Isn't TODAY() a general function in excel that should work
automaticaly?

Can someone please give me a hint?
/Anders


--
a94andwi
------------------------------------------------------------------------
a94andwi's Profile:
http://www.excelforum.com/member.php...o&userid=21077
View this thread: http://www.excelforum.com/showthread...hreadid=520475




a94andwi[_24_]

Something wrong with undefined functions.
 

Hello

I tried your code and it seem to work but there are still an error I
can't explain.

Code:
--------------------
If (Weekday(Date = 6)) Then
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)
Else
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 1)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)

End If


If (Weekday(Date = 6)) Then

Sheets("Stora lev problem").Range("F3") = Weekday(Date + 4)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

ElseIf (Weekday(Date = 5)) Then
Sheets("Stora lev problem").Range("F3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

Else

Sheets("Stora lev problem").Range("F3") = Weekday(Date + 2)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

End If



--------------------


I added another field and watched what would happen.
In cell E3 it writes 1900-01-01 (The first IF-statement) and 02 in cell
F3 (The second if-statement). Do you know why does the same function
return two different results?

Do you have any idea?

/Anders


--
a94andwi
------------------------------------------------------------------------
a94andwi's Profile: http://www.excelforum.com/member.php...o&userid=21077
View this thread: http://www.excelforum.com/showthread...hreadid=520475


Peter Rooney

Something wrong with undefined functions.
 
Anders,
Does this help?

Sub Problem()

If Weekday(Date) = 6 Then
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)
Else
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 1)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)
End If

If Weekday(Date) = 6 Then
Sheets("Stora lev problem").Range("F3") = Weekday(Date + 4)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)
ElseIf Weekday(Date) = 5 Then
Sheets("Stora lev problem").Range("F3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)
Else
Sheets("Stora lev problem").Range("F3") = Weekday(Date + 2)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)
End If

End Sub

I added brackets around the date functions in your IF statements. It DOES
produce a different result, just not sure if it's what you're looking for.

Regards

Pete
"a94andwi" wrote:


Hello

I tried your code and it seem to work but there are still an error I
can't explain.

Code:
--------------------
If (Weekday(Date = 6)) Then
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)
Else
Sheets("Stora lev problem").Range("E3") = Weekday(Date + 1)
Sheets("Stora lev problem").Range("L4") = Weekday(Date)

End If


If (Weekday(Date = 6)) Then

Sheets("Stora lev problem").Range("F3") = Weekday(Date + 4)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

ElseIf (Weekday(Date = 5)) Then
Sheets("Stora lev problem").Range("F3") = Weekday(Date + 3)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

Else

Sheets("Stora lev problem").Range("F3") = Weekday(Date + 2)
Sheets("Stora lev problem").Range("L5") = Weekday(Date)

End If



--------------------


I added another field and watched what would happen.
In cell E3 it writes 1900-01-01 (The first IF-statement) and 02 in cell
F3 (The second if-statement). Do you know why does the same function
return two different results?

Do you have any idea?

/Anders


--
a94andwi
------------------------------------------------------------------------
a94andwi's Profile: http://www.excelforum.com/member.php...o&userid=21077
View this thread: http://www.excelforum.com/showthread...hreadid=520475




All times are GMT +1. The time now is 04:13 PM.

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