Détails d'arrière-plan J'ai une feuille de calcul Excel avec des objets déroulants Activex (liste déroulante) qui aident l'utilisateur à connaître les options disponibles. Je l'ai fait parce que les listes déroulantes de la liste de validation des données sont trop petites en taille de police, et rassemblaient beaucoup de plaintes.MS-Excel: comment afficher la valeur d'une zone de liste déroulante dans une cellule verrouillée
Donc ma solution était à ajouter des objets combobox qui permettent à l'utilisateur de choisir parmi une gamme d'options. Cependant, je dois relier les comboboxes à une cellule avec la propriété linkedcell, de sorte que l'utilisateur et les différentes formules puissent voir ce qui a été choisi. J'ai également mis en place la liste déroulante pour qu'elle disparaisse lorsqu'elle n'est pas utilisée (à peu près de la même manière que le bouton de liste déroulante de validation des données n'apparaît que lorsque vous sélectionnez la cellule concernée).
Voici le problème: Je ne veux pas les utilisateurs de modifier la valeur de la cellule liée, donc je vous assurer la cellule liée est verrouillée chaque fois que le combobox n'est pas sélectionné:
Private Sub comboBox1_GotFocus()
Call unlockComboBoxTargetCell(comboBox1)
End Sub
la procédure ci-dessus fait ceci:
If (targetComboBox.LinkedCell <> "") Then
Dim targetCell As Variant
Set targetCell = Range(targetComboBox.LinkedCell)
If Not targetCell Is Nothing And targetCell.Locked <> False Then
unlockSheet (activesheet.Name)
targetCell.MergeArea.Locked = False
lockSheet (activesheet.Name)
End If
End If
procédures équivalentes existent pour verrouiller la cellule cible. Toutefois, chaque fois que vous effectuez une action "Enregistrer sous" dans le classeur, il semble que les cellules liées et verrouillées créent un problème: Excel donne cette erreur de façon inattendue: "La cellule ou le graphique que vous essayez de modifier est protégé et donc en lecture seule ... " Cette erreur survient environ deux ou trois fois pour chaque cellule verrouillée et est la cellule liée pour une zone de liste déroulante.
Existe-t-il un bon moyen de surmonter ce problème? À l'heure actuelle, ma meilleure solution est de laisser les cellules déverrouillées et de placer la validation des données sur la cellule, de sorte que si l'utilisateur édite la cellule, elles seront au moins refusées lorsqu'elles tapent quelque chose de non valide. Je pourrais m'assurer que la combobox couvre la cellule liée à chaque fois qu'elle est sélectionnée, mais cela signifie parfois avoir une très grande combo agaçante avec un très petit bouton déroulant sur son côté droit.
Peut-être que je suis un peu trop particulier sur l'interface utilisateur?
Merci d'avance pour la lecture de ce post long et impliqué.
Merci. Je me souviens d'avoir déjà vu cette option, mais je l'avais oublié. –