Monsieur Excel
Pour tout savoir faire sur Excel !

26 décembre 2014

Masquer les erreurs à l’impression

Pour reprendre l’exemple publié il y a quelques jours, cela ne vous pose pas toujours de problème d’avoir certaines erreurs affichées à l’écran, tant que cela ne perdure pas au moment où vous imprimez votre rapport.

Vous disposez alors d’une seconde solution, encore plus simple à mettre en œuvre que la création d’un format conditionnel !

Cette solution est assez peu connue, c’est pourquoi je me permets de vous la présenter. Il suffit pour cela de garder la table telle qu’elle était au départ, avec les messages d’erreur originaux.

Vous activez la commande « Imprimer les titres » de l’onglet « Mise en page », et vous déroulez le menu de la commande « Erreurs de cellule comme : ». Il suffit alors de sélectionner l’option « vide » pour que toutes les cellules contenant des erreurs soient affichées vides à l’impression…




20 décembre 2014

Masquage des erreurs à l’écran

Il arrive qu’un tableau, même bien conçu, comporte des erreurs. C’est le cas du tableau ci-dessous où nous répertorions le salaire moyen d’un groupe de personnes, par sexe, dans plusieurs pays. La dernière colonne affiche le salaire moyen, indépendamment du sexe.

Certains pays n’ayant pas de représentants des deux sexes, cela engendre automatiquement des erreurs de type #DIV/0!, comme le montre le premier tableau ci-dessous. C’est aussi bien entendu le cas pour tout pays ne comptant aucune personne, comme l’Angleterre.


Une solution simple consiste à sélectionner le bloc L11:N21 et à définir un format conditionnel spécifiant que, si la cellule comporte une erreur, la police de caractères doit être de couleur blanche. Nous voyons comment cela est défini dans la seconde copie d’écran.

La dernière copie d’écran, entourée d’un trait bleu, illustre le résultat obtenu.

Remarque – Si vous sélectionnez tout le bloc, vous verrez alors apparaître le contenu les cellules masquées en blanc sur un fond bleuté.


13 décembre 2014

Texte après la dernière occurrence

Dans le dernier article, nous nous sommes intéressés au thème  « Classeurs, fichiers et onglets ».

Dans l’exemple ci-dessous, nous utilisons en B4 une de ces techniques pour récupérer le chemin, le nom du classeur actif et le nom de l’onglet actif dans ce classeur.

Supposons que nous souhaitions en extirper – en B5 – les noms du classeur et de l’onglet, en ignorant le chemin. Il s’agit donc de prendre la partie droite du texte, après la dernière occurrence du « \ ». Le problème est qu’il n’y a pas de fonction Excel qui récupère la dernière occurrence d’une chaîne de caractères…


Nous avons construit à cet effet une petite macro-fonction qui résout le problème de façon tout à fait esthétique en utilisant une fonction peu connue d’Excel, StrReverse. En effet, la dernière occurrence est tout simplement la première occurrence de la chaîne renversée !



07 décembre 2014

Classeurs, fichiers et onglets

Dans l’article précédent, nous avons utilisé la fonction « Cellule », un héritage d’Excel 4. Nous avons déjà utilisé à plusieurs reprises les commandes macros Excel 4 qui – miraculeusement – marchent toujours aujourd’hui !

Ce qui est merveilleux avec ces commandes macro, c’est qu’elles permettent d’obtenir, sans VBA, des résultats qui autrement ne sauraient se passer de code VBA . C’est le cas dans l’exemple ci-dessous où – sans VBA ! – , nous créons trois listes : la liste des classeurs Excel ouverts, la liste des fichiers du répertoire actif, et enfin la liste des onglets du classeur actif.

Nous avons défini trois noms pour cet exemple :
Fenêtres, défini par =fenetres()
Feuilles, défini par =lire.classeur(1)
Fichiers, défini par =fichiers()


Formule de B3 : =sierreur(index(Fenêtres;A3);"")
Formule de C3 : =sierreur(index(Fichiers;A3);"")
Formule de D3 : =index(Feuilles;A3)

Les autres formules sont affichées en commentaire.

Remarque – Les macros Excel 4 ne se recalculent pas avec un simple calcul déclenché par [F9]. Pour les recalculer, il faut un calcul complet, lancé par CalculateFull en VBA ou par [Ctrl]-[Maj]-[F9] en direct.


02 décembre 2014

Classeur, chemin et feuille

Nous avions publié un article appelé « Les noms du classeur, du chemin et de la feuille » le 14 décembre 2006. Voici une actualisation de cet article.

Dans cet exemple, nous utilisons les fonctions cellule() et informations() pour récupérer séparément le nom du classeur, le nom de la feuille, le nom du chemin du classeur et enfin le nom du chemin « actif », c’est-à-dire celui dont on voit la liste des fichiers quand on passe par la commande « Ouvrir » du menu Fichier.


Pour A1 et B7, nous avons mis les formules en commentaire, il est donc superflu de les décrire ici.

Remarque 1 – Notez la présence du second argument dans la formule de la cellule A1 : si nous l’avions omis, A1 ferait référence à la feuille et au classeur de la dernière cellule modifiée, et donc pas nécessairement à cette feuille ni à ce classeur !

Voici donc les formules utilisées dans les autres cellules :
B4 : =stxt(A1;cherche("[";A1)+1;cherche("]";A1)-cherche("[";A1)-1)
B5 : =droite(A1;nbcar(A1)-cherche("]";A1))
B6 : =gauche(A1;cherche("[";A1)-1)

Ces formules sont assez simples car elles font référence à la cellule A1. Si l’on voulait tout calculer à chaque fois en une seule cellule, ces formules deviendraient nettement plus lourdes :
C4 : =stxt(cellule("filename";$A$1);cherche("[";cellule("filename";$A$1))+1;
cherche("]";cellule("filename";$A$1))-cherche("[";cellule("filename";$A$1))-1)
C5 : =droite(cellule("filename";$A$1);nbcar(cellule("filename";$A$1))-cherche("]"; cellule("filename";$A$1)))
C6 : =gauche(cellule("filename";$A$1);cherche("[";cellule("filename";$A$1))-1)

Remarque 2 – Il est intéressant de noter que, si l'on voulait récupérer les noms du classeur, de la feuille, ou le chemin, il faudrait normalement passer par des macros en VBA. Ici, nous obtenons le même résultat directement avec de simples (si l'on peut dire) formules...