+ Reply to Thread
Results 1 to 5 of 5

How to fill value in cell based on date criteria?

  1. #1
    Registered User
    Join Date
    10-04-2005
    Location
    NYC <--> Lagos
    Posts
    24

    Question How to fill value in cell based on date criteria?

    If value is column A is Jan-05, fill in value of 222,222 in matching column E.
    If value in column A is Feb-05, fill in value of 333,333 in matchng column E.
    Column A is in this format (3/12/05).

    How do i achieve this with VBA?
    Thanks in advance

  2. #2
    cush
    Guest

    RE: How to fill value in cell based on date criteria?

    Without knowing how many rows you want to check, or whether the pattern in
    Col E
    will continue adding 111111 each time (which is assumed in the following
    code) you might try something like the following. Adjust as needed

    Option Explicit

    Sub CheckDate()
    Dim i As Integer, j As Integer, k As Long

    j = 1
    k = 222222

    For i = 1 To 2 'number of rows to check
    If Cells(i, 1) >= DateValue(j & "/1/2005") _
    And Cells(i, 1) <= DateValue(j + 1 & "/1/2005") - 1 Then
    Cells(i, 5) = k
    Else
    'do nothing or maybe something else
    End If
    j = j + 1
    k = k + 111111

    Next i

    End Sub

    "Mslady" wrote:

    >
    > If value is column A is Jan-05, fill in value of 222,222 in matching
    > column E.
    > If value in column A is Feb-05, fill in value of 333,333 in matchng
    > column E.
    > Column A is in this format (3/12/05).
    >
    > How do i achieve this with VBA?
    > Thanks in advance
    >
    >
    > --
    > Mslady
    > ------------------------------------------------------------------------
    > Mslady's Profile: http://www.excelforum.com/member.php...o&userid=27776
    > View this thread: http://www.excelforum.com/showthread...hreadid=480299
    >
    >


  3. #3
    Registered User
    Join Date
    10-04-2005
    Location
    NYC <--> Lagos
    Posts
    24
    Hi Cush, thanks for you prompt response:

    but what i want is to check range of column A.
    the date is in this format month-day-year i.e. "3/12/05" meaning March 12, 2005.
    No Column E will be any value.

    If column A is January 2005 fill in 949007 in corresponding cells in column E
    If column A is February 2005 put 104332

    I am only doing for these 2 months. And the values to be added are fixed. I just used 11111 and 22222 to give examples, it's not continuous for all the months.

    Thanks.

    Quote Originally Posted by cush
    Without knowing how many rows you want to check, or whether the pattern in
    Col E
    will continue adding 111111 each time (which is assumed in the following
    code) you might try something like the following. Adjust as needed

    Option Explicit

    Sub CheckDate()
    Dim i As Integer, j As Integer, k As Long

    j = 1
    k = 222222

    For i = 1 To 2 'number of rows to check
    If Cells(i, 1) >= DateValue(j & "/1/2005") _
    And Cells(i, 1) <= DateValue(j + 1 & "/1/2005") - 1 Then
    Cells(i, 5) = k
    Else
    'do nothing or maybe something else
    End If
    j = j + 1
    k = k + 111111

    Next i

    End Sub

    "Mslady" wrote:

    >
    > If value is column A is Jan-05, fill in value of 222,222 in matching
    > column E.
    > If value in column A is Feb-05, fill in value of 333,333 in matchng
    > column E.
    > Column A is in this format (3/12/05).
    >
    > How do i achieve this with VBA?
    > Thanks in advance
    >
    >
    > --
    > Mslady
    > ------------------------------------------------------------------------
    > Mslady's Profile: http://www.excelforum.com/member.php...o&userid=27776
    > View this thread: http://www.excelforum.com/showthread...hreadid=480299
    >
    >

  4. #4
    Nigel
    Guest

    Re: How to fill value in cell based on date criteria?

    Mslady

    This will read the whole of column A on the active sheet and check column A
    for dates, if the month is 1 or 2 then the values 1111111 or 2222222 are
    placed in column E. If you need to detect other months add additional
    conditions, change the assignment values (e.g. 111111 and 222222) as
    required.
    You might wish to place a line after the If IsDate(.Value) Then to force
    column E value to a blank - in case a change of date occurs and the value is
    no longer valid for that date. E.g. .Cells(xr,5) = ""

    Dim xlr As Long, xr As Long
    With ActiveSheet
    xlr = .Cells(Rows.Count, "A").End(xlUp).Row
    For xr = 1 To xlr
    With .Cells(xr, 1)
    If IsDate(.Value) Then
    If Month(.Value) = 1 Then .Cells(xr, 5) = "111111"
    If Month(.Value) = 2 Then .Cells(xr, 5) = "222222"
    End If
    End With
    Next xr
    End With


    --
    Cheers
    Nigel



    "Mslady" <[email protected]> wrote in
    message news:[email protected]...
    >
    > If value is column A is Jan-05, fill in value of 222,222 in matching
    > column E.
    > If value in column A is Feb-05, fill in value of 333,333 in matchng
    > column E.
    > Column A is in this format (3/12/05).
    >
    > How do i achieve this with VBA?
    > Thanks in advance
    >
    >
    > --
    > Mslady
    > ------------------------------------------------------------------------
    > Mslady's Profile:

    http://www.excelforum.com/member.php...o&userid=27776
    > View this thread: http://www.excelforum.com/showthread...hreadid=480299
    >




  5. #5
    Registered User
    Join Date
    10-04-2005
    Location
    NYC <--> Lagos
    Posts
    24
    Brilliant!!!!
    This works perfectly. Thanks Nigel

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1