Monsieur Excel
Pour tout savoir faire sur Excel !

30 octobre 2009

Créer un graphe en Excel 2007

Pour créer un graphe avec Excel 2007, les opérations sont normalement les suivantes, n’importe quelle cellule du bloc de données étant active :
● activer l’onglet « Insertion » ;
● cliquer sur l’icône de la famille graphique voulue ;
● cliquer sur l’icône du type de graphe désiré.

On note qu’il y a là une opération de plus qu’en Excel 2003, où il suffisait de cliquer sur l’icône de l’Assistant Graphique, puis de valider directement par
« OK », pour obtenir le graphe par défaut. Donc, le tout maintenant en trois opérations avec 2007 au lieu de deux avec 2003 ou XP.

Dès qu’un graphe est actif, la famille d’onglets « Outils de graphique » apparaît, avec ses trois onglets « Création », « Disposition » et « Mise en forme ». Nous ne nous appesantirons pas sur les multiples réglages rendus possibles par ces trois barres d’outils.

Les raccourcis de création

Heureusement, deux raccourcis nous permettent de créer un graphe en une seule opération avec Excel 2007 :
[F11] pour créer le graphe dans une feuille graphique ;
[Alt]-[F1] pour créer le graphe dans la feuille active.

Remarque – Il est malheureux que le raccourci le plus utile soit justement celui qui exige deux touches ! Malheureux aussi que, pour deux opérations si proches, on utilise deux touches de fonction différentes, F11 et F1 : ce serait plus simple à mémoriser, et plus logique, si cela avait été la même…

Pour ma part, je ne mets jamais de graphe dans une feuille graphique : cela augmente inutilement le nombre d’onglets ainsi que la mémoire occupée. En outre, cela ne permet d’afficher qu’un graphe à la fois à l’écran, ce que je trouve particulièrement contraignant.

Je préfère aussi créer rapidement un graphe, quitte à ensuite en modifier le type ou ses caractéristiques, plutôt que de définir toutes ses caractéristiques au moment de la création. Mais là, il s’agit d’une opinion tout à fait personnelle…

26 octobre 2009

« Convertir en plage » en VBA

Dans mon article du 3 octobre, je vous ai montré comment la commande
« Convertir en plage » permettait de détruire la dénaturation des lignes et des colonnes – semblable à l’effet de l’exécrable fusion de cellules – qu’Excel 2007 provoque lors de la mise en forme de tableaux.

Supposons que vous souhaitiez enregistrer une macro effectuant la conversion en plage. Vous enregistrez la macro et – surprise ! – vous constatez que la macro a complètement zappé la conversion en plage ; il ne reste que la sélection du tableau, comme on le constate dans le code suivant :

Eh oui ! Excel ne sait pas enregistrer ce type d’opération. Pour ceux qui voudraient quand même effectuer leur conversion en plage par macro, voici le code nécessaire :

… où “T1” est le nom de la feuille où se trouve le tableau.

Remarque 1 – Si vous avez plusieurs tableaux, vous pouvez consulter la zone
« Nom », à gauche de la barre de formule, et sélectionner tel ou tel nom de tableau, pour voir à quelles cellules il correspond.

Remarque 2 – Il est étrange que, quand on sélectionne – par exemple en déroulant la liste de la zone « Nom » – un tableau donné, ce tableau est bien sélectionné alors que, si l’on sélectionne le même bloc à la main, le nom du tableau n’apparaît pas dans la zone « Nom ». Ce n’est pas cohérent avec le comportement habituel d’Excel où, quand on sélectionne une ou plusieurs cellules correspondant exactement à un nom, ce nom apparaît aussitôt dans la zone « Nom ».

22 octobre 2009

Somme des cinq grandes valeurs

Dans l’exemple ci-dessous, nous voulons calculer en E1 la somme des cinq plus grandes valeurs de la colonne B.

Pour plus de clarté, nous avons mis en relief dans notre modèle toutes les cellules avec les cinq plus grandes valeurs. Nous constatons un problème sur cet exemple : il y a en fait deux valeurs à 15, la cinquième plus grande valeur. Si notre formule fait la somme de toutes les valeurs supérieures ou égales à la cinquième plus grande valeur, le total sera trop grand de 15 unités.

La formule à utiliser en E1, pour éviter ce problème, est la suivante :
=somme(si(B2:B17+ligne(B2:B17)/10^12>=grande.valeur(B2:B17+ligne(B2:B17)/ 10^12;5);B2:B17;0))

C’est une formule matricielle, à valider donc avec [Ctrl]-[Maj]-[Entrée].

L'astuce fondamentale de cette formule, c'est qu’en ajoutant le numéro de ligne divisé par 10^12, nous évitons tout ex æquo possible.

