Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 124
Default Please Help, Code Locks up

Can someone tell me what is wrong with this code? My attempt is what Cell C6
equals a specific object name; a range of other cells will equal the value of
another cell. I can get it to work; this issue is that is only works once.
When the program runs, it works as plan but locks up excel and I end up
having to go through "Ctrl+Alt+Delete" in order to have access to my computer
again.

Here is my code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6)
Range("L6").Value = Range(R6)
Range("C8").Value = Range(S6)
Range("H8").Value = Range(T6)
Range("L8").Value = Range(U6)
Range("C10").Value = Range(V6)
Range("H10").Value = Range(W6)
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If
End With
End Sub

  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 5,939
Default Please Help, Code Locks up

I see a couple of things with your code.
1. Your With Target statement does nothing since you never reference the
target so you can drop that line and the End With.

2. I like that you have referenced the Value on th eleft side of the equal
statements but you dont bother to do it on the right. While this is not wrong
(as Value is the default property of a range) it would be nice to see it on
the right side also.

3. The biggest thing is that your change code causes a change, which will in
turn fire the change event which will in turn cause the code to execute
ad-infinitum. You have a recursive loop. You need to disable events before
you make the change and then turn them back on again at the end.

Give this code a try...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False

If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6).Value
Range("L6").Value = Range(R6).Value
Range("C8").Value = Range(S6).Value
Range("H8").Value = Range(T6).Value
Range("L8").Value = Range(U6).Value
Range("C10").Value = Range(V6).Value
Range("H10").Value = Range(W6).Value
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If

ErrorHandler:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Ryan" wrote:

Can someone tell me what is wrong with this code? My attempt is what Cell C6
equals a specific object name; a range of other cells will equal the value of
another cell. I can get it to work; this issue is that is only works once.
When the program runs, it works as plan but locks up excel and I end up
having to go through "Ctrl+Alt+Delete" in order to have access to my computer
again.

Here is my code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6)
Range("L6").Value = Range(R6)
Range("C8").Value = Range(S6)
Range("H8").Value = Range(T6)
Range("L8").Value = Range(U6)
Range("C10").Value = Range(V6)
Range("H10").Value = Range(W6)
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If
End With
End Sub

  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 124
Default Please Help, Code Locks up

THank you for the help, that was really driving me nuts. There is still one
problem that I havent been able to get. There code

Range("H6").Value = Range("Q6").Value

doesnt work. It does work when I manually set the value.

Range("H6").Valvue = "123456"

It doesnt make since for it worked with my original formula. Please advice

"Jim Thomlinson" wrote:

I see a couple of things with your code.
1. Your With Target statement does nothing since you never reference the
target so you can drop that line and the End With.

2. I like that you have referenced the Value on th eleft side of the equal
statements but you dont bother to do it on the right. While this is not wrong
(as Value is the default property of a range) it would be nice to see it on
the right side also.

3. The biggest thing is that your change code causes a change, which will in
turn fire the change event which will in turn cause the code to execute
ad-infinitum. You have a recursive loop. You need to disable events before
you make the change and then turn them back on again at the end.

Give this code a try...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False

If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6).Value
Range("L6").Value = Range(R6).Value
Range("C8").Value = Range(S6).Value
Range("H8").Value = Range(T6).Value
Range("L8").Value = Range(U6).Value
Range("C10").Value = Range(V6).Value
Range("H10").Value = Range(W6).Value
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If

ErrorHandler:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Ryan" wrote:

Can someone tell me what is wrong with this code? My attempt is what Cell C6
equals a specific object name; a range of other cells will equal the value of
another cell. I can get it to work; this issue is that is only works once.
When the program runs, it works as plan but locks up excel and I end up
having to go through "Ctrl+Alt+Delete" in order to have access to my computer
again.

Here is my code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6)
Range("L6").Value = Range(R6)
Range("C8").Value = Range(S6)
Range("H8").Value = Range(T6)
Range("L8").Value = Range(U6)
Range("C10").Value = Range(V6)
Range("H10").Value = Range(W6)
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If
End With
End Sub

  #4   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 124
Default Please Help, Code Locks up

Nevermind...I figured it out.


I had to go a different way, I ended up using VLOOKUP but thank you again.


"Jim Thomlinson" wrote:

I see a couple of things with your code.
1. Your With Target statement does nothing since you never reference the
target so you can drop that line and the End With.

2. I like that you have referenced the Value on th eleft side of the equal
statements but you dont bother to do it on the right. While this is not wrong
(as Value is the default property of a range) it would be nice to see it on
the right side also.

3. The biggest thing is that your change code causes a change, which will in
turn fire the change event which will in turn cause the code to execute
ad-infinitum. You have a recursive loop. You need to disable events before
you make the change and then turn them back on again at the end.

Give this code a try...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False

If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6).Value
Range("L6").Value = Range(R6).Value
Range("C8").Value = Range(S6).Value
Range("H8").Value = Range(T6).Value
Range("L8").Value = Range(U6).Value
Range("C10").Value = Range(V6).Value
Range("H10").Value = Range(W6).Value
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If

ErrorHandler:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Ryan" wrote:

Can someone tell me what is wrong with this code? My attempt is what Cell C6
equals a specific object name; a range of other cells will equal the value of
another cell. I can get it to work; this issue is that is only works once.
When the program runs, it works as plan but locks up excel and I end up
having to go through "Ctrl+Alt+Delete" in order to have access to my computer
again.

Here is my code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If Range("C6") = "Object Name" Then
Range("H6").Value = Range(Q6)
Range("L6").Value = Range(R6)
Range("C8").Value = Range(S6)
Range("H8").Value = Range(T6)
Range("L8").Value = Range(U6)
Range("C10").Value = Range(V6)
Range("H10").Value = Range(W6)
Else
Range("H6").Value = ""
Range("L6").Value = ""
Range("C8").Value = ""
Range("H8").Value = ""
Range("L8").Value = ""
Range("C10").Value = ""
Range("H10").Value = ""
End If
End With
End Sub

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
2003 excel locks up rojo645 Excel Discussion (Misc queries) 3 March 24th 07 09:01 PM
Save as locks up Excel Greg Q Excel Discussion (Misc queries) 1 April 24th 06 07:34 PM
Excel locks up when trying to save The-Bee Excel Discussion (Misc queries) 3 January 5th 06 01:06 AM
Autofilter Locks??? cybermrt Excel Worksheet Functions 2 November 24th 05 07:46 AM
pcanywhere locks up excel ccart123 Excel Discussion (Misc queries) 0 August 23rd 05 08:41 PM


All times are GMT +1. The time now is 08:37 AM.

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

About Us

"It's about Microsoft Excel"