NVDA freezes when editing a cell in Microsoft Excel


Luciano de Souza
 

Hello all,

When editing cells in Microsoft Excel, I’m facing a very serious slowness.

I type the content, I press “enter” and NVDA freezes.

Ten seconds later, the voice returns to normality.

It’s not a particular heavy worksheet, so the performance should be good.

Restarting NVDA in debug mode, I found a message saying that the gainFocus event failed.

The problems occurs in two machines:

·         The first one with Windows 10, Office 2019 e NVDA 2022-1;

·         The second one with Windows 10, Office 365 e NVDA 2022-1.

In both machine, I have tested also with NVDA 2020-3 with the same bad results.

I also ran the register fixer tool offered by NVDA.

The installed version, there’s no addons or customization in its settings.

Both machines have good performance when executing other tasks.

In Excel, I turned off the automatic calculation to attenuate the problem.

In fact, disabled the automatic calculation, the performance becomes adequate.

However, pressing F9 to calculate, the screen reader freezes again.

As mentioned, the file doesn’t have heavy formulas or a large amount of data.

I could not understand what is succeeding, so I ask you for a help.

I wish this message find everyone good and I thank for staying here.

 

Best regards,

Luciano de Souza


Quentin Christensen
 

Hi Luciano,

From what you describe, it sounds like the issue is occuring when the spreadsheet tries to update itself.  I have a large spreadsheet which does that and basically it does freeze Excel while it is calculating, so you can't do anything - and that happens even if NVDA is not running.  I appreciate you said your spreadsheet was not so large, so I'm not sure, although it does sound basically the same.

Quentin.

On Thu, Jun 2, 2022 at 12:13 AM Luciano de Souza <lucsouza1975@...> wrote:

Hello all,

When editing cells in Microsoft Excel, I’m facing a very serious slowness.

I type the content, I press “enter” and NVDA freezes.

Ten seconds later, the voice returns to normality.

It’s not a particular heavy worksheet, so the performance should be good.

Restarting NVDA in debug mode, I found a message saying that the gainFocus event failed.

The problems occurs in two machines:

·         The first one with Windows 10, Office 2019 e NVDA 2022-1;

·         The second one with Windows 10, Office 365 e NVDA 2022-1.

In both machine, I have tested also with NVDA 2020-3 with the same bad results.

I also ran the register fixer tool offered by NVDA.

The installed version, there’s no addons or customization in its settings.

Both machines have good performance when executing other tasks.

In Excel, I turned off the automatic calculation to attenuate the problem.

In fact, disabled the automatic calculation, the performance becomes adequate.

However, pressing F9 to calculate, the screen reader freezes again.

As mentioned, the file doesn’t have heavy formulas or a large amount of data.

I could not understand what is succeeding, so I ask you for a help.

I wish this message find everyone good and I thank for staying here.

 

Best regards,

Luciano de Souza



--
Quentin Christensen
Training and Support Manager


Luke Davis
 

Have you tried changing the UIA setting for Excel, in NVDA Advanced settings?

Luke


Luciano de Souza
 

I hadn't done it, but now I did.
No results. The problem is still the same.
Having run NVDA in debug mode, I got the log I send attached.
My boss wants the sheet ready, but he'll have to be patient.
With automatic calculation disabled, I can use Excel, but in a very bad way.


Em 02/06/2022 00:36, Luke Davis escreveu:

Have you tried changing the UIA setting for Excel, in NVDA Advanced settings?

Luke





Luciano de Souza
 

The spreadsheet has many data writen. It's not very simple. Dispite that, there are only a few calculations. I imagine they are not enough to cause such dramatic problem.
I have closed Excel and reopened it. In a new file, I have writen my name and pressed "enter". In fact, NVDA replies very well. For this reason, perhaps you have reason about the volume of data.
Yes, there are only few calculations, but the spreadsheet uses validation very much.
There are no less than a thousand cells with list validations. Dispite having few calculations, perhaps validations, used in a large ammount, harmes the spreadsheet performance.
If NVDA doesn't lead well with validations, I have a big problem since this is the spreadsheet of my real world.

