Home |
Search |
Today's Posts |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This is hard to explain why I do it this way but I will try. I have 5 cost
items that get updated occasionly. Not all 5 get updated, but at least one will when the userform is started. In the userform activate code I set 2 labels and a dtpicker for each cost item that has been changed. The cost items that have not been changed I set the labels and dtpicker visible to false. The way the code is written they will always be in order 1,2,3, etc. so the subven should always been subven(1,2),subven(2,2),etc. It shouldn't skip the first number in the array. Once the subven array has collected all the values, I then find the cost item using set fcell = .find******** once it finds the right cell it then offsets to the correct cell to put the new date in. "Rick Rothstein (MVP - VB)" wrote: I'm not so sure I like the logic of your code. Your assignment of DatePicker dates is contingent on Label controls being visible, so it would seem if the label is not visible, nothing is assigned to the array for that element and increment a counter. HOWEVER, when you assign the array elements to the cells, you just iterate through the counter without worrying about which DatePicker assignments caused the counter to increase. For example, if the Label5 and Label7 are not visible and Label9 and Label11 are (it appears Label2 always is visible), your counter will increment to 3 and the array assignments will be to subven(1, 2), subven(4, 2) and subven(5, 2). However, when you assign these to the cells, you will be assigning subven(1, 2), subven(2, 2), subven(3, 2) because your loop iterates from 1 to cntr (your counter)... those last two array elements do NOT have dates in them (so I'm guessing 0 gets assigned to the cells)! Rick "ranswrt" wrote in message ... I have the following code that takes the date from 5 DTPickers on a userform the putts them into cell on a worksheet. Private Sub UserForm_Terminate() Dim subven(5, 2) As Variant Dim db As String Dim nme As String Dim cntr As Integer Dim i As Integer Dim rng As Range Dim fcell As Range db = Range("currentdb") nme = Replace(db, " ", "") nme = LCase(nme) Call stopautocalc cntr = 1 subven(1, 1) = Label2.caption subven(1, 2) = DTPicker1.Value If Label5.Visible = True Then cntr = cntr + 1 subven(2, 1) = Label5.caption subven(2, 2) = DTPicker2.Value End If If Label7.Visible = True Then cntr = cntr + 1 subven(3, 1) = Label7.caption subven(3, 2) = DTPicker3.Value End If If Label9.Visible = True Then cntr = cntr + 1 subven(4, 1) = Label9.caption subven(4, 2) = DTPicker4.Value End If If Label11.Visible = True Then cntr = cntr + 1 subven(5, 1) = Label11.caption subven(5, 2) = DTPicker5.Value End If Sheets(db & " db").Unprotect Password:="****" Set rng = Range(nme & "subvenrng") For i = 1 To cntr With rng Set fcell = .Find(what:=subven(i, 1), LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByColumns) fcell.Offset(0, 1) = subven(i, 2) End With Next Sheets(db & " db").Protect Password:="****" Call startautocalc End Sub The problem I am having is that it is putting the wrong date into 'fcell'. The date it is putting is '1/0/1900' instead of the date that was selected with the DTPicker control. I have formatted the cell 'date mm/dd/yy'. I have also tried other number formats. Any suggestions on what to do? |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Date from DTPicker | Excel Programming | |||
DTpicker number format | Excel Programming | |||
Using DTPicker to change date in a cell when user selects cell? | Excel Programming | |||
set date on dtpicker | Excel Discussion (Misc queries) | |||
code to convert date from TEXT format (03-02) to DATE format (200203) | Excel Programming |