Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Call a proc inside itself (HELP)
Hello,
I have a problem... I call my proc inside itself and here's what happens... for example : **** Sub test() Dim MyYear as Variant Dim AnyString as String MyYear = Inputbox("type your date (yyyy)") Select Case MyYear Case 1900 to 2000 AnyString = "20th Century" Case 2001 to 2050 AnyString = "Begining of 21Th Century" Case else AnyThing = "This is not a valid Date" ' I'M HERE RECALLING THE SAME SUB SO I CAN HAVE THE INPUTBOX AGAIN call test ' (or just test) End Select Msgbox AnyString End sub **** Unfortunatly... if i run my modules and for several time put something else than a number to my inputbox, it will run my inputbox several time but ALSO would run the MSGBOX ANYSTRING as much as time... so i have onr right message and several-1 not as good !! Can anyone tell me what i'm doing wrong PLEASE ! Thnx David. |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Call a proc inside itself (HELP)
Sub test()
Dim MyYear as Variant Dim AnyString as String AnyString = "Invalid Input" Do MyYear = Inputbox("type your date (yyyy)") Select Case MyYear Case 1900 to 2000 AnyString = "20th Century" Case 2001 to 2050 AnyString = "Begining of 21Th Century" Case else AnyString = "Invalid input" End Select Msgbox AnyString Loop While lcase(anystring) = "invalid input" End sub -- Regards, Tom Ogilvy "David" wrote in message ... Hello, I have a problem... I call my proc inside itself and here's what happens... for example : **** Sub test() Dim MyYear as Variant Dim AnyString as String MyYear = Inputbox("type your date (yyyy)") Select Case MyYear Case 1900 to 2000 AnyString = "20th Century" Case 2001 to 2050 AnyString = "Begining of 21Th Century" Case else AnyThing = "This is not a valid Date" ' I'M HERE RECALLING THE SAME SUB SO I CAN HAVE THE INPUTBOX AGAIN call test ' (or just test) End Select Msgbox AnyString End sub **** Unfortunatly... if i run my modules and for several time put something else than a number to my inputbox, it will run my inputbox several time but ALSO would run the MSGBOX ANYSTRING as much as time... so i have onr right message and several-1 not as good !! Can anyone tell me what i'm doing wrong PLEASE ! Thnx David. |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Call a proc inside itself (HELP)
Hello David, Thanks goes out to Tom, again. You noticed to expected behavior of recursion with Excel VBA. Note: Your solution requires a call to a function which returns the desired string value or a error message. Thus the calling function can then drive require loop until a valid date is entered. Answer by community. Sonny Kocak a-sonnykne.microsoft.com Microsoft Developer Support This posting is provided "AS IS" with no warranties, and confers no rights. -------------------- | From: "Tom Ogilvy" | References: | Subject: Call a proc inside itself (HELP) | Date: Tue, 3 Feb 2004 16:32:39 -0500 | Lines: 72 | X-Priority: 3 | X-MSMail-Priority: Normal | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 | Message-ID: | Newsgroups: microsoft.public.excel.programming | NNTP-Posting-Host: host-141-116-172-231.ptr.hqda.pentagon.mil 141.116.172.231 | Path: cpmsftngxa07.phx.gbl!cpmsftngxa10.phx.gbl!TK2MSFTN GXA05.phx.gbl!TK2MSFTNGP08 .phx.gbl!TK2MSFTNGP12.phx.gbl | Xref: cpmsftngxa07.phx.gbl microsoft.public.excel.programming:459001 | X-Tomcat-NG: microsoft.public.excel.programming | | Sub test() | | Dim MyYear as Variant | Dim AnyString as String | AnyString = "Invalid Input" | | Do | MyYear = Inputbox("type your date (yyyy)") | | Select Case MyYear | Case 1900 to 2000 | AnyString = "20th Century" | Case 2001 to 2050 | AnyString = "Begining of 21Th Century" | Case else | AnyString = "Invalid input" | End Select | | Msgbox AnyString | Loop While lcase(anystring) = "invalid input" | End sub | | | -- | Regards, | Tom Ogilvy | | "David" wrote in message | ... | Hello, | I have a problem... | I call my proc inside itself and here's what happens... | | for example : | **** | Sub test() | | Dim MyYear as Variant | Dim AnyString as String | | MyYear = Inputbox("type your date (yyyy)") | | Select Case MyYear | Case 1900 to 2000 | AnyString = "20th Century" | Case 2001 to 2050 | AnyString = "Begining of 21Th Century" | Case else | AnyThing = "This is not a valid Date" | ' I'M HERE RECALLING THE SAME SUB SO I CAN HAVE THE INPUTBOX AGAIN | call test ' (or just test) | End Select | | Msgbox AnyString | End sub | **** | | Unfortunatly... if i run my modules and for several time put something | else | than a number to my inputbox, it will run my inputbox several time but | ALSO | would run the MSGBOX ANYSTRING as much as time... so i have onr right | message and several-1 not as good !! | | Can anyone tell me what i'm doing wrong PLEASE ! | Thnx | | David. | | | | | |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Excel 2007 Data -- SQL Server proc or function with parameter | Excel Discussion (Misc queries) | |||
running proc in excel | Excel Discussion (Misc queries) | |||
Call Center Management: How to calculate 'cost per call' | Excel Discussion (Misc queries) | |||
Additional file with no extension created during File Save As proc | Excel Discussion (Misc queries) | |||
How do you call one Sub from another Sub ? | Excel Programming |