MS Office Forum / Excel / New Users / July 2007
excel same value in two cells
|
|
Thread rating:  |
pls help - 26 Jul 2007 06:40 GMT How can 2 cells have the same values, such that when I edit either cell the change is reflected on both?
squenson - 26 Jul 2007 11:45 GMT It is not possible without using some sophisticated features of event listening and macros. But one should ask the question: what would be the benefits? You can refer the second cell from the first one -- something like A2: =A1, so A1 and A2 will both have the same value and each time you change A1, A2 will change.
>How can 2 cells have the same values, such that when I edit either cell the >change is reflected on both? CLR - 26 Jul 2007 13:18 GMT This macro will do as you describe.........
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then Range("a2").Value = Range("a1").Value Else If Target.Address = "$A$2" Then Range("a1").Value = Range("a2").Value Else End If End If End Sub
Vaya con Dios, Chuck, CABGx3
> How can 2 cells have the same values, such that when I edit either cell the > change is reflected on both? squenson - 26 Jul 2007 13:45 GMT On my version of Excel 2003, if I am in A1 and type 444 then press the down arrow, A1 is being updated with the value from A2...
I would recommend that you replace the first line: Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) by: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
CLR - 26 Jul 2007 14:08 GMT Interesting.....good catch. Thanks for the heads-up.
Vaya con Dios, Chuck, CABGx3
> On my version of Excel 2003, if I am in A1 and type 444 then press the down > arrow, A1 is being updated with the value from A2... [quoted text clipped - 3 lines] > by: > Private Sub Worksheet_Change(ByVal Target As Excel.Range) Sandy Mann - 26 Jul 2007 15:43 GMT Chuck,
You will also have to have a line:
Application.EnableEvents = False
before any changes are made to the sheet and:
Application.EnableEvents = True
before the End Sub to stop the code firing multiple times. For me in XL97 it fires 198 time before VBA thows in the towel.
 Signature HTH
Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Interesting.....good catch. > Thanks for the heads-up. [quoted text clipped - 10 lines] >> by: >> Private Sub Worksheet_Change(ByVal Target As Excel.Range) CLR - 26 Jul 2007 16:10 GMT Hi Sandy......... I bow to your much greater experience, and wish to learn all I can. In this instance, I intentionally left those lines off and do so as a general rule anymore because I like to see things flash as the macro progresses.....sort of in lieu of a progress indicator. I was not aware that their absence could actually affect the operation of the macro itself. I use '97 also, and see no evidence of multiple firings here. How did you conclude that the macro had fired 198 times?
Vaya con Dios, Chuck, CABGx3
> Chuck, > [quoted text clipped - 23 lines] > >> by: > >> Private Sub Worksheet_Change(ByVal Target As Excel.Range) Sandy Mann - 26 Jul 2007 16:37 GMT Hi Chuck,
It was Chip that pointed out to me some time ago that one of my codes was multi-firing because I missed those lines off although I could not see anything happening on the sheet.
The code I used was:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Debug.Print "Chuck" 'Application.EnableEvents = False If Target.Address = "$A$1" Then Range("a2").Value = Range("a1").Value Else If Target.Address = "$A$2" Then Range("a1").Value = Range("a2").Value Else End If End If 'Application.EnableEvents = True End Sub
Then I copied the entries in the Immediate Window and pasted them into a sheet using Paste Special > Unicode Text to find that I had 198 Rows of "Chuck"
What puzzles me is if, with the entries still in the Immediate Window, I change the Debug.Print line to "Chuck2" I only get 65 "Chuck2". If I then clear all the entries in the Immediate Window and run the code again I am back to having 198 entries! Perhaps one of the real experts can explain that to us.
If you un-comment the EnableEvents lines that you will only get one "Chuck"
 Signature Regards,
Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Hi Sandy......... > I bow to your much greater experience, and wish to learn all I can. In [quoted text clipped - 11 lines] > Vaya con Dios, > Chuck, CABGx3 Pete_UK - 26 Jul 2007 17:30 GMT Hi Sandy,
I'm certainly no expert in VBA, but could you possibly have a NOW() function somewhere on the sheet or something similar, which is causing it to recalculate (and therefore change) to trigger the macro?
Just a thought ...
Pete
> Hi Chuck, > [quoted text clipped - 57 lines] > > - Show quoted text - Sandy Mann - 26 Jul 2007 17:56 GMT Hi Pete,
No there is nothing in the sheet apart from the Data in A1 & A2. A1 entered by me, A2 entered by the code.
I think that the Event Procedure is more a sort of "Worksheet_Change or Refresh" than just a Worksheet_Change.
VBA entering the data in A2 is a Worksheet_Change so the code fires again. On the second and subsequent runs although the data in cell is the same as the code in entering it still fires the code again and so on..... or so says Chip.
Did you try the code and get a different result?
 Signature Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Hi Sandy, > [quoted text clipped - 5 lines] > > Pete Gord Dibben - 26 Jul 2007 18:03 GMT Pete
