Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

impossible de passer en calcul manuel dans une macro quand deux fichiers sont ouverts.

7 réponses
Avatar
Michel Angelosanto
Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en fonction
du choix dans le combobox, à partir du 2e fichier, je modifie la sélection
dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait pas
le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans un
fichier puis exécute une macro dans le 2e fichier?

--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8

7 réponses

Avatar
Daniel.C
Bonjour.
Il doit y avoir une macro qui remets le mode calcul en automatique.
Fais une recherche sur toutes les macros.
Daniel

Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en fonction
du choix dans le combobox, à partir du 2e fichier, je modifie la sélection
dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette macro
et donc à chaque fois que je vois que ca dure longtemps, je suis obligé de
recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait pas
le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans un
fichier puis exécute une macro dans le 2e fichier?


Avatar
Daniel.C
PS. Surtout sur les macros du second classeur.
Daniel

Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en fonction
du choix dans le combobox, à partir du 2e fichier, je modifie la sélection
dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette macro
et donc à chaque fois que je vois que ca dure longtemps, je suis obligé de
recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait pas
le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans un
fichier puis exécute une macro dans le 2e fichier?


Avatar
Michel Angelosanto
Non j'exécute le code en pas à pas et a chaque exécution, je regarde si le
classeur est passé en calcul automatique ou manuel.
dès que la macro s'exécute, Excel passe en calcul automatique et pourtant le
code exécuté n'a rien a voir.

"Daniel.C" a écrit dans le message de
news:
PS. Surtout sur les macros du second classeur.
Daniel

Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en
fonction du choix dans le combobox, à partir du 2e fichier, je modifie la
sélection dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour
cocher calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait
pas le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans
un fichier puis exécute une macro dans le 2e fichier?







--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8
Avatar
Michel Angelosanto
dans la macro je mets une ligne application.calculation=xlcalculationmanual
je l'exécute (touche F8) je regarde dans les options et c'est toujours en
calcul automatique!

"Daniel.C" a écrit dans le message de
news:
PS. Surtout sur les macros du second classeur.
Daniel

Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en
fonction du choix dans le combobox, à partir du 2e fichier, je modifie la
sélection dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour
cocher calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait
pas le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans
un fichier puis exécute une macro dans le 2e fichier?







--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8
Avatar
Daniel.C
Ca ne doit pas être simple, mais est-ce que tu peux tester les macros
avec deux autres classeurs ?
Daniel

dans la macro je mets une ligne application.calculation=xlcalculationmanual
je l'exécute (touche F8) je regarde dans les options et c'est toujours en
calcul automatique!

"Daniel.C" a écrit dans le message de
news:
PS. Surtout sur les macros du second classeur.
Daniel

Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en
fonction du choix dans le combobox, à partir du 2e fichier, je modifie la
sélection dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait
pas le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans
un fichier puis exécute une macro dans le 2e fichier?






Avatar
MichDenis
| Private Sub ComboBox1_Change()

Cet événement cause plus souvent plus de difficultés
qu'elles n'en règlent !

As-tu pensé à utiliser ceci à la place ?

Private Sub ComboBox1_AfterUpdate()





"Michel Angelosanto" a écrit dans le message de groupe de discussion :
OXAP$
Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en fonction
du choix dans le combobox, à partir du 2e fichier, je modifie la sélection
dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait pas
le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans un
fichier puis exécute une macro dans le 2e fichier?

--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8
Avatar
Michel Angelosanto
je pense que l'anomalie provenait du fait que je changeais la valeur cible
du combobox au lieu de faire combobox1.ListIndex = valeur
chez moi avec Excel 2007 ça marche.
Je verrai lundi au bureau avec excel97.

"MichDenis" a écrit dans le message de
news:
| Private Sub ComboBox1_Change()

Cet événement cause plus souvent plus de difficultés
qu'elles n'en règlent !

As-tu pensé à utiliser ceci à la place ?

Private Sub ComboBox1_AfterUpdate()





"Michel Angelosanto" a écrit dans le message de groupe
de discussion :
OXAP$
Bonjour,

dans un classeur Excel, j'ai un combobox qui exécute une macro quand la
sélection change.
Pour gagner en rapidité, je passe en calcul manuel:

Private Sub ComboBox1_Change()
application.calculation=xlcalculationmanual

*******lignes de code***********

End Sub
Tout se passe bien dans ce classeur quand il tourne seul.

Maintenant, pour récupérer certaines valeurs dans un 2e classeur en
fonction
du choix dans le combobox, à partir du 2e fichier, je modifie la sélection
dans le combobox ce qui génère
le déclanchement de la macro associée.
Le problème c'est que dans ce cas l'instruction
application.calculation=xlcalculationmanual devient inopérante et du coup
comme les calculs se font, l'exécution dure plusieurs heures au lieu de 5
secondes!
Le plus fort c'est que si je bascule en calcul manuel juste avant que la
macro se déclenche, la macro remet le calcul en automatique!

D'ou vient le fait que je ne puisse pas basculer en calcul manuel dans le
code vba (je suis obligé à chaque fois de faire ctrl_alt_pause pour cocher
calcul manuel dans les options)
Le problème c'est que j'ai des dizaines d'étapes qui font appel à cette
macro et donc à chaque fois que je vois que ca dure longtemps, je suis
obligé de recommencer la manip.
Le classeur est de ce fait inutilisable par une personne qui ne connait
pas
le vba.

je suppose qu'il doit y avoir un conflit du fait que le code démarre dans
un
fichier puis exécute une macro dans le 2e fichier?

--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8





--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8