You are here:

Excel/Userform not picking up dates

Advertisement


Question
Dates were initially maintained in numerical format 1,2,3 in column A and a user form code was developed around it.

Below is part of the code -

Private Sub cmdAdd_Click()
Dim iRow As Long, iCol As Long, res As Variant
Dim r As Range, r1 As Range, r2 As Range

   If Me.cmbDate = "" Then
       MsgBox "please select a date"
       cmbDate.SetFocus
       Exit Sub
   End If
   With ActiveSheet
    Set r = .Columns(1).Cells
    res = Application.Match(CLng(CDate(Me.cmbDate.Value)), r, 0)
       If Not IsError(res) Then
         Set r1 = r(res)
         iRow = r1.Row
       Else
         MsgBox Me.cmbDate.Value & " was not found"
         Exit Sub
       End If
   End With
   If Me.cmbCat = "" Then
       MsgBox "please select a category"
       cmbCat.SetFocus
       Exit Sub
   End If
   With ActiveSheet
       iCol = .Range("3:3").Find(Me.cmbCat.Value, LookIn:=xlValues, LookAt:=xlWhole).Column
   End With

   If TextBoxTime = "" Then
       MsgBox "please enter Time"
       TextBoxTime.SetFocus
       Exit Sub
   End If
   With ActiveSheet
       Set r2 = .Cells(3, iCol).Offset(0, 1)
       If r2.MergeArea.Address <> r2.Address Then
         If Me.TextBoxCounts = "" Then
         MsgBox "please enter Counts"
         Me.TextBoxCounts.SetFocus
         Exit Sub
         End If
       End If
   End With

With ActiveSheet
   .Cells(iRow, iCol) = Me.TextBoxTime.Value
   'If r2.MergeArea.Address <> r2.Address Then
       If Len(Trim(Me.TextBoxCounts.Value)) > 0 Then
        .Cells(iRow, iCol + 1) = Me.TextBoxCounts.Value
       End If
   'End If
   
End With

Now the dates are maintained in dd-mm-yyyy format. I changed the date format accordingly. Now the problem is user form is not picking up this format.

Which part of the above code should be changed so that the userform can pick the new date format.

My guess is some change has to be made on below code -

    res = Application.Match(CLng(CDate(Me.cmbDate.Value)), r, 0)

Problem could be better understood if I could send you my sample sheet

Answer
Instead of

res = Application.Match(CLng(CDate(Me.cmbDate.Value)), r, 0)

try something like

Set r1 = r.Find(What:=cmbDate.value)
If r1 is nothing then
    MsgBox cmbDate.Value & " was not found"
    Exit Sub
else
    iRow = r1.Row
End If

In the future, if you want to refer to an Excel, set up a dropbox.com account, and use it to make the Excel file shareable when you ask a question like this.
About Excel
This topic answers questions related to Microsoft Excel spreadsheet (or workbook) stand-alone or Mircrosoft Office Excel including Excel 2003, Excel 2007, Office 2000, and Office XP. You can get Excel help on Excel formulas(or functions), Excell macros, charting in Excel, advanced features, and the general use of Excel. This does not provide a general Excel tutorial nor the basics of using a spreadsheet. It provides specific answers to using Microsoft Excel only. If you do not see your Excel question answered in this area then please ask an Excel question here

Excel

All Answers


Answers by Expert:


Ask Experts

Volunteer


Stuart Resnick

Expertise

I can answer questions relating to MS Excel formulas, or to programming with vba (Visual Basic for Applications) in the Excel environment. Please follow the following guidelines: your question should focus on one specific issue you want to learn. It's beyond the scope of this free service for me to create entire projects or complex vba solutions for you from scratch. You should be able to do most of the work yourself, and come here when you need help with a specific point you're stuck on. ALWAYS include a simple, concrete example illustrating what you want to learn. Explain this example in detail in the text of your question (what data is in which cells of which sheets, etc). Be very precise about the results you want, using this sample to make the logic clear. Always keep these examples SIMPLE. Never e.g. use 18 worksheets in your example if using 2 or 3 will do. Never use ranges like AI567:BB865 if using a range like A1:B3 will do. Thanks.

Experience

As a consultant, I've designed Excel tools since the 90s, working for the Federal Reserve Bank, AT&T, and (currently) Gap Inc.

Education/Credentials
My only "education" comes from 2 decades of doing spreadsheet/programming work, with major SF Bay Area corporations such as AT&T, Federal Reserve Bank, and Gap Inc.

©2016 About.com. All rights reserved.