Vélodulation de la list Excel

J'ai quelques lists déroulantes. ils contiennent une simple combinaison Y / N.

J'ai plusieurs feuilles de calcul externes dont je dois copyr et coller des données. Cependant, la colonne Y / N dans les spreads externes peut contenir le y / n en minuscules. ou Oui / NON text.

Si la valeur du text est y / n ou OUI / NON, j'aime qu'il soit conforme à la valeur de list Y / N

J'ai essayé d'append une formule aux cellules elles-mêmes, mais j'ai une erreur de reference circulaire.

J'ai ensuite tenté un script VBA:

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrorHandler: Dim cell As Range If Target.Column = 9 Then If (UCase(ActiveCell.Value) = "YES") Then ActiveCell.Value = "Y" ElseIf UCase(ActiveCell.Value) = "NO" Then ActiveCell.Value = "N" ElseIf UCase(Target.Value) = Empty Then ActiveCell.Value = "N" Else ActiveCell.Value = UCase(ActiveCell.Value) End If End If Exit Sub ErrorHandler: MsgBox "An error occured - error " & Err.Number & ": " & Err.Description End Sub 

Cela fonctionne presque, il change la valeur de OUI à Y, etc. et vérifie les majuscules, mais il se bloque.

Ok, le script vbs semble être le path à parcourir. J'ai dû append l'Application.EnableEvents au script une fois que j'ai fait que excel cesse de s'écraser et j'ai obtenu les résultats que je search.

 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrorHandler: Dim cell As Range If Target.Column = 9 Then Application.EnableEvents = False For Each cell In Target If (UCase(cell.Value) = "YES") Then cell.Value = "Y" ElseIf UCase(cell.Value) = "NO" Then cell.Value = "N" ElseIf UCase(cell.Value) = Empty Then cell.Value = "N" Else cell.Value = UCase(cell.Value) End If Next cell Application.EnableEvents = True End If Exit Sub ErrorHandler: MsgBox "An error occured - error " & Err.Number & ": " & Err.Description Application.EnableEvents = True End Sub