Une autre formule possible, non matricielle, que nous avons saisie en E2, fait intervenir la fonction SommeProd :
=sommeprod(--(B2:B17+ligne(B2:B17)/10^12>=grande.valeur(B2:B17+ligne(B2:B17)/ 10^12;H19));(B2:B17))

Remarque – Comme nous l’avons déjà montré avec d’autres exemples, le "--" peut aisément être remplacé par "1*". De même, le dernier ";" peut lui aussi être remplacé par un "*".

18 octobre 2009

Calcul des écarts dans la famille

Un lecteur m’a posé récemment la question suivante. Il dispose dans la colonne A d’un code « Zone » et dans la colonne B d’un « Tarif ». Son objectif est de calculer en colonne C l’écart entre la valeur de la colonne B et le tarif le plus bas de sa zone :

Ainsi, pour la cellule C2, le résultat est bien la différence entre le montant de 45,45 € et la valeur la plus basse de la zone 2, le 35,09 € de la cellule B10.

La formule miracle est – une fois de plus – une formule matricielle. Celle que nous avons saisie en C2 et validée avec [Ctrl]- [Maj]- [Entrée], puis recopiée vers le bas, est la suivante :
=B2-min(si($A$2:$A$13=A2;$B$2:$B$13;10^6))

Remarque 1 – Nous avons utilisé 10^6 en supposant que cette valeur était toujours supérieur au minimum possible pour une zone quelconque.

Remarque 2 – Il était aussi possible d’utiliser la formule =B2:B13-min(si($A$2: $A$13=A2;$B$2:$B$13;10^6)), mais pourquoi faire « compliqué » quand on peut faire « simple » ?

14 octobre 2009

Mise en forme : 2003 vs. 2007

Pour en terminer avec la mise en forme d’Excel 2007, voici quelques éléments comparatifs entre le « format automatique » de la version 2003 et la « mise sous forme de tableau » (j’aurais préféré « mise en forme ») d’Excel 2007.

Nombre de formats proposés

Excel 2007 propose 60 formes de tableaux alors que la version 2003 se limite à 17 formats automatiques.

Et pourtant, je préfère les 17 propositions de la version 2003 car elles offrent une plus grande variété dans la mise en forme des totaux en ligne et/ou des totaux en colonne. En outre, elles incluent – en dernière position – la commande « Aucun » qui manque cruellement à Excel 2007.

Certes, vous pourrez dire que l’on peut toujours annuler avec [Ctrl]-z un format que l’on vient de donner et dont on n’est pas satisfait, mais quid d’un format attribué bien antérieurement, ou tout simplement par un autre utilisateur ?

Visibilité des formats

Les copies d’écran ci-dessous, réalisées à la même échelle, montrent clairement que l’on voit bien mieux avec la version 2003 ce que donnera un format qu’avec la version 2007.


Ceci dit, quand le curseur se trouve sur une des mises en forme ci-dessus dans Excel 2007, on voit dans la feuille de calcul ce que cela donne sur le tableau sélectionné : on voit donc le résultat, mais c’est un peu moins direct.

Autres inconvénients de la version 2007

Il faut enfin prendre en compte les autres inconvénients de la version 2007, présentés dans les articles précédents :

● Le filtre automatique automatiquement ajouté dans la version 2007
● L’absence d’une commande pour annuler toute mise en forme en 2007
● La personnalisation des formats dans Excel 2007 semble ne pas marcher
● La modification et la suppression des formats ne fonctionnent pas (bien)
● La destruction de la structure lignes/colonnes amenée par la version 2007

En guise de conclusion…

Pour ma part, je ne vois pratiquement rien dans la mise en forme de tableau d’Excel 2007 qui soit préférable à ce que proposait la version 2003 !

11 octobre 2009

Les problèmes de la mise en forme

Nous l’avons vu dans l’article précédent, la mise en forme de tableau d’Excel 2007 semble faire à peu près n’importe quoi, en tout cas pas ce que l’on a demandé.

Dans cet article, nous allons vous présenter quelques-uns des autres problèmes liés à la mise en forme de tableau d’Excel 2007.

Difficulté de la sélection d’un format

Les formats personnalisés que l’on a créés apparaissent en haut de la liste, avec deux inconvénients.

D’une part, il faut rester une seconde sur une icône pour voir le nom du format apparaître, alors qu’il aurait été si simple de mettre les noms en dessous des formats…

D’autre part, il est presque impossible d’identifier le format par son apparence : ainsi, l’aperçu du format « Monsieur Excel » sélectionné ci-dessous ne ressemble en rien à celui de la copie d’écran de l’article précédent.

Caractère local des formats personnalisés

Logiquement, les formats personnalisés devraient être liés à Excel. Cela aurait été trop beau : ils ne sont liés qu’au classeur.

Remarque – Si donc vous désirez récupérer un format personnalisé du classeur A dans le classeur B, il faut coller un tableau du classeur A et le coller dans le classeur B : cela crée automatiquement le format personnalisé correspondant.

