bonjour,
Il ya gestion d'erreur et...gestion d'erreur. Dans le cas présent, Oui c'est suffisant.
Pour ta validation MAX, tu peux pas mettre du VBA mais ta formule fonctionne très bien.
Pour l'attente c'est simple tu utilises une macro qui s'eécute à chaque fois que quelque chose change et comme à chaque fois ta macro change quelque chose (même si elle ne change rien... ) ça déclanche la macro qui s'exécute à chaque fois que tu change quelque chose (même si tu ne change rien ! ) En effet que tu changes quelque chose ou que ne change rien... Ta macro ne détecte pas réellement un changement mais une entrée dans une cellule... Que cette entrée soit la même que précédement n'y change rien : La macro Worksheet_Change s'exécute...
C'est clair ? Euh j'suis pas sur...
En bref, les macros évènementielles surtout comme tu les utilises ont la facheuse habitude de s'appeler en boucle.
Pour éviter celà tu peux modifier le code comme suit :
Private Sub Worksheet_Change(ByVal Target As Range)
ctiveSheet.Protect UserInterfaceOnly:=True 'évite de déprotéger la feuille
Application.EnableEvents = False 'enpêche VBA de détecter une modification
On Error GoTo GESTERR
If Target.Column = 2 Then
Target = UCase(Target)
ElseIf Target.Column = 3 Then
Target = Application.Proper(Target)
End If
GESTERR:
Application.EnableEvents = True 'permet à VBA de détecter à nouveau les évènements
End Sub
A+