code VBA qui ne "s'arrête pas"

  • Initiateur de la discussion Initiateur de la discussion Christophe
  • 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 !

Christophe

XLDnaute Occasionnel
Bonjour,

Je balbutie mes premiers codes sous VBA, avec plus ou moins de réussite. 😛

Le code que j'utilise ci-dessous ne s'arrête pas sauf si je le fais planter par 'Echap'.

Qqun pourrait-il me dire / m'expliquer pourquoi et surtout comment corriger.

Merci par avance. Bon dimanche.

Christophe


Private Sub WorkSheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range('K8')) Is Nothing Then
With Range('k8')
If .Value 0 Then Range('H8').Select
If Len(Range('H8')) > 0 Then Range('H10').Select
If Len(Range('H10')) > 0 Then Range('H11').Select
If Len(Range('H11')) > 0 Then Range('H15').Select
If Len(Range('H15')) > 0 Then Range('H17').Select

If Range('H17') > Range('bZ23') Then Range('H17') = Range('BZ23')

With Range('H17')
If Range('H17').Value > 0.1 Then
Range('K10') = '9999'
Range('k11') = '8888'


End If


End With

End Sub
 
salut
Quand c'est un problème de ce genre, tu mets un point d'arrêt et tu poursuis l'exécution avec F8.

Ton problème est simple :
Si la feuille chanfe,
je chnage la feuille, ce qui déclenche la macro, et ainsi de suite.
Remède :
Soit tu change le système de déclenchement de la macro, bouton par exemple, mais je ne pense pas(ouais, c'est habituel chez moi) que ça te satisfasse.
Soit tu déclares une variable en haut du module :
Public Flag_Test as Boolean
et ta macro devient :

Private Sub WorkSheet_Change(ByVal Target As Range)

if flag_test then exit sub
flag_test = True


If Not Application.Intersect(Target, Range('K8')) Is Nothing Then
.......
Flag_Test = False
End With

End Sub
 
Re:code VBA qui ne

Gorfael écrit:
salut
Quand c'est un problème de ce genre, tu mets un point d'arrêt et tu poursuis l'exécution avec F8.

Ton problème est simple :
Si la feuille chanfe,
je chnage la feuille, ce qui déclenche la macro, et ainsi de suite.
Remède :
Soit tu change le système de déclenchement de la macro, bouton par exemple, mais je ne pense pas(ouais, c'est habituel chez moi) que ça te satisfasse.
Soit tu déclares une variable en haut du module :
Public Flag_Test as Boolean
et ta macro devient :

Private Sub WorkSheet_Change(ByVal Target As Range)

if flag_test then exit sub
flag_test = True


If Not Application.Intersect(Target, Range('K8')) Is Nothing Then
.......
End With

Flag_Test = False
End Sub
 
Re:code VBA qui ne

ça a l'air de merder un peu, l'édition alors je fais un autre post
Tant que ta macro n'est pas finie, toutes les macros lancée par la modification de la feuille sont bloquées, par le test du Flag qui est une variable globale pour le module de classe.
A+
 
Re:code VBA qui ne

Gorfael, tatiak,

Merci de votre aide.
Cependant, les termes 'pointus' que vous employez parlent assez peu au novice que je suis.

Serait-ce abuser de vous demander de reprendre le code en le corrigeant, pour que, par différence, je puisse bien comprendre mes erreurs ?

Par avance merci.

Christophe
 
Re:code VBA qui ne

Merci Tatiak,
Désolé nos posts se sont croisés.
Merci.

Je me rends compte cependant trompé dans les ref des cellules de mon code. Et je pense que ça change tout.

Ce n'est pas ...K10 qui peut être égal à 9999 mais K8.

J'ai essayé ton code en changeant juste les refs : ça ne gaze pas.

As-tu une idée de ce que je peux faire ?

Merci.
 
Re:code VBA qui ne

Tatiak,

Ton code modifie le résultat à atteindre et ne met à jour k8 en fonction de H17 que si k8 n'est pas nul.
Or, il faut que dans tous les cas, la valeur de H17 influe sur celle de k8.

Désolé que ec soit aussi tordu ...

Christophe
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
497
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
319
Réponses
4
Affichages
465
Réponses
2
Affichages
517
Réponses
4
Affichages
245
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Retour