Em 02/06/2022 00:19, Quentin Christensen escreveu:

Hi Luciano,

From what you describe, it sounds like the issue is occuring when the spreadsheet tries to update itself.  I have a large spreadsheet which does that and basically it does freeze Excel while it is calculating, so you can't do anything - and that happens even if NVDA is not running.  I appreciate you said your spreadsheet was not so large, so I'm not sure, although it does sound basically the same.

Quentin.

On Thu, Jun 2, 2022 at 12:13 AM Luciano de Souza <lucsouza1975@...> wrote:

Hello all,

When editing cells in Microsoft Excel, I’m facing a very serious slowness.

I type the content, I press “enter” and NVDA freezes.

Ten seconds later, the voice returns to normality.

It’s not a particular heavy worksheet, so the performance should be good.

Restarting NVDA in debug mode, I found a message saying that the gainFocus event failed.

The problems occurs in two machines:

·         The first one with Windows 10, Office 2019 e NVDA 2022-1;

·         The second one with Windows 10, Office 365 e NVDA 2022-1.

In both machine, I have tested also with NVDA 2020-3 with the same bad results.

I also ran the register fixer tool offered by NVDA.

The installed version, there’s no addons or customization in its settings.

Both machines have good performance when executing other tasks.

In Excel, I turned off the automatic calculation to attenuate the problem.

In fact, disabled the automatic calculation, the performance becomes adequate.

However, pressing F9 to calculate, the screen reader freezes again.

As mentioned, the file doesn’t have heavy formulas or a large amount of data.

I could not understand what is succeeding, so I ask you for a help.

I wish this message find everyone good and I thank for staying here.

 

Best regards,

Luciano de Souza



--
Quentin Christensen
Training and Support Manager


Rui Fontes
 

Hello!


Here is a relevant part of the log from Luciano:


As we can see, between pressing Enter, after writing NVDA in cell A1, the last mention to the error is 6 seconds later...



