Excel plante à la sélection d'une liste déroulante [Résolu/Fermé]

Signaler
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019
-
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019
-
Bonjour à tous,

Tout est dans le titre, néanmoins , je peux apporter quelques suppléments d'informations.

Lorsque je sélectionne une donnée dans une liste déroulante (Il y en a 2), excel plante. Parfois, j'ai le droit à un message : Triangle jaune (Attention) Mémoire insuffisante pour afficher en entier.

Quelqu'un aurait une idée du problème ?

Le fichier est très "léger", il y a une macro , qui transforme le texte en Majuscule et rien de plus.

Merci d'avance ,

Cordialement,



1 réponse

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
484
Bonjour,

Pas de code, pas de classeur, pas de boule de cristal ....
il faut vraiment aimer les devinettes :)

A+
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019
59
Pas de bras , pas de chocolat , comme on dit !

Pas de classeur , pas d'aideur ! (Ok je m'en vais).

Alors justement , voici le classeur :

https://www.cjoint.com/c/FBzmAWtlX4G

Merci Gyrus :)
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
484 >
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019

L'intérêt de la procédure Worksheet.Change c'est qu'elle se lance à chaque modification d'une cellule.
Mais le problème avec la procédure Worksheet.Change, c'est que si elle modifie une cellule, ... alors elle s'auto-relance ...puis elle s'auto-relance ...puis elle s'auto-relance puis ...

Une solution est de désactiver les événements en utilisant la propriété Application.EnableEvents.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("K3, K14, N3, N14")) Is Nothing Then
Application.EnableEvents = False
Target.Value = UCase(Target)
Application.EnableEvents = True
End If
End Sub


A+
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019
59 >
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016

Impeccable , merci beaucoup :)
Messages postés
818
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
28 octobre 2019
59
Ok , je test ça, merci :)