I tested on a new workbook with nothing in it and received the multiple Chuck's as Sandy did. 198 to be exact.
One Chuck with events disabled.
Gord
>Hi Sandy, > [quoted text clipped - 67 lines] >> >> - Show quoted text - CLR - 26 Jul 2007 18:16 GMT Actually, in some "circles", 198 "Chuck's" might be condsidered more desirable than just one.........I love my mirror)..... <G>
Vaya con Dios, Chuck, CABGx3
> Pete > [quoted text clipped - 76 lines] > >> > >> - Show quoted text - Gord Dibben - 26 Jul 2007 18:57 GMT Chuck
If you're going to start disabling events you should trap for errors so you re-enable if the code errors.
On Error Goto stoppit Application.EnableEvents = False
'code here
stoppit: Application.EnableEvents = True
Gord
>Actually, in some "circles", 198 "Chuck's" might be condsidered more >desirable than just one.........I love my mirror)..... <G> [quoted text clipped - 82 lines] >> >> >> >> - Show quoted text - CLR - 26 Jul 2007 19:12 GMT That seems cool...........thanks Gord.
Vaya con Dios, Chuck, CABGx3
> Chuck > [quoted text clipped - 97 lines] > >> >> > >> >> - Show quoted text - Sandy Mann - 26 Jul 2007 18:17 GMT Thank you for confiming it Gord. Have you got any idea why it fires only 65 times if you leave the original printouts in the Immediate Window?
 Signature Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Pete > [quoted text clipped - 5 lines] > > Gord Gord Dibben - 26 Jul 2007 18:52 GMT Not a clunk<g>
Some limitation to debug?
Debug and the Immediate Window are uncharted waters for me.
Gord
>Thank you for confiming it Gord. Have you got any idea why it fires only 65 >times if you leave the original printouts in the Immediate Window? Sandy Mann - 26 Jul 2007 20:36 GMT I think that you nailed it Gord, I tested:
Sub test() For x = 1 To 10000 Debug.Print x Next x End Sub
and although you can see all 10,000 numbers being printed to the Immediate Window, only the last 195 - 199 numbers are available in the window. It would seem therefore that the Immediate Window has a limit of displaying only the last 200 or so printouts.
Testing with the Event Procedure:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Debug.Print Target.Value Target.Value = UCase(Target.Value) End Sub
and entering Chuck in any cell produced 199 CHUCK's *not* as I would have expected, one Chuck and 198 CHUCK's, (because the Debug.Print was *before* the UCase call). I therefore assume that VBA gives up after *more* then 200 cycles but displays only the last 200.
 Signature Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Not a clunk<g> > [quoted text clipped - 11 lines] >>65 >>times if you leave the original printouts in the Immediate Window? Gord Dibben - 26 Jul 2007 23:33 GMT Interesting.
Nice to know we have nothing else to do except tinker.
We must have no "honey-do" list and/or can't get a Tee-time
>I think that you nailed it Gord, I tested: > [quoted text clipped - 20 lines] >the UCase call). I therefore assume that VBA gives up after *more* then 200 >cycles but displays only the last 200. Sandy Mann - 27 Jul 2007 16:15 GMT Doing a final test with:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Target.Value = Target.Value + 1 End Sub
stops at 346 so I would gues that is where VBA is giving it up.
> We must have no "honey-do" list I do have a "honey-do" list but I don't have a circular Tuit - I keep telling my wife that I will do the tasks when I get a round Tuit
 Signature Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
CLR - 26 Jul 2007 18:02 GMT Awesome Sandy.....thanks much for the lesson......every day it's something new, (shaking my old gray head)..........maybe I can use this technique to check out some of my larger macros that seem to take a long time to execute.
Thanks again,
Vaya con Dios, Chuck, CABGx3
> Hi Chuck, > [quoted text clipped - 45 lines] > > Vaya con Dios, > > Chuck, CABGx3 Sandy Mann - 26 Jul 2007 18:15 GMT The some is me, the Awe is chip <g>
 Signature Sandy In Perth, the ancient capital of Scotland and the crowning place of kings
sandymann2@mailinator.com Replace @mailinator.com with @tiscali.co.uk
> Awesome Sandy.....thanks much for the lesson......every day it's something > new, (shaking my old gray head)..........maybe I can use this technique to [quoted text clipped - 5 lines] > Vaya con Dios, > Chuck, CABGx3
|
|
|