Bonjour
Tu n’as pas mis mon dernier code transmis dans son intégralité d’où certainement ce plantage
Les lignes :
Application.EnableEvents = False
et
Application.EnableEvents = True
dans la partie qui nous concerne sont absentes
J’ai pour notre traitement que ceci :
If Target.Count > 1 Then Exit Sub
'Attribution de la plage Col. J à la variable V1 avec instruction SET
Set Vl = Range(« J:J »)
'La procédure se déclenche quand on clique n’importe où dans la colonne J uniquement
If Not Intersect(Vl, Target) Is Nothing Then
'La valeur target comprendra les 3 premières lettres de la valeur affichée dans la cellule aprés choix liste déroulante
Target = Left(Target, 3)
End If
Les 2 lignes manquantes sont indispensables pour la raison suivante :
Cette procédure évènementielle se déclenche à chaque changement du contenu d’une cellule de la colonne J
Au départ donc déclanchement de cette procédure lorsque en colonne J par un choix effectué dans une cellule celle-ci à son contenu modifié : normal
Mais dans la partie qui nous concerne on vient ici par cette ligne de code :
Target = Left(Target, 3)
modifié à nouveau son contenu d’où redéclenchement de la procédure et ainsi de suite
La procédure tourne en boucle
D’où la nécessité de ces 2 lignes de code manquante la première pour stopper tout évènement :
Application.EnableEvents = False
le code qui modifie la cellule sans nouveau déclenchement de la procédure suite à cette instruction mis en place
Target = Left(Target, 3)
La deuxième manquante pour réactiver les évènements et ainsi de permettre cette procédure de fonctionner à la prochaine saisie dans l’onglet
Application.EnableEvents = True
Ce qui donne ces lignes de code pour cette partie :
Application.EnableEvents = False
Target = Left(Target, 3)
Application.EnableEvents = True
Et pour un ensemble de ligne pour le traitement de la colonne J :
If Target.Count > 1 Then Exit Sub
'Attribution de la plage Col. J à la variable V1 avec instruction SET
Set Vl = Range(« J:J »)
'La procédure se déclenche quand on clique n’importe où dans la colonne J uniquement
If Not Intersect(Vl, Target) Is Nothing Then
'La valeur target comprendra les 3 premières lettres de la valeur affichée dans la cellule aprés choix liste déroulante
Application.EnableEvents = False
Target = Left(Target, 3)
Application.EnableEvents = True
End If
D’ailleurs ces 2 lignes manquantes sont bien présentes dans les autres traitements mais ne concerne pas celui-ci
J’ai modifié ton fichier dans cet esprit et pour moi après essai tout fonctionne sans bug
Fais des essais de ton côté et dis moi
Registre Accord 2020 FFO.xlsm (380,5 Ko)