Bonjour,
Je vous remercie pour votre message.
J'utilise Excel 365 et j'ai rencontré un problème avec les listes déroulantes.
Lorsque j'écris le texte « A » dans une cellule où une liste déroulante est présente, Excel affiche un message d'erreur.
Pour contourner ce problème, j'ai essayé d'utiliser un code VBA (ci-dessous) pour vérifier si le texte saisi dans une cellule est présent dans une plage spécifique. J'ai également utilisé ce code VBA pour mettre en évidence en rouge les cellules contenant un texte différent de celui présent dans la plage spécifiée. Cependant, ce code VBA ne fonctionne plus avec Excel 365. J'aimerais comprendre pourquoi.
Pouvez-vous m'aider à résoudre ce problème ?
Merci.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngLocaux As Range
Dim cell As Range
Dim isFound As Boolean
' Spécifiez la plage des locaux dans l'onglet Données
Set rngLocaux = Sheets("Données").Range("C2:C8")
' Vérifiez si la cellule modifiée est E19
If Not Intersect(Target, Me.Range("B3")) Is Nothing Then
isFound = False
' Parcours des locaux pour vérifier si la valeur existe
For Each cell In rngLocaux
If cell.Value = Target.Value Then
isFound = True
Exit For
End If
Next cell
' Si la valeur n'est pas trouvée, appliquez la mise en forme
If Not isFound And Target.Value <> "" Then
With Target
.Interior.Color = RGB(255, 0, 0) ' Rouge
.Font.Color = RGB(255, 255, 255) ' Blanc
End With
Else
' Sinon, réinitialisez la mise en forme
With Target
.Interior.ColorIndex = xlNone
.Font.ColorIndex = xlAutomatic
End With
End If
End If
End Sub