Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Help: Can't write to the right sheet

This is probably a severe case of The Blindingly Obvious, but I just can't get
this simple task to work.

I've put a button on worksheet "Records" who's code is supposed to check if cell
C5 on sheet "Input" has a value in it. If cell C5 on "Input" doesn't have a
value then the current time is written to it and the workbook is closed. If
there is a value then the workbook just closes. What's happening though is that
the Now value is being written to cell C5 on the "Records" worksheet.

I've tried more variations than the Marquise de Sade, and possibly with the same
pain, but just aren't getting anywhere, so any help would be seriously appreciated.

Note: I've tried too many variations of selecting the active sheet to list.
----------------------------------------
Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False

Worksheets("Input").Activate

'Test for End Time value. If empty then set C5 to Now()
If Range("C5") = "" Then Range("C5") = Now

ThisWorkbook.Close savechanges:=True
Application.ScreenUpdating = True

End Sub
-----------------------------------------

Alan Burns
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,092
Default Can't write to the right sheet

Alan, generally speaking, a Command Button will only work with ranges on the
same sheet as the button. Move your code to a general module and call it
from the button code.

Private Sub cmbCloseWorkbook2_Click()
TestTime
End Sub

In a general module:

Sub TestTime()

'Close (and save) this workbook only
Application.ScreenUpdating = False

Worksheets("Input").Activate

'Test for End Time value. If empty then set C5 to Now()
If Range("C5") = "" Then Range("C5") = Now

ThisWorkbook.Close savechanges:=True
Application.ScreenUpdating = True

End Sub

Mike F

"Alan Burns" wrote in message
...
This is probably a severe case of The Blindingly Obvious, but I just can't
get this simple task to work.

I've put a button on worksheet "Records" who's code is supposed to check
if cell C5 on sheet "Input" has a value in it. If cell C5 on "Input"
doesn't have a value then the current time is written to it and the
workbook is closed. If there is a value then the workbook just closes.
What's happening though is that the Now value is being written to cell C5
on the "Records" worksheet.

I've tried more variations than the Marquise de Sade, and possibly with
the same pain, but just aren't getting anywhere, so any help would be
seriously appreciated.

Note: I've tried too many variations of selecting the active sheet to
list.
----------------------------------------
Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False

Worksheets("Input").Activate

'Test for End Time value. If empty then set C5 to Now()
If Range("C5") = "" Then Range("C5") = Now

ThisWorkbook.Close savechanges:=True
Application.ScreenUpdating = True

End Sub
-----------------------------------------

Alan Burns



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Help: Can't write to the right sheet


Hi,

It's usually best to explicitly reference the parent object, in thi
case the parent of the range, C5. Furthermore, you do not need t
ACTIVATE the sheet to reference or write to the sheet. You will writ
more efficient code if you only use the Activate and Select methods t
position this display for what you want to user to see AFTER th
procedure(s) complete.

Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False

With Worksheets("Input")
'Test for End Time value. If empty then set C5 to Now()
If .Range("C5") = "" Then .Range("C5") = Now
End With

ThisWorkbook.Close savechanges:=True
Application.ScreenUpdating = True

End Su

--
SkipVough
-----------------------------------------------------------------------
SkipVought's Profile: http://www.msusenet.com/member.php?userid=198
View this thread: http://www.msusenet.com/t-187051411

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Can't write to the right sheet

Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False



With Worksheets("Input")

'Test for End Time value. If empty then set C5 to Now()
If .Range("C5") = "" Then .Range("C5") = Now

End With

ThisWorkbook.Close savechanges:=True
End Sub

Should work if you want to keep the code in the Click event.

--
Regards,
Tom Ogilvy



"Alan Burns" wrote in message
...
This is probably a severe case of The Blindingly Obvious, but I just can't

get
this simple task to work.

I've put a button on worksheet "Records" who's code is supposed to check

if cell
C5 on sheet "Input" has a value in it. If cell C5 on "Input" doesn't have

a
value then the current time is written to it and the workbook is closed.

If
there is a value then the workbook just closes. What's happening though is

that
the Now value is being written to cell C5 on the "Records" worksheet.

I've tried more variations than the Marquise de Sade, and possibly with

the same
pain, but just aren't getting anywhere, so any help would be seriously

appreciated.

Note: I've tried too many variations of selecting the active sheet to

list.
----------------------------------------
Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False

Worksheets("Input").Activate

'Test for End Time value. If empty then set C5 to Now()
If Range("C5") = "" Then Range("C5") = Now

ThisWorkbook.Close savechanges:=True
Application.ScreenUpdating = True

End Sub
-----------------------------------------

Alan Burns



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Can't write to the right sheet

Tom Ogilvy wrote:
Private Sub cmbCloseWorkbook2_Click()

'Close (and save) this workbook only
Application.ScreenUpdating = False



With Worksheets("Input")

'Test for End Time value. If empty then set C5 to Now()
If .Range("C5") = "" Then .Range("C5") = Now

End With

ThisWorkbook.Close savechanges:=True
End Sub

Should work if you want to keep the code in the Click event.


Many thanks all for your time and help. Problem solved.


AB


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
write formula that icludes data from sheet 1 to sheet 2 of my spr john Excel Worksheet Functions 1 September 14th 07 03:22 AM
Write subtotals to another sheet Gerrym Excel Discussion (Misc queries) 1 March 16th 05 05:08 PM
how to write to other sheet if and only if? Len Canders Excel Worksheet Functions 10 February 16th 05 03:08 AM
how to allow macro to write on a protected sheet MVM Excel Programming 0 January 18th 05 05:05 PM
write two excel sheet imabegginner Excel Programming 0 June 26th 04 04:01 PM


All times are GMT +1. The time now is 04:52 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"