ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Code runs without error but doesn't print output (https://www.excelbanter.com/excel-programming/330314-code-runs-without-error-but-doesnt-print-output.html)

Robert Hargreaves

Code runs without error but doesn't print output
 
Hi Everyone

I am using the following code to make a userform enter into a worksheet the
data collected following a button press. It does not find the cell as it
gives NA in the messagebox.

If I do Not make an entry in the textbox (txtdate) the code does search and
run correctly because it finds the next blank cell in the column and returns
$A$96

I have thought it may be due to the way that the formatting was set and that
it might not match in the computers eye. Do I need CLng or is it not this?

The calendar name is calendar1 and I have tried this in the place of
txtdate.value

If you have any ideas please let me know.

Rob

Code ****
Private Sub cmdenterinfo_Click()

Dim TheDate As String
Dim CellAddr As Variant

ActiveWorkbook.Sheets("York Naburn").Activate

TheDate = txtdate.Value

CellAddr = FindDateAddress("York Naburn", "A", TheDate)

MsgBox "The date " & TheDate & " is in cell " & CellAddr

If Not CellAddr = "NA" Then
With Range(CellAddr)
.Offset(0, 3) = txtnaburncrude.Value
.Offset(0, 4) = txtsbr1amm.Value
.Offset(0, 5) = txtsbr1bod.Value
.Offset(0, 6) = txtsbr2amm.Value
.Offset(0, 7) = txtsbr2bod.Value
.Offset(0, 8) = txtsbr3amm.Value
.Offset(0, 9) = txtsbr3bod.Value
.Offset(0, 10) = txtsbr4amm.Value
.Offset(0, 11) = txtsbr4bod.Value
.Offset(0, 12) = txt3wksamm.Value
.Offset(0, 13) = txt3wksbod.Value
.Offset(0, 18) = txtsbr1sbl.Value
.Offset(0, 19) = txtsbr2sbl.Value
.Offset(0, 20) = txtsbr3sbl.Value
.Offset(0, 21) = txtsbr4sbl.Value
.Offset(0, 24) = txtsbr1mlss.Value
.Offset(0, 25) = txtsbr1mlss.Value
.Offset(0, 26) = txtsbr1mlss.Value
.Offset(0, 27) = txtsbr1mlss.Value
End With
End If

Range("A1").Select

Unload Me

End Sub

Public Function FindDateAddress(SheetName, ColLetter, TheDate) As String

Dim c As Variant

With Worksheets(SheetName).Columns(ColLetter & ":" & ColLetter)
Set c = .Find(TheDate, LookIn:=xlFormulas, lookat:=xlPart)
If Not c Is Nothing Then
FindDateAddress = c.Address
Else
FindDateAddress = "NA"
End If
End With
End Function





Bernie Deitrick

Code runs without error but doesn't print output
 
Robert,

Try this, since TheDate is a string:

Set c = .Find(DateValue(TheDate), LookIn:=xlFormulas, lookat:=xlPart)

HTH,
Bernie
MS Excel MVP


"Robert Hargreaves" wrote in message
...
Hi Everyone

I am using the following code to make a userform enter into a worksheet

the
data collected following a button press. It does not find the cell as it
gives NA in the messagebox.

If I do Not make an entry in the textbox (txtdate) the code does search

and
run correctly because it finds the next blank cell in the column and

returns
$A$96

I have thought it may be due to the way that the formatting was set and

that
it might not match in the computers eye. Do I need CLng or is it not

this?

The calendar name is calendar1 and I have tried this in the place of
txtdate.value

If you have any ideas please let me know.

Rob

Code ****
Private Sub cmdenterinfo_Click()

Dim TheDate As String
Dim CellAddr As Variant

ActiveWorkbook.Sheets("York Naburn").Activate

TheDate = txtdate.Value

CellAddr = FindDateAddress("York Naburn", "A", TheDate)

MsgBox "The date " & TheDate & " is in cell " & CellAddr

If Not CellAddr = "NA" Then
With Range(CellAddr)
.Offset(0, 3) = txtnaburncrude.Value
.Offset(0, 4) = txtsbr1amm.Value
.Offset(0, 5) = txtsbr1bod.Value
.Offset(0, 6) = txtsbr2amm.Value
.Offset(0, 7) = txtsbr2bod.Value
.Offset(0, 8) = txtsbr3amm.Value
.Offset(0, 9) = txtsbr3bod.Value
.Offset(0, 10) = txtsbr4amm.Value
.Offset(0, 11) = txtsbr4bod.Value
.Offset(0, 12) = txt3wksamm.Value
.Offset(0, 13) = txt3wksbod.Value
.Offset(0, 18) = txtsbr1sbl.Value
.Offset(0, 19) = txtsbr2sbl.Value
.Offset(0, 20) = txtsbr3sbl.Value
.Offset(0, 21) = txtsbr4sbl.Value
.Offset(0, 24) = txtsbr1mlss.Value
.Offset(0, 25) = txtsbr1mlss.Value
.Offset(0, 26) = txtsbr1mlss.Value
.Offset(0, 27) = txtsbr1mlss.Value
End With
End If

Range("A1").Select

Unload Me

End Sub

Public Function FindDateAddress(SheetName, ColLetter, TheDate) As String

Dim c As Variant

With Worksheets(SheetName).Columns(ColLetter & ":" & ColLetter)
Set c = .Find(TheDate, LookIn:=xlFormulas, lookat:=xlPart)
If Not c Is Nothing Then
FindDateAddress = c.Address
Else
FindDateAddress = "NA"
End If
End With
End Function








All times are GMT +1. The time now is 05:08 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com