IO - speech.speech.speak (14:12:09.573) - MainThread (15184):
Speaking ['idp.xlsx - Excel', CancellableSpeech (still valid)]
DEBUGWARNING - NVDAObjects.window.excel.ExcelBase._getDropdown (14:12:09.751) - MainThread (15184):
Could not locate dropdown list in previous objects
DEBUG - treeInterceptorHandler.update (14:12:09.777) - MainThread (15184):
Adding new treeInterceptor to runningTable: <NVDAObjects.window.excel.ExcelBrowseModeTreeInterceptor object at 0x06F7D810>
IO - speech.speech.speak (14:12:09.781) - MainThread (15184):
Speaking ['Informações', 'tabela', CancellableSpeech (still valid)]
IO - speech.speech.speak (14:12:09.836) - MainThread (15184):
Speaking ['A1', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (14:12:12.016) - winInputHook (2060):
Input: kb(desktop):upArrow
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:12.061) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_FOCUS, window 263700 (EXCEL7), objectID 1, childID 0, process 14408 (excel), thread 11664
IO - speech.speech.speak (14:12:12.218) - MainThread (15184):
Speaking ['A1', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (14:12:14.256) - winInputHook (2060):
Input: kb(desktop):shift+n
DEBUGWARNING - eventHandler.executeEvent (14:12:14.357) - MainThread (15184):
error executing event: typedCharacter on <NVDAObjects.window.excel.ExcelCell object at 0x0703AA50> with extra args of {'ch': 'N'}
Traceback (most recent call last):
  File "eventHandler.pyc", line 284, in executeEvent
  File "eventHandler.pyc", line 98, in __init__
  File "eventHandler.pyc", line 107, in next
  File "NVDAObjects\window\excel.pyc", line 1437, in event_typedCharacter
  File "baseObject.pyc", line 42, in __get__
  File "baseObject.pyc", line 146, in _getPropertyViaCache
  File "NVDAObjects\window\excel.pyc", line 1420, in _get_states
  File "baseObject.pyc", line 42, in __get__
  File "baseObject.pyc", line 146, in _getPropertyViaCache
  File "NVDAObjects\window\excel.pyc", line 1227, in _get_excelCellInfo
  File "comtypes\client\lazybind.pyc", line 60, in __call__
  File "comtypes\automation.pyc", line 729, in _invoke
  File "monkeyPatches\comtypesMonkeyPatches.pyc", line 32, in __call__
_ctypes.COMError: (-2147418111, 'A chamada foi rejeitada pelo chamado.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.window.excel.ExcelBrowseModeTreeInterceptor._get_isAlive (14:12:14.386) - MainThread (15184):
could not compare sheet names
Traceback (most recent call last):
  File "NVDAObjects\window\excel.pyc", line 470, in _get_isAlive
  File "monkeyPatches\comtypesMonkeyPatches.pyc", line 87, in new__getattr__
  File "comtypes\client\lazybind.pyc", line 168, in __getattr__
  File "comtypes\automation.pyc", line 729, in _invoke
  File "monkeyPatches\comtypesMonkeyPatches.pyc", line 32, in __call__
_ctypes.COMError: (-2147418111, 'A chamada foi rejeitada pelo chamado.', (None, None, None, 0, None))
DEBUG - treeInterceptorHandler.killTreeInterceptor (14:12:14.387) - MainThread (15184):
Killed treeInterceptor: <NVDAObjects.window.excel.ExcelBrowseModeTreeInterceptor object at 0x06F7D810>
IO - speech.speech.speak (14:12:14.416) - MainThread (15184):
Speaking ['Barra de Fórmulas', 'edição', CancellableSpeech (still valid), 'N']
IO - inputCore.InputManager.executeGesture (14:12:14.736) - winInputHook (2060):
Input: kb(desktop):shift+v
IO - inputCore.InputManager.executeGesture (14:12:15.088) - winInputHook (2060):
Input: kb(desktop):shift+d
IO - inputCore.InputManager.executeGesture (14:12:15.312) - winInputHook (2060):
Input: kb(desktop):shift+a
IO - inputCore.InputManager.executeGesture (14:12:16.039) - winInputHook (2060):
Input: kb(desktop):enter
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:20.247) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_FOCUS, window 263700 (EXCEL7), objectID 50, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:20.247) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_FOCUS, window 263700 (EXCEL7), objectID 51, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:20.247) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_FOCUS, window 263700 (EXCEL7), objectID 52, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:20.248) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_VALUECHANGE, window 263700 (EXCEL7), objectID 53, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:22.625) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_VALUECHANGE, window 263700 (EXCEL7), objectID 57, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:22.626) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_SELECTIONREMOVE, window 263700 (EXCEL7), objectID 58, childID 0, process 14408 (excel), thread 11664
DEBUG - IAccessibleHandler.internalWinEventHandler.winEventCallback (14:12:22.627) - MainThread (15184):
Dropping UIA proxied event for Excel7 window. WinEvent: EVENT_OBJECT_FOCUS, window 263700 (EXCEL7), objectID 59, childID 0, process 14408 (excel), thread 11664


Às 11:32 de 02/06/2022, Luciano de Souza escreveu:

I hadn't done it, but now I did.
No results. The problem is still the same.
Having run NVDA in debug mode, I got the log I send attached.
My boss wants the sheet ready, but he'll have to be patient.
With automatic calculation disabled, I can use Excel, but in a very bad way.


Em 02/06/2022 00:36, Luke Davis escreveu:
Have you tried changing the UIA setting for Excel, in NVDA Advanced settings?

Luke








Cearbhall O'Meadhra
 

Quentin and Luciano,

I frequently encounter this problem with excel It has been happening during the past year especially!

I found a hint after a Google search that having the whole worksheet active can cause this problem.

There are about one million rows in a complete worksheet. If you have a formula that has to check cells in the same column ( counting, for instance, the number of occurrences of a particular value) Excel has to search all one million cells in that column before it can return the resultant count. That alone can take a few moments to complete. If you have a formula that addresses multiple columns horizontally and vertically, this will multiply the cells to be examined and delay enormously.

