England Forum - UK Forum
 

Go Back   England Forum - UK Forum > Computers and Technology > Developers Forum > Visual Basic Forum

 

 


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-31-2008
Peon
 
Join Date: May 2008
Posts: 3
Default Check a cell format using Visual Basic?

I have a single cell with a cell format of text.

However i want the cell to only take an expiry date of 12/09 for example, also at the same time checking that the expiry date is greater than the current date.
but i need this as vb code, writtern in a IF statement.

I need to have the forward slash in the format as well


I do have limited knowledge on programming, can someone please simplify an anwser to my question, with some wriiten code thankyou.

e.g:
If Range(C17:C19).Text = ? or sum thing like this thankyou, must be in an If

hope someone can help thankyou.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Sponsored Links

  #2 (permalink)  
Old 05-31-2008
Peon
 
Join Date: May 2008
Posts: 1
Default

All dates contain year, month and day, but can be displayed in a variety of ways. Excel actually stores these as a single number (serial date). If you change the cell format of a cell containg a date to GENERAL you will see a number. So the format of your cell is actually Date format not text.

18/03/2008 is actually 39525. So 39526 is the 19th March (39525.5 is midday on the 18th - get the idea?) .

Dates are handled differently in VBA. For example on a worksheet
=TODAY() return todays date and
=TODAY()+1 returns tomorrows date.
In VB TODAY is replaced with DATE so the line would read

myvariable = DATE

This can be confusing as the worksheet uses DATE in a different way
=DATE(year,month,day).

If all you want to do is check if one date is after another (ie greater than) use a simple if statement

if range("C19")>range("C17) then dosomething....

if you have multiple entries to check the use a FOR TO loop to check each on

for f=1 to 10
if range("C" & f )>range("C" & f+1) then dosomething....
next f

To use the slash in the code you would need to use something like this;

MyDate = Range("C12")
If MyDate < #1/1/2008# Then MsgBox ("Hello") Else: MsgBox ("Goodbye")

Bear in mind that you don't want to change the code every day so you need to pick up the relevant date automatically.

Finally, do a web search on 'using dates in vba', there are loads of sites with handy hints and tips. the ones that are ten years old contain the best information for the beginner (even if the pages look awful).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 01:50 PM.


Powered by vBulletin® Version 3.6.10
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0 RC7
Sedo - Buy and Sell Domain Names and Websites project info: englanddebate.co.uk Statistics for project englanddebate.co.uk etracker® web controlling instead of log file analysis

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176