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

Exit Sub ne fonctionne pas

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 !

David590

XLDnaute Occasionnel
Bonjour à tous,

J'essai de modifier un code en ajoutant un "Exit Sub" à une condition pour arrêter la procédure, mais le code qui est après s’exécute quand même
Bizarrement, quand je retire Target.ClearContents, là Exit Sub fonctionne

Je tourne en bourrique depuis un moment maintenant, je m'adresse donc aux experts, lol, qu'en dite vous?


Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 3 Then
If Target <> "" Then
Sheets("Total TR").Columns(3).Copy Range("IV1")
Set C = Cells.Find(What:=Target.Text, LookIn:=xlValues, LookAt:=xlWhole)
If Not C Is Nothing And C.Address = Target.Address Then Set C = Cells.FindNext(C)
If C.Address <> Target.Address Then

If C.Column = 256 Then
MsgBox "invalide, Double Total TR! C" & C.Row: Target.ClearContents
Exit Sub
Else
MsgBox "invalide, Double " & C.Address(0, 0): Target.ClearContents
Exit Sub
End If

End If
End If

' ce code s’exécute quand même
Range("A1") = "test"
 
Re : Exit Sub ne fonctionne pas

Bonjour,

peut être avec ceci :
Code:
Application.EnableEvents = False
'ton code
Application.EnableEvents = True

difficile d'en dire plus juste avec un bout de code jeté sur un post...

bonne journée
@+
 
Re : Exit Sub ne fonctionne pas

Bonsour®
sans analyse de l'algorithme ,
uniquement enutilisant l'indentation

🙄 quand les IF...Then ... End If ne sont pas apairrés VBA aussi tourne en bourrique ...


Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Column = 3 Then
If Target <> "" Then​
Sheets("Total TR").Columns(3).Copy Range("IV1")
Set C = Cells.Find(What:=Target.Text, LookIn:=xlValues, LookAt:=xlWhole)
If Not C Is Nothing And C.Address = Target.Address Then Set C = Cells.FindNext(C)
If C.Address <> Target.Address Then​
If C.Column = 256 Then​
MsgBox "invalide, Double Total TR! C" & C.Row: Target.ClearContents
Exit Sub​
Else​
MsgBox "invalide, Double " & C.Address(0, 0): Target.ClearContents
Exit Sub​
END IF (manquant)
End If​

End If​
End If
 
Re : Exit Sub ne fonctionne pas

Bonjour Pierrot93,

J'avais pensé faire un fichier mais il y a vraiment pas mal de chose a rajouter autour pour qu'il fonctionne, et mon fichier complet est un peu trop volumineux

Mais ton code fonctionne parfaitement, si je comprend bien, c'est des macros évènementielles qui bloque le Exit Sub??

Grand merci à toi 🙂
 
Re : Exit Sub ne fonctionne pas

Bonjour le fil, le forum,

Autre piste, est-ce que le code est déclenché par un événement "change" ?

Si c'est le cas, l'action clearcontent relance l'événement.

Abel.

Edit : oups ! Modeste, David, pas rafraichi.
 
Re : Exit Sub ne fonctionne pas

Bonjour, Modeste geedee

Effectivement c'est plus claire présenté comme ça,
Je suis vraiment novice, j'en apprend tous les jours grâce à vous, je ferais attention à bien appairé les If... avec les End If ...
 
Re : Exit Sub ne fonctionne pas

Bonjour Abel,

Ah oui, il est déclenché en "change", et effectivement le clearcontent relance donc l’évènement, tu as tout a fait raison
Voila le pourquoi du comment, lol
C'est donc pour ça que le fait d’exécuter le code de Pierrot93 stoppe l’évènement "Change"

Je me coucherai encore un peu moins bête ce soir 😎
 
- 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

Réponses
2
Affichages
411
Réponses
15
Affichages
776
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…