Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
I'm trying to get the month from a date representation as follows ...
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call .... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
Your code works fine for me with column C formatted as a date. Might try
changing to this code to see if it helps identify the problem for you. Your code is in the worksheet's code module, isn't it? You can check by right-clicking the sheet's name tab and choosing [View Code] from the list. Your code should be visible when the VB Editor opens. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String If IsDate(Target) Then strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else MsgBox "Not a date: " & Target.Value End If Else Exit Sub End If End Sub "Chip Dukes" wrote: I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
Every time you make a change to the worksheet, the worksheet change event is
called. The only problem I see is updated below. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Application.EnableEvents= False 'Added Range("A20").Value = strDate Application.EnableEvents= True 'Added Else Exit Sub End If -- HTH, Barb Reinhardt "Chip Dukes" wrote: I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
You may want to test target for a value as well. Or do something like this
if not isempty(target) then 'Do something end if -- HTH, Barb Reinhardt "Chip Dukes" wrote: I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
hi
i copied your code. when i enter a date in column c (target column), it puts april in A20 so the code seems to be working fine. what are you doing to trigger the code?? regards FSt1 "Chip Dukes" wrote: I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
"Chip Dukes" wrote:
Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" The basic paradigm -- strDate = Format(Target.Value, "mmmm") -- works fine for me, whether Target.Value is a date serial number or even a string recognized as a date. But it seems odd to me that you are assigning the result to the same cell -- Range("A20") -- for any single-cell change in column 3. Not sure if you dumbed down the code fragment in an effort to isolate the error, or if you are inadvertently executing the Format conversion for unexpected cells in column 3. (Even so, I have yet to encounter a situation where that code would result in an "object required" runtime error. Nonetheless....) If you are looking for a change in a specific cell, you might change your If expression to something of the form Target = Range("C1"). If that does not solve the problem, feel free to send your workbook to me. Send it to joe2004 "at" hotmail.com. Aside.... It would be prudent to disable events when changing a cell within an event macro. To wit: Dim strDate As String Application.EnableEvents = False strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Application.EnableEvents = True Also, `Else: Exit Sub` is superfluous in your code fragement. Again, not sure if that's the result of simplifying the example. ----- original message ----- "Chip Dukes" wrote: I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
What I've got below tested fine and tests to make sure the value that was
entered can be seen as a date. '------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 And _ IsDate(Target.Value) Then Dim dteDate As Date Dim strDate As String strDate = CStr(Target.Value) dteDate = CDate(strDate) Range("A20").Value = Format(dteDate, "mmmm") Else Exit Sub End If End Sub '------------------------------------- Steve Yandl "Chip Dukes" wrote in message ... I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
Others have addressed your main question, I just thought I would mention to
you (and the others out there who weren't aware of it) that VB has a MonthName function... it takes the month number as its first argument and an optional Boolean second argument letting you control whether the full or abbreviated month name it returned. So, the code in the True portion of your If/Then/Else block could have be this... Range("A20").Value = MonthName(Month(Target.Value)) -- Rick (MVP - Excel) "Chip Dukes" wrote in message ... I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Month name from Date value in cell
and just to add for those who might be interested.
it also has a weekday function. Range("A20").value = WeekdayName(Weekday(Target.Value) FSt1 "Rick Rothstein" wrote: Others have addressed your main question, I just thought I would mention to you (and the others out there who weren't aware of it) that VB has a MonthName function... it takes the month number as its first argument and an optional Boolean second argument letting you control whether the full or abbreviated month name it returned. So, the code in the True portion of your If/Then/Else block could have be this... Range("A20").Value = MonthName(Month(Target.Value)) -- Rick (MVP - Excel) "Chip Dukes" wrote in message ... I'm trying to get the month from a date representation as follows ... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Target.Cells.Count = 1 Then Dim strDate As String strDate = Format(Target.Value, "mmmm") Range("A20").Value = strDate Else Exit Sub End If End Sub The error I am getting is ... "Object Required" on the ... strDate = Format(Target.Value, "mmmm") ... line by which I'm guessing Target.Value is not being seen as a date type ... Any ideas as to how I could get the month from a value entered into a call ... the value will always be in the form 5/24/55 ... from which I need the string "May" Chip Dukes (New to Excel programming) . |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Date arithmetic: adding 1 month to prior end of month date | Excel Worksheet Functions | |||
Sort month/date/year data using month and date only | Excel Discussion (Misc queries) | |||
How can i change cell colour depending on month of date in cell? | Excel Discussion (Misc queries) | |||
Calculate month-end date from date in adjacent cell? | Excel Worksheet Functions | |||
Increasing cell date by a month | Excel Programming |