I found that I could stop this happening if I deliberately deleted all the empty rows below my active data area. This meant that Excel had only to explore 200 or 300 cells instead of millions.

It I am copying data down a column of 200 rows, for example, I found it necessary to go to the bottom of the active column and copy the data down using control + d. This made sure that the formula did not go down to the million rows. If the formula once copies down to the millionth cell, the whole lower portion of the worksheet is activated. It remains activated even if I delete the data that was copied down too far.
Excel must then explore all the rows in case there is other data somewhere in the column being worked on.

The trick is to move to the last row of valid data. Then copy all the cells below that last cell but only in that column (this is important!), . Then open the delete dialog using the application key and select "delete entire row". This effectively closes the entire worksheet from the active area down and eliminates the problem.

As an alternative, I tried selecting control shift end and then pressing delete but this does not deactivate the lower half of the sheet. Only the Delete entire row" described above does the job.

I hope this helps to relieve you of your problem.

Please let us know if it helps or not.

All the best,

Cearbhall

m +353 (0)833323487 Ph: _353 (0)1-2864623 e: cearbhall.omeadhra@...

-----Original Message-----
From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of Luciano de Souza
Sent: Thursday, June 2, 2022 11:33 AM
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA freezes when editing a cell in Microsoft Excel

I hadn't done it, but now I did.
No results. The problem is still the same.
Having run NVDA in debug mode, I got the log I send attached.
My boss wants the sheet ready, but he'll have to be patient.
With automatic calculation disabled, I can use Excel, but in a very bad way.


Em 02/06/2022 00:36, Luke Davis escreveu:
Have you tried changing the UIA setting for Excel, in NVDA Advanced
settings?

Luke










--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


Quentin Christensen
 

I've never heard of deleting empty rows to make formulas faster.  Excel is very slow though so anything which helps is good!  If you have a single block of cells with your data on a worksheet (as the majority often are), then if you turn them into a "table" (control+t), you can use formulas to more easily work with different sections.  For instance if I have "name", "Spent" columns in my table, instead of =SUM(D:D), you can use =SUM(Table1[Spent]) to see how much everyone has spent.  I don't know if it's faster, but it does make formulas easier to read.


On Fri, Jun 3, 2022 at 6:06 PM Cearbhall O'Meadhra <cearbhall.omeadhra@...> wrote:
Quentin and Luciano,

I frequently encounter this problem with excel It has been happening during the past year especially!

I found a hint after a Google search that having the whole worksheet active can cause this problem.

There  are about one million rows in a complete worksheet. If you have a formula that has to check cells in the same column ( counting, for instance, the number of occurrences of a particular value) Excel has to search all one million cells in that column before it can return the resultant count. That alone can take a few moments to complete. If you have a formula that addresses multiple columns horizontally and vertically, this will multiply the cells to be examined and delay enormously.

I found that I could stop this happening if I deliberately deleted all the empty rows below my active data area. This meant that Excel had only to explore 200 or 300 cells instead of millions.

It I am copying data down a column of 200 rows, for example, I found it necessary to go to the bottom of the active column and copy the data down using control + d. This made sure that the formula did not go down to the million  rows. If the formula once copies down to the millionth cell, the whole lower portion of the worksheet is activated. It remains activated even if I delete the data that was copied down too far.
Excel must then explore all the rows in case there is other data somewhere in the column being worked on.

The trick is to move to the last row of valid data. Then copy all the cells below that last cell but only in that column (this is important!), . Then open the delete dialog using the application key and select "delete entire row". This effectively closes the entire worksheet from the active area down and eliminates the problem.

As an alternative, I tried selecting control shift end and then pressing delete but this does not deactivate the lower half of the sheet. Only the Delete entire row" described above does the job.

I hope this helps to relieve you of your problem.

Please let us know if it helps or not.

All the best,

Cearbhall

m +353 (0)833323487 Ph: _353 (0)1-2864623 e: cearbhall.omeadhra@...


-----Original Message-----
From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of Luciano de Souza
Sent: Thursday, June 2, 2022 11:33 AM
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA freezes when editing a cell in Microsoft Excel

