Limite Validation des données

Anonyme
2025-06-09T18:39:21+00:00

Bonjour,

Je génère un fichier Excel via un développement .NET (NPOI) contenant environ 700 000 lignes.
Chaque ligne a une règle de validation individuelle (liste déroulante), avec des listes de choix courtes (moins de 255 caractères).

Les listes varient en fonction d'une colonne de la ligne, ce qui empêche l’utilisation de plages de validation groupées.
J’ai testé aussi bien avec des listes explicites qu’avec des plages nommées (INDIRECT/VLOOKUP), et le comportement est le même.

Lorsque le fichier contient toutes les règles, Excel le considère comme corrompu à l’ouverture et propose une réparation (qui supprime toutes les validations), sans explication sur la cause.
Le fichier s’ouvre parfaitement si je retire les règles de validation ou si je réduis le nombre de lignes à quelques milliers.

👉 Existe-t-il une limite connue ou documentée sur le nombre total de règles de validation que peut contenir une feuille ou un fichier Excel ?

Merci par avance.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

2 réponses

  1. Anonyme
    2025-06-10T15:13:07+00:00

    Je suppose que cette limitation est liée à la mémoire disponible, ce qui semble cohérent étant donné que le problème disparaît lorsque le nombre de lignes est réduit, et au vu de la modification apportée pour que cela fonctionne.

    Pour contourner cela, j’ai modifié ma logique pour que la formule soit dynamique et unique pour toutes les lignes.

    L’astuce consiste à utiliser INDIRECT("E"&ROW()) pour récupérer dynamiquement la valeur de la colonne E de la ligne courante, et la passer dans un VLOOKUP pointant vers une table de correspondance vers des plages nommées.

    Cela permet d’utiliser une seule règle de validation pour toutes les lignes, tout en adaptant dynamiquement le contenu de la liste déroulante selon la ligne.

    Le fichier s’ouvre désormais correctement, avec une validation fonctionnelle.

    Voici la formule utilisée :

    INDIRECT(VLOOKUP(INDIRECT("E"&ROW()), Sheet_MappingSanitizedNames!$A$1:$B$5000, 2, FALSE))
    

    Auparavant, je n’avais pas réalisé qu’on pouvait utiliser INDIRECT("E"&ROW()), ce qui m’amenait à générer une validation distincte pour chaque ligne (ex. : VLOOKUP($E$1,…), VLOOKUP($E$52,…), etc.).

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2025-06-10T08:34:12+00:00

    Bonjour,

    Ce cas n'apparaît pas dans la page MS sur les limites Excel. On trouve des cas ressemblants sur internet. Dans ton cas, une une solution par macro est a priori possible. Si tu es intéressé, dis-le en fournissant sur les données et les règles régissant les listes de validation.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire