Comment afficher le premier élément de la liste déroulante au lieu d'un espace vide ?
Les listes déroulantes dans les feuilles de calcul Excel sont une fonctionnalité pratique pour rationaliser et standardiser la saisie de données - les utilisateurs peuvent simplement sélectionner des options prédéfinies plutôt que de taper individuellement les valeurs. Cependant, parfois vous pouvez rencontrer une situation où, en cliquant sur une cellule à liste déroulante, la sélection initiale apparaît comme étant vide au lieu du premier élément de données réel. Ce problème survient souvent si la liste de données source a été modifiée et que des lignes vides restent à la fin, ou si des éléments proches de la fin ont été supprimés, poussant la validation des données à inclure des emplacements vides non intentionnels en haut de la liste. Surtout avec des listes longues, devoir constamment faire défiler au-delà des entrées vides pour atteindre le premier élément valide peut être inefficace et frustrant.
Résoudre ce problème améliore non seulement la commodité pour les utilisateurs, mais aide également à prévenir la sélection accidentelle de valeurs vides, ce qui pourrait affecter les tâches de traitement ou de rapport de données ultérieures. Dans cet article, vous apprendrez des méthodes pratiques pour vous assurer que la première entrée de votre liste déroulante apparaît toujours en haut, éliminant ainsi ces blancs inutiles.
Utilisation d'une table Excel comme source de données
Afficher le premier élément de la liste déroulante au lieu d'une case vide avec la fonction Validation des données
Une façon efficace d'éviter les entrées vides en haut de votre liste déroulante est de configurer votre Validation des données en utilisant une formule qui détermine dynamiquement la plage correcte. Cette approche garantit que seules les cellules remplies de votre liste source sont incluses, quelles que soient les lignes vides causées par la suppression de données à la fin. Cette solution convient particulièrement aux utilisateurs qui modifient fréquemment la liste source ou qui souhaitent un ajustement basé sur une formule simple sans avoir besoin d'utiliser des macros.
1. Sélectionnez les cellules dans lesquelles vous souhaitez créer la liste déroulante. Ensuite, rendez-vous dans le ruban Excel et cliquez sur Données > Validation des données > Validation des données. La boîte de dialogue Validation des données s'ouvrira, comme illustré ci-dessous :
2. Sous l'onglet Paramètres dans la boîte de dialogue Validation des données, définissez Autoriser sur Liste. Dans la zone Source, entrez cette formule pour référencer dynamiquement uniquement la plage contenant des données réelles :
=DECALER(Feuil3!$A$1;0;0;NBVAL(Feuil3!$A:$A)-1;1)
Remarque : Dans cette formule, Feuil3 fait référence à la feuille où vos données sources résident, et A1 est la cellule de départ de votre liste. Ajustez ces éléments selon votre disposition spécifique de feuille de calcul. L'utilisation de NBVAL garantit que seules les cellules non vides sont incluses, en commençant par A1. Si votre liste source contient des lignes vides intentionnelles (et pas seulement à la fin), cette méthode ne les exclura peut-être pas entièrement, donc gardez votre liste source contiguë pour de meilleurs résultats.
3. Cliquez sur OK pour appliquer les paramètres. Maintenant, lorsque vous cliquez sur l'une des cellules de la liste déroulante que vous avez configurées, la liste s'affichera avec le premier élément de données réel en haut. Cela reste vrai même si les données sources changent, tant que la plage couvre tous les éléments de la colonne A et que vous n'avez aucune cellule vide dans le bloc principal de données. Consultez le résultat ci-dessous :
Conseil : Si vous devez étendre ou réduire votre liste source ultérieurement, vous n'aurez pas besoin de mettre à jour vos paramètres de validation des données. La formule s'ajustera automatiquement, à condition qu'il n'y ait aucune cellule vide au début de votre plage. Cependant, notez que si une cellule vide est présente dans la liste (et pas seulement à la fin), elle sera ignorée dans le comptage mais pourrait créer des écarts involontaires dans la liste déroulante.
Problème potentiel : Si votre source de données peut contenir des écarts intentionnels, ou si vous avez des cellules fusionnées ou des données non contiguës, envisagez d'utiliser une Table Excel comme plage source, ou consultez la méthode VBA ci-dessous pour une gestion plus flexible.
Afficher automatiquement le premier élément de la liste déroulante au lieu d'une case vide avec du code VBA
Dans certains scénarios, ajuster uniquement la source de validation des données n'est pas suffisant - par exemple, si vos données changent fréquemment, ou s’il y a un risque que des espaces vides apparaissent pour d'autres raisons structurelles dans votre plage source. Avec un simple code VBA, vous pouvez vous assurer que chaque fois qu'une cellule avec validation de données est activée, la liste déroulante sélectionne et affiche toujours automatiquement le premier élément disponible. Cela peut également améliorer la vitesse de saisie des données, car cela réduit les clics utilisateur.
1. Après avoir inséré votre liste déroulante, faites un clic droit sur l'onglet de la feuille contenant la liste déroulante, puis choisissez Afficher le code dans le menu contextuel. L'éditeur Microsoft Visual Basic pour Applications apparaîtra. Dans la fenêtre, collez le code suivant dans le module de feuille de calcul pertinent (pas un module standard). Ce code fonctionnera en arrière-plan et réinitialisera la liste déroulante à chaque fois que vous sélectionnez une cellule de validation :
Code VBA : Afficher automatiquement le premier élément de données dans la liste déroulante :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20160725
Dim xFormula As String
On Error GoTo Out:
xFormula = Target.Cells(1).Validation.Formula1
If Left(xFormula, 1) = "=" Then
Target.Cells(1) = Range(Mid(xFormula, 1)).Cells(1).Value
End If
Out:
End Sub
2. Après avoir collé le code, enregistrez votre classeur (de préférence sous forme de fichier prenant en charge les macros avec l'extension .xlsm), et fermez la fenêtre de l'éditeur VBA. Maintenant, revenez à votre feuille et essayez de cliquer sur n'importe quelle cellule avec la liste déroulante - lorsque vous activez la cellule, la première entrée de votre liste déroulante sera automatiquement affichée.
Conseils et considérations : Cette approche VBA est idéale lorsque vous souhaitez offrir une expérience fluide aux utilisateurs, surtout avec des listes sources dynamiques ou longues, ou des listes qui peuvent contenir des entrées vides inévitables. N'oubliez pas d'activer les macros pour que cela fonctionne, et informez les autres utilisateurs du classeur car certains environnements restreignent l'utilisation des macros pour des raisons de sécurité.
Dépannage : Si le code ne semble pas fonctionner, vérifiez à nouveau qu'il est placé dans la bonne fenêtre de code de feuille de calcul dans l'éditeur VBA. Assurez-vous également que la liste déroulante utilise une liste de validation de données standard.
Limitation : La solution VBA ne se déclenchera que si l'utilisateur sélectionne la cellule de la liste déroulante ; elle ne fonctionne pas si la cellule est remplie par d'autres moyens (comme des résultats de formule ou via collage). Si vous retirez la liste déroulante de la cellule, ou déplacez la cellule vers une autre feuille sans le code VBA, vous perdrez le comportement de sélection automatique.
Utilisation d'une table Excel comme source de données
Si votre liste source de liste déroulante est dynamique et que vous recherchez une meilleure maintenabilité, envisagez de convertir votre liste source en une table Excel. Les tables ajustent automatiquement leur taille à mesure que des données sont ajoutées ou supprimées, de sorte que votre liste reste à jour. Cependant, notez qu'une table Excel n'exclut pas automatiquement les cellules vides - toute entrée vide dans la table apparaîtra encore dans la liste déroulante, sauf si vous les filtrez explicitement (par exemple, en utilisant la fonction FILTRE disponible dans Excel 365 et Excel 2021).
1. Sélectionnez vos données sources et appuyez sur Ctrl + T pour les convertir en une Table. Assurez-vous qu'il n'y a pas de cases vides au début. Attribuez un nom significatif à la Table, tel que MaListe (en utilisant l'onglet Conception de la table).
2. Lors de la configuration de la validation des données, utilisez la référence structurée à la colonne de votre table. Dans la Source de la validation des données, tapez :
=INDIRECT("MyList[Column1]")
Remplacez Colonne1 par votre véritable nom de colonne (l'en-tête de colonne). Cette méthode inclut dynamiquement tous les éléments de la colonne de la table qui sont remplis, maintenant l'intégrité de la liste à mesure que vous mettez à jour les données.
Cette approche est particulièrement adaptée aux environnements où les données sources sont régulièrement mises à jour et où plusieurs utilisateurs doivent gérer efficacement la liste validée.
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!