I hadn't done it, but now I did.
No results. The problem is still the same.
Having run NVDA in debug mode, I got the log I send attached.
My boss wants the sheet ready, but he'll have to be patient.
With automatic calculation disabled, I can use Excel, but in a very bad way.


Em 02/06/2022 00:36, Luke Davis escreveu:
> Have you tried changing the UIA setting for Excel, in NVDA Advanced
> settings?
>
> Luke
>
>
>
>
>
>






--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus








--
Quentin Christensen
Training and Support Manager


Cearbhall O'Meadhra
 

Quentin,

 

Yes, I think defining the area as a table would make it easier to limit the active area.

 

Here is a good example of reasons for a slow Worksheet:

https://trumpexcel.com/suffering-from-slow-excel-spreadsheets/#8

 

All the best,

 

Cearbhall

 

m +353 (0)833323487 Ph: _353 (0)1-2864623 e: cearbhall.omeadhra@...

 

 

From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of Quentin Christensen
Sent: Friday, June 3, 2022 9:49 AM
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA freezes when editing a cell in Microsoft Excel

 

I've never heard of deleting empty rows to make formulas faster.  Excel is very slow though so anything which helps is good!  If you have a single block of cells with your data on a worksheet (as the majority often are), then if you turn them into a "table" (control+t), you can use formulas to more easily work with different sections.  For instance if I have "name", "Spent" columns in my table, instead of =SUM(D:D), you can use =SUM(Table1[Spent]) to see how much everyone has spent.  I don't know if it's faster, but it does make formulas easier to read.

 

On Fri, Jun 3, 2022 at 6:06 PM Cearbhall O'Meadhra <cearbhall.omeadhra@...> wrote:

Quentin and Luciano,

I frequently encounter this problem with excel It has been happening during the past year especially!

I found a hint after a Google search that having the whole worksheet active can cause this problem.

There  are about one million rows in a complete worksheet. If you have a formula that has to check cells in the same column ( counting, for instance, the number of occurrences of a particular value) Excel has to search all one million cells in that column before it can return the resultant count. That alone can take a few moments to complete. If you have a formula that addresses multiple columns horizontally and vertically, this will multiply the cells to be examined and delay enormously.

I found that I could stop this happening if I deliberately deleted all the empty rows below my active data area. This meant that Excel had only to explore 200 or 300 cells instead of millions.

It I am copying data down a column of 200 rows, for example, I found it necessary to go to the bottom of the active column and copy the data down using control + d. This made sure that the formula did not go down to the million  rows. If the formula once copies down to the millionth cell, the whole lower portion of the worksheet is activated. It remains activated even if I delete the data that was copied down too far.
Excel must then explore all the rows in case there is other data somewhere in the column being worked on.

The trick is to move to the last row of valid data. Then copy all the cells below that last cell but only in that column (this is important!), . Then open the delete dialog using the application key and select "delete entire row". This effectively closes the entire worksheet from the active area down and eliminates the problem.

As an alternative, I tried selecting control shift end and then pressing delete but this does not deactivate the lower half of the sheet. Only the Delete entire row" described above does the job.

I hope this helps to relieve you of your problem.

Please let us know if it helps or not.

All the best,

Cearbhall

m +353 (0)833323487 Ph: _353 (0)1-2864623 e: cearbhall.omeadhra@...


-----Original Message-----
From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of Luciano de Souza
Sent: Thursday, June 2, 2022 11:33 AM
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA freezes when editing a cell in Microsoft Excel

I hadn't done it, but now I did.
No results. The problem is still the same.
Having run NVDA in debug mode, I got the log I send attached.
My boss wants the sheet ready, but he'll have to be patient.
With automatic calculation disabled, I can use Excel, but in a very bad way.


Em 02/06/2022 00:36, Luke Davis escreveu:
> Have you tried changing the UIA setting for Excel, in NVDA Advanced
> settings?
>
> Luke
>
>
>
>
>
>






--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus






 

--

Quentin Christensen
Training and Support Manager

 




Avast logo

This email has been checked for viruses by Avast antivirus software.
www.avast.com