Les bugs de « Modifier » et « Supprimer »

Quand on effectue un clic droit sur l’aperçu d’un format personnalisé, on a accès à plusieurs commandes dont « Modifier » et « Supprimer ».

Là, j’ai fait un certain nombre d’essais, sur différents classeurs, sans parvenir à trouver la logique du fonctionnement d’Excel 2007. Toujours est-il que la commande « Modifier » n’a l’air de marcher qu’une fois sur quatre (au mieux). Le comportement de la commande « Supprimer » est encore plus incohérent, avec trois cas de figure possibles qui semblent être aléatoires :
● la commande ne fait absolument rien ;
● la commande demande confirmation et, si l’on confirme, ne fait rien ;
● la commande demande confirmation et fait ce que l’on demande.

Bien entendu, le dernier cas est le moins fréquent…

En guise de conclusion…

Nos amis de Microsoft devraient complètement revoir leur copie sur la mise en forme de tableau d’Excel 7.

Cette fonctionnalité est particulièrement mal conçue ; pour ma part, je regrette amèrement la version 2003 !

Pire encore, comme nous l'avons vu, la mise en forme de tableau d'Excel 2007 comporte plusieurs bugs !

08 octobre 2009

Une mise en forme personnalisée ?

Une commande qui a l’air intéressante, quand on essaye de mettre en forme un tableau – cf. mes derniers messages du 30 septembre et du 3 octobre – est la commande « Nouveau style de tableau ».

Ouf ! On se dit qu’il sera enfin possible de créer une mise en forme originale qui servira peut-être à éviter certains des écueils présentés dans les deux derniers messages.

Eh bien, vous allez tomber de haut : non seulement cette fonctionnalité a-t-elle été très mal conçue, mais en plus elle est totalement buggée !

Faisons l’expérience : je crée un format « Monsieur Excel » qui met en relief les premières et dernières lignes et colonnes, ainsi que le tableau entier. Je l’applique, et voici le résultat, avec la copie d’écran de mon formatage en dessous :

L’encadrement de la première colonne ne s’est pas appliqué, pas plus que la couleur du tableau, ni celle de la ligne de totaux, ni celle du tableau entier…

Seuls le format de la première ligne et celui de la première colonne de la dernière ligne ont été modifiés et – pour cette dernière – sans même respecter le formatage demandé !

Ou bien je n’ai rien compris à la personnalisation de la mise en forme, ou bien elle ne fonctionne pas du tout !

03 octobre 2009

« Réparation » de la mise en forme

Reprenons l’exemple présenté il y a trois jours. Nous avons alors souligné deux problèmes : l’ajout du filtre automatique, que nous n’avions pas demandé, et un autre problème, « plus grave encore ».

Elimination du filtre automatique

Pour éliminer le filtre automatique, dont nous ne voyons vraiment pas quel est l’intérêt de l’avoir intégré par défaut, il faut successivement :
● cliquer dans le tableau pour activer ce tableau ;
● cliquer sur le bouton « Filtrer », dans la famille « Trier et filtrer » de l’onglet
« Données ».

Un nouveau problème

Nous avons finalement modifié la première sélection pour incorporer les totaux de la ligne 5, puis choisi un premier format de tableau, en ôtant ensuite le filtre automatique.

Nous avons ensuite formaté le second tableau avec un format « Foncé », dont nous avons aussi ôté le filtre automatique. Nous constatons alors un second problème :

En effet, un décor foncé sur une police noire par défaut aboutit, en ligne 7, à des titres illisibles. Excel aurait pu nous en prévenir, ou modifier par défaut la couleur de la police pour la rendre lisible…

Le problème « plus grave encore »

Venons-en au problème le plus grave !

Supposons que nous ayons l’intention d’insérer une colonne intermédiaire. Pour cela, sélectionnons la colonne B puis faisons un clic droit, et nous constatons avec surprise que les commandes « Insertion » et « Supprimer » (pourquoi d’ailleurs mettre une seule des deux commandes à l’infinitif ?) sont à présent désactivées.

Rien à faire, nous nous trouvons dans la même situation que quand il y a des cellules fusionnées ! Excel a perdu sa belle structure naturelle où les lignes et les colonnes sont toutes indépendantes.

La seule parade que j’aie trouvée consiste à sélectionner l’un ou l’autre des deux tableaux, à faire un clic droit sur le tableau choisi, à utiliser la commande « Table », puis la commande « Convertir en plage », et enfin à confirmer.

En conclusion, la mise en forme de tableau transforme les tableaux en structure « dure » que l’on ne peut éliminer que par la conversion en plage. Mais ce n’est pas si simple, car ce problème apparaît quand deux tableaux ont en commun une ligne ou une colonne, mais pas quand l’intersection de leurs lignes ainsi que celle de leurs colonnes sont toutes les deux vides. Allez comprendre !