Comment inhiber une macro de type Worksheet_Change

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

seb26000

XLDnaute Occasionnel
Bonjour à tous,

J'ai une macro de type "Worksheet_Change" qui lorsqu'une cellule des colonnes A à T, change de valeur, le contenu de cette même cellule passe en majuscule.

Je souhaiterais interrompre cette macro pendant une phase où des lignes sont insérées par une autre macro car sinon Excel exécute cette macro à chaque cellule modifiée.

J'ai tenté d'insérer une condition If Range("V1") = 1 Then Exit Sub où la cellule V1 prend la valeur 1 lorsque j'insère la ligne pour inhiber la mise en majuscule. Ca marche mais je m'apercois que Excel excute pour chaque cellule insérer la macro de Worksheet_Change mais si cela finit par un Exit Sub. Vous me direz que c'est normal et c'est sur mais vu qu'il y a beaucoup de cellules insérées résultat l'insertion prend un peu de temps...

Donc ma question est la suivante, est il possible à partir de la qui insère les lignes, d'indiquer d'inhiber ce fameux Worksheet_Change...

Merci d'avance à tous !!!

Seb



Private Sub Worksheet_Change(ByVal Target As Range)

If Range("V1") = 1 Then Exit Sub


Dim Cel As Range

'Validité ===================================================
If Intersect(Target, Range("A:T")) Is Nothing Then GoTo Sort_Worksheet_Change
'Blocage écran et évènements ================================

Application.EnableEvents = False
Application.ScreenUpdating = False


'Traitement ================================================
For Each Cel In Intersect(Target, Range("A:T"))
'pour chaque cellule modifiée appartenant à A
Cel = UCase(Cel)
'cellule =majuscule(cellule)
Next Cel
'cellule suivante
'Sortie obligatoire =========================================

Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime")
Application.OnTime Heure, "Interruption2", schedule:=False
Minuterie2

Sort_Worksheet_Change:
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
 
- 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
481
Réponses
4
Affichages
224
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
4
Affichages
243
Retour