Meilleur auteur de réponses
Impossibilité de masquer une ligne (Excel 2010)

Question
-
Range(rows(i),rows(i+n)).Hidden=true (ou false) provoque l'erreur 1004 : "impossible de définir la propriété hidden de la classe range".
De même, la commande "masquer", par un clic droit sur lignes sélectionnées, échoue.
Les cellules correspondantes ne présente aucune particularité. En revanche, l'instruction similaire sur des colonnes et la commande manuelle sont bien effectuées.
Je n'avais jamais rencontré cette anomalie sur Excel 2003, même avec des structures complexes comme des cellules fusionnées et des formules matricielles. Si vous la connaissez, comment l'avez-vous résolue ?
Réponses
-
Le fait que l'anomalie ait disparu montre que le classeur est corrompu.Il faut copier toutes les feuilles, macros et userforms du classeurvers un classeur vierge et se servir de ce dernier à la place del'ancien.Daniel
- Marqué comme réponse Ciprian Duduiala mercredi 21 mars 2012 08:26
-
J'ai compris. La cause est une liste déroulante dont les données sont prélevées dans une colonne (la plage est définie dans les propriétés du contrôle). Tenter de masquer une ligne coupant la plage source met le contrôle en défaut et déclenche l'erreur. Du fait de son libellé, "impossible de définir la propriété Hidden de la classe Range", je cherchais bêtement sur la feuille et ne pensais absolument pas à ça. Désolé de vous avoir dérangés pour ce que je prenais pour une anomalie d'Excel et qui n'est qu'une erreur de conception.
- Marqué comme réponse Ciprian Duduiala mercredi 21 mars 2012 08:26
Toutes les réponses
-
-
Il y a forcément quelque chose, pas dans les variables ni le code puisque la syntaxe est correcte, mais sur la feuille. Malheureusement, je ne vois rien dans les cellules, pas plus que dans la doc VBA, qui expliquait pourquoi l'opération manuelle échoue également avec les lignes alors qu'elle fonctionne avec les colonnes. Je peux évidemment tout recommencer sur une feuille vierge - un travail passablement long - et espérer soit que le défaut ne se reproduise pas, soit que je comprenne comment il apparaît.
Cordialement.
-
-
Bien sûr que non, autrement je ne pourrais pas masquer les colonnes que ce soit par programme ou manuellement mais, en effet, tout se passe comme si les lignes, et elles seules, étaient protégées. Je vais me résoudre à structurer une nouvelle feuille. Peut-être trouverai-je qu'un formatage en est à l'origine.
-
Bonsoir
Bien sûr que non, autrement je ne pourrais pas masquer les colonnes que ce soit par programme ou manuellement mais, en effet, tout se passe comme si les lignes, et elles seules, étaient protégées. Je vais me résoudre à structurer une nouvelle feuille. Peut-être trouverai-je qu'un formatage en est à l'origine.
La première chose qui vient à l'idée, ce sont des cellules fusionnées, mais vous dites qu'il n'y en a pas.
Je ne sais d'ailleurs pas comment les rechercher à la main. -
-
Je suis revenu à ce fichier sur lequel je n'avais pas eu le temps de travailler hier. La copie de la plage utile de la feuille sur une nouvelle feuille du même classeur fait disparaître l'anomalie. Je ne saurai donc pas ce qui la provoquait. Toutefois, son comportement fait penser à une sélection de ligne incomplète. Hidden ne pouvant pas en masquer une partie retournerait la même erreur 1004. Ce n'est qu'une hypothèse car Rows(...).Cells.Count renvoie bien 256. Merci en tout cas de vous être penchés sur ce problème.
Cordialement.
-
Le fait que l'anomalie ait disparu montre que le classeur est corrompu.Il faut copier toutes les feuilles, macros et userforms du classeurvers un classeur vierge et se servir de ce dernier à la place del'ancien.Daniel
- Marqué comme réponse Ciprian Duduiala mercredi 21 mars 2012 08:26
-
-
J'ai compris. La cause est une liste déroulante dont les données sont prélevées dans une colonne (la plage est définie dans les propriétés du contrôle). Tenter de masquer une ligne coupant la plage source met le contrôle en défaut et déclenche l'erreur. Du fait de son libellé, "impossible de définir la propriété Hidden de la classe Range", je cherchais bêtement sur la feuille et ne pensais absolument pas à ça. Désolé de vous avoir dérangés pour ce que je prenais pour une anomalie d'Excel et qui n'est qu'une erreur de conception.
- Marqué comme réponse Ciprian Duduiala mercredi 21 mars 2012 08:26
-
Bonjour,
Merci pour avoir partagé avec nous les résultats.
Bonne journée,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.