sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules
SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une
extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous
excel, j'ouvre donc automatiquement le fichier de données via une macro
auto-open, après avoir mis le Recalculate à faux.
Malgré ça, l'ouverture du fichier de reporting prends des plombes, le
pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux
pas stopper le calcul évidemment.
Si le fichier de données n'existe plus, je ne récupére pas la main, même
après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel,
sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le
faire qu'une fois que le fichier de données est ouvert ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fredo P.
2 petites macros que l'on devrait appler au début et la fin de chaque macro importante et qui accélèrent les calculs. Public Sub EnaF() Application.EnableEvents = False 'Doit absolument être remis à True sous peine de ne plus voir _ 'ses onglets.Mais ce n'est pas irréversible) Application.Calculation = xlCalculationManual Application.ScreenUpdating = False End Sub Public Sub EnaT() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub "LargoWinch" a écrit dans le message de news:ghm4nc$gf5$
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous excel, j'ouvre donc automatiquement le fichier de données via une macro auto-open, après avoir mis le Recalculate à faux. Malgré ça, l'ouverture du fichier de reporting prends des plombes, le pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux pas stopper le calcul évidemment. Si le fichier de données n'existe plus, je ne récupére pas la main, même après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel, sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le faire qu'une fois que le fichier de données est ouvert ?
Merci
2 petites macros que l'on devrait appler au début et la fin de chaque macro
importante et qui accélèrent les calculs.
Public Sub EnaF()
Application.EnableEvents = False 'Doit absolument être remis à True sous
peine de ne plus voir _
'ses onglets.Mais ce n'est pas irréversible)
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
End Sub
Public Sub EnaT()
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
"LargoWinch" <largowinch38@free.fr.non.merci> a écrit dans le message de
news:ghm4nc$gf5$1@news.rd.francetelecom.fr...
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules
SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une
extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous
excel, j'ouvre donc automatiquement le fichier de données via une macro
auto-open, après avoir mis le Recalculate à faux.
Malgré ça, l'ouverture du fichier de reporting prends des plombes, le
pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux
pas stopper le calcul évidemment.
Si le fichier de données n'existe plus, je ne récupére pas la main, même
après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel,
sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le
faire qu'une fois que le fichier de données est ouvert ?
2 petites macros que l'on devrait appler au début et la fin de chaque macro importante et qui accélèrent les calculs. Public Sub EnaF() Application.EnableEvents = False 'Doit absolument être remis à True sous peine de ne plus voir _ 'ses onglets.Mais ce n'est pas irréversible) Application.Calculation = xlCalculationManual Application.ScreenUpdating = False End Sub Public Sub EnaT() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub "LargoWinch" a écrit dans le message de news:ghm4nc$gf5$
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous excel, j'ouvre donc automatiquement le fichier de données via une macro auto-open, après avoir mis le Recalculate à faux. Malgré ça, l'ouverture du fichier de reporting prends des plombes, le pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux pas stopper le calcul évidemment. Si le fichier de données n'existe plus, je ne récupére pas la main, même après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel, sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le faire qu'une fois que le fichier de données est ouvert ?
Merci
LSteph
Bonjour,
Pas d'accord du tout!
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
-- lSteph
LargoWinch a écrit :
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous excel, j'ouvre donc automatiquement le fichier de données via une macro auto-open, après avoir mis le Recalculate à faux. Malgré ça, l'ouverture du fichier de reporting prends des plombes, le pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux pas stopper le calcul évidemment. Si le fichier de données n'existe plus, je ne récupére pas la main, même après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel, sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le faire qu'une fois que le fichier de données est ouvert ?
Merci
Bonjour,
Pas d'accord du tout!
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est
le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
--
lSteph
LargoWinch a écrit :
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules
SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une
extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous
excel, j'ouvre donc automatiquement le fichier de données via une macro
auto-open, après avoir mis le Recalculate à faux.
Malgré ça, l'ouverture du fichier de reporting prends des plombes, le
pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux
pas stopper le calcul évidemment.
Si le fichier de données n'existe plus, je ne récupére pas la main, même
après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel,
sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le
faire qu'une fois que le fichier de données est ouvert ?
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
-- lSteph
LargoWinch a écrit :
Bonjour,
sous Excel 2003, j'ai un fichier Excel de reporting bourré de formules SOMMEPROD, sur des données contenues dans un autre classeur (issu d'une extraction d'un progiciel, au format csv).
Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts sous excel, j'ouvre donc automatiquement le fichier de données via une macro auto-open, après avoir mis le Recalculate à faux. Malgré ça, l'ouverture du fichier de reporting prends des plombes, le pourcentage d'avancement de recalcul monte trèèèès lentement. Je ne peux pas stopper le calcul évidemment. Si le fichier de données n'existe plus, je ne récupére pas la main, même après plusieurs dizaines de minutes.
J'ai essayé de forcer, au niveau des options Excel, le calcul en manuel, sans plus de succès. Faut-il jouer sur les autres options ?
Existe-t-il un moyen d'empêcher ce recalcul au démarrage, pour ne le faire qu'une fois que le fichier de données est ouvert ?
Merci
LargoWinch
LSteph a écrit :
Bonjour,
Pas d'accord du tout!
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
-- lSteph
Je dois confondre avec INDIRECT alors, mais, quoiqu'il en soit, si mes fichiers de données sont fermés (un csv nommé xls), je n'ai au mieux que des #REF!, au pire un Calcul qui bloque à 0% pendant de trop longues minutes. Peut-etre parce que tout ca est stocké sur des disques réseaux...
LSteph a écrit :
Bonjour,
Pas d'accord du tout!
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est
le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
--
lSteph
Je dois confondre avec INDIRECT alors, mais, quoiqu'il en soit, si mes
fichiers de données sont fermés (un csv nommé xls), je n'ai au mieux que
des #REF!, au pire un Calcul qui bloque à 0% pendant de trop longues
minutes.
Peut-etre parce que tout ca est stocké sur des disques réseaux...
> Le SOMMEPROD ne fonctionnant pas sur des fichiers non-ouverts
S'agissant d'un fichier excel le sommeprod fonctionne parfaitement c'est le somme.si qui peut buguer lorsque le fichier est fermé.
s'agissant d'un csv c'est une autre histoire....
@+
-- lSteph
Je dois confondre avec INDIRECT alors, mais, quoiqu'il en soit, si mes fichiers de données sont fermés (un csv nommé xls), je n'ai au mieux que des #REF!, au pire un Calcul qui bloque à 0% pendant de trop longues minutes. Peut-etre parce que tout ca est stocké sur des disques réseaux...
LargoWinch
Fredo P. a écrit :
2 petites macros que l'on devrait appler au début et la fin de chaque macro importante et qui accélèrent les calculs. Public Sub EnaF() Application.EnableEvents = False 'Doit absolument être remis à True sous peine de ne plus voir _ 'ses onglets.Mais ce n'est pas irréversible) Application.Calculation = xlCalculationManual Application.ScreenUpdating = False End Sub Public Sub EnaT() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
Le "Application.EnableEvents = False" semble faire beaucoup de bien.
Merci.
Fredo P. a écrit :
2 petites macros que l'on devrait appler au début et la fin de chaque macro
importante et qui accélèrent les calculs.
Public Sub EnaF()
Application.EnableEvents = False 'Doit absolument être remis à True sous
peine de ne plus voir _
'ses onglets.Mais ce n'est pas irréversible)
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
End Sub
Public Sub EnaT()
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Le "Application.EnableEvents = False" semble faire beaucoup de bien.
2 petites macros que l'on devrait appler au début et la fin de chaque macro importante et qui accélèrent les calculs. Public Sub EnaF() Application.EnableEvents = False 'Doit absolument être remis à True sous peine de ne plus voir _ 'ses onglets.Mais ce n'est pas irréversible) Application.Calculation = xlCalculationManual Application.ScreenUpdating = False End Sub Public Sub EnaT() Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
Le "Application.EnableEvents = False" semble faire beaucoup de bien.
Merci.
Fredo P.
Oui mais petite attention. Si une erreur se produit au cours d'une procédure attribuée de cette commande, la procédure saute toutes les lignes restantes jusque End sub, prendre la précaution d'avoir quelques lignes de gestion d'erreur telle 'en début de procédure On Error Goto Gest ' et en fin de procédure avoir Gest: Application.EnableEvents = True End Sub
> Application.EnableEvents = False 'Doit absolument être remis à True
sous
> peine de ne plus voir _ > 'ses onglets.Mais ce n'est pas irréversible) Le "Application.EnableEvents = False" semble faire beaucoup de bien.
Merci.
Oui mais petite attention. Si une erreur se produit au cours d'une procédure
attribuée de cette commande, la procédure saute toutes les lignes restantes
jusque End sub, prendre la précaution d'avoir quelques lignes de gestion
d'erreur telle
'en début de procédure
On Error Goto Gest
' et en fin de procédure avoir
Gest:
Application.EnableEvents = True
End Sub
> Application.EnableEvents = False 'Doit absolument être remis à True
sous
> peine de ne plus voir _
> 'ses onglets.Mais ce n'est pas irréversible)
Le "Application.EnableEvents = False" semble faire beaucoup de bien.
Oui mais petite attention. Si une erreur se produit au cours d'une procédure attribuée de cette commande, la procédure saute toutes les lignes restantes jusque End sub, prendre la précaution d'avoir quelques lignes de gestion d'erreur telle 'en début de procédure On Error Goto Gest ' et en fin de procédure avoir Gest: Application.EnableEvents = True End Sub
> Application.EnableEvents = False 'Doit absolument être remis à True
sous
> peine de ne plus voir _ > 'ses onglets.Mais ce n'est pas irréversible) Le "Application.EnableEvents = False" semble faire beaucoup de bien.
Merci.
LargoWinch
Fredo P. a écrit :
Oui mais petite attention. Si une erreur se produit au cours d'une procédure attribuée de cette commande, la procédure saute toutes les lignes restantes jusque End sub, prendre la précaution d'avoir quelques lignes de gestion d'erreur telle 'en début de procédure On Error Goto Gest ' et en fin de procédure avoir Gest: Application.EnableEvents = True End Sub
J'en prends bonne note. Merci
Fredo P. a écrit :
Oui mais petite attention. Si une erreur se produit au cours d'une procédure
attribuée de cette commande, la procédure saute toutes les lignes restantes
jusque End sub, prendre la précaution d'avoir quelques lignes de gestion
d'erreur telle
'en début de procédure
On Error Goto Gest
' et en fin de procédure avoir
Gest:
Application.EnableEvents = True
End Sub
Oui mais petite attention. Si une erreur se produit au cours d'une procédure attribuée de cette commande, la procédure saute toutes les lignes restantes jusque End sub, prendre la précaution d'avoir quelques lignes de gestion d'erreur telle 'en début de procédure On Error Goto Gest ' et en fin de procédure avoir Gest: Application.EnableEvents = True End Sub