Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb de maitrise de sortie de macro / procédure

  • Initiateur de la discussion Initiateur de la discussion nicola40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nicola40

Guest
Sur les conseils de MITA, je reposte avec un intitulé plus adapté😉


Bonjour à tous,

à cette heure tardive, je bute sur un pb persistant.

L'exécution d'un code vba ne correspond pas à mes attentes, et je "donne ma langue au chat" ....

Inévitablement, je dois faire une erreur de logique, mais ou ?

Ci-joint petit fichier écrit pour simuler le pb.

Merci d'avance pour votre aide.
 

Pièces jointes

Re : Pb de maitrise de sortie de macro / procédure

Bonjour à tous,

J'ai nommé DDAte par Insertion / Nom / Définir...
Mais je ne suis pas sûr que cela te convienne

Amitié à Jean-Roch

A+ à tous

Merci de ta réponse JCGL.

Mais je ne vois pas d'amélioration. Si tu mets un point d'arrêt dans Sub Worksheet_Change (of ouverts), puis que tu débuge pas à pas avec f8, tu verras que nous partons au milieu de la procédure seamaine_num. Puis la sortie se fait sans repasser dans la procédure inirtiale, donc sans remettre application.enanbleevents à true.

Pour moi, c'et un fonctionnement non maitrisé et je voudrais comprendre pourquoi.
Le fonctionnement de mon pg nécessite de revenir à true. C'est cette valeur que j'affiche dans la boite de dialogue.
Si tu effaces la formule en b10, ça marche ! incompréhensible non ?

Je vais continuer à cogiter, mais si tu as une piste je suis preneur.

Bonne fin de WE
 
Re : Pb de maitrise de sortie de macro / procédure

bonjour nicola40

Salut JC 🙂

A tester:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim derlig1
    Application.EnableEvents = False
    With Sheets("Of ouverts")
    derlig1 = [COLOR=red].[/COLOR]Range("b65536").End(xlUp).Row
    [COLOR=red].[/COLOR]Range("e13:M900").Select
    Selection.Clear
    Application.EnableEvents = True
   End With
End Sub

Sinon a quoi il sert le With !!!

Nota: Je ne suis pas allé plus loin
 
Re : Pb de maitrise de sortie de macro / procédure




Merci pour ta réponse Pierre-Jean,


mais pas d'amélioration.

tant que l'appui sur le bouton conduit à avoir une msgbox avec faux, cela veut dire que la sortie de la procédure se fait avant de remettre application.enableEvents à vrai, donc de façon brutale et non maitrisée (essaye de débuger et pas à pas avec F8 : comportement étonnant !)

J'aimerais comprendre pour pouvoir fiabiliser mon appli ....


Bonne fin de WE et merci
 
Re : Pb de maitrise de sortie de macro / procédure

Bonjour nicola, Pierre-Jean🙂, Jean-Claude🙂

pas tout suivi, ni certainement pas tout compris, mais si tu veux éviter de rentrer dans ta fonction, tu peux essayer en utilisant le code ci-dessous :

Code:
Dim s As Long
s = Application.Calculation
Application.Calculation = xlCalculationManual
'ton code
Application.Calculation = s

si ca peut faire avancer la chose...

bonne soirée
@+
 
Re : Pb de maitrise de sortie de macro / procédure

Re

Je n'ai pas excel 2003
par contre j'ai une fonction numsem (de mon cru)
Veux-tu tester le comportement avec cette fonction ?

Edit: Salut pierrot 🙂
 

Pièces jointes

Re : Pb de maitrise de sortie de macro / procédure

Bonjour à tous,
Salut PJ 🙂,
Salut Pierrot 🙂,

Sous XL 2003, la boite de dialogue me renvoie VRAI...
J'ai remplacé la fonction personnalisée par la fonction de base XL NO.SEMAINE() et cela fonctionne aussi bien (renvoi de VRAI)

Désolé de ne pas pouvoir reproduire ton problème (visiblement, je ne suis pas le seul)
A++
A+ à tous
 
Re : Pb de maitrise de sortie de macro / procédure


Merci à toi PIERROT93, mais pas d'amélioration.

Je ne comprends toujours pas pourquoi le pg part au milieu de la fonction semaine-num ?

Bonne fin de we
 
Re : Pb de maitrise de sortie de macro / procédure

Re

Je n'ai pas excel 2003
par contre j'ai une fonction numsem (de mon cru)
Veux-tu tester le comportement avec cette fonction ?

Edit: Salut pierrot 🙂


Je viens de tester. Toujours pareil : faux

En mode débug, selection.clear m'envoie dans la procédure numsem, puis sortie directe sans remettre la valeur à true.

Est-il normal de partir dans cette fonction avec l'instruction selection.clear ?
As-tu le même comportement chez toi ?

..... je vais continuer de cogiter


merci
 
Re : Pb de maitrise de sortie de macro / procédure

Re

En partie
A savoir que selection.clear envoie dans le calcul de numsem mais une fois le recalcul effectué j'ai bien
Application.EnableEvents = True
et
End With
Je precise tout de même que je n'observe ceci que si j'effectue un changement dans la feuille Of ouverts
Le clic sur le bouton n'affecte pas la feuille et il n'y a donc pas de declanchement de l'evenement change
J'ai encadré par Application.calculation manual puis auto et le parcours dans la macro change n'est plus interrompu mais en fin de macro le recalcul s'effectue
Je crois qu'il faut rechercher ce qui lance la macro change a partir du bouton (ce qui n'existe pas dans le fichier avec lequel je travaille)
 
Re : Pb de maitrise de sortie de macro / procédure


Le bouton active la macro4 qui est dans le module 6.
Elle lance le recalcul du tcd, donc induit un changement dans la feuille of ouverts, donc lance la sub Worksheet_Change.

Si je lance la réactualisation manuelle du tcd, pas de msgbox, car application.eneableevents est à faux, et la détection du cht ne se fait donc pas.


Merci
 
Re : Pb de maitrise de sortie de macro / procédure

Faute de mieux, j'ai caché le problème (un emplâtre sur une jambe de bois .....).

Il semble que ce soit la fonction aujourdhui() qui génère le pb. A l'ouverture du fichier, je fige cette valeur --> plus de pb. Et à l'enregistrement, je remets aujourdhui() dans la zone.

Pas élégant, mais ça marche.

il n'empêche que je rage de n'avoir pas compris le pourquoi de mon problème.

Merci à tous pour votre aide et bonne fin de soirée.

Encore bravo pour la richesse et la qualité du forum.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
2
Affichages
1 K
A
H
Réponses
6
Affichages
4 K
Helios67
H
N
  • Question Question
Réponses
5
Affichages
1 K
nicola40
N
P
Réponses
2
Affichages
2 K
P
S
Réponses
21
Affichages
3 K
sarahg
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…