Monsieur Excel
Pour tout savoir faire sur Excel !

29 juillet 2008

La barre d’accès rapide

Un des plus gros changements, pour l’amateur éclairé qui passe d’Excel 2003 à Excel 2007 est la perte des deux barres d’outils qu’il avait aisément personnalisées pour rendre son Excel plus performant. Ceci, ajouté à la disparition de ses menus habituels, fait que de nombreuses commandes qui étaient auparavant en accès immédiat (par un bouton) ou rapide (par une commande de menu) ne sont plus aussi rapidement accessibles.

La clef, pour résoudre ce problème, est de personnaliser la barre d’outils
« Accès rapide », en haut de l’écran. En effet, je trouve pour ma part totalement inefficace de devoir passer par le bouton Office pour avoir accès à de nombreuses commandes qui étaient – et devraient toujours être – directement accessibles par un bouton.

Cliquez donc dans le bouton à droite de la barre d’outils « Accès rapide », le bouton « Personnaliser la barre d’outils Accès rapide », sélectionnez « Autres commandes … », puis dans le premier menu déroulant, sélectionnez l'option
« Toutes les commandes ».

Il ne vous reste alors plus qu’à ajouter toutes les commandes qui vous intéressent. Dans ce premier exemple, je me suis contenté de mettre les outils de base d’ouverture, aperçu, impression (avec le dialogue), enregistrement et – pour m’amuser – l’appareil photo.

On peut aisément, dans ce dialogue de personnalisation, modifier l’ordre des boutons. Voici le résultat avec le dialogue de personnalisation ouvert :

Remarque 1 – Avec mes petits yeux fatigués, je regrette que l’on ne dispose pas d’une commande permettant d’afficher les icônes de la barre d’outils
« Accès rapide » dans une plus grande taille.

Remarque 2 – Il ne semble hélas pas y avoir la possibilité – comme nous l’avions sous 2003 – d’insérer de petites barres de séparation verticale entre les familles d’outils.

Remarque 3 – Quand je me serai bien rôdé à Excel 2007, j’aurai certainement ajouté d’autres outils à cette barre. Je vous montrerai alors le résultat de ce travail.

25 juillet 2008

Mes débuts avec Excel 2007…

En règle générale, je ne me presse jamais pour utiliser la toute nouvelle version d’un logiciel grand public, laissant à d’autres la tâche délicate, et ingrate, de découvrir pour le plus grand bénéfice de son éditeur – qui aurait dû mieux faire son travail en amont – une partie des nombreux bugs encore présents dans cette version. Pour les mêmes raisons, la plupart de mes clients – dans mon activité de conseil – en font autant.

C’est bien pourquoi, à quelques rares exceptions près, je n’avais encore jamais travaillé avec Excel 2007 avant la semaine dernière où – pour la première fois – un de mes clients a exprimé sa volonté expresse d’utiliser Office 2007.

Certes, cette dernière année, j’ai eu – dans mes cours à HEC – certains élèves (jamais plus de 15% dans un groupe) piégés avec Excel 2007 qui n’arrivaient souvent pas – avec cette version – à reproduire ce que je leur montrais avec Excel 2003. Parfois, je parvenais à trouver la solution en temps réel, parfois il me fallait attendre la séance suivante pour la trouver et la leur montrer…

Donc, là, le pas est franchi. Je sais à présent utiliser Excel 2007 et vais vous faire profiter de mes remarques et suggestions à cet égard. Attendez-vous par conséquent à un certain nombre de livraisons, dans ce blog, relatives à la version 2007 et à Vista puisque, tant qu’à faire, j’ai à présent les deux à la fois sur un nouveau portable que je me suis acheté, afin de pouvoir quand même continuer à travailler « normalement », sur mon ancien portable, en Excel 2003.

En effet, force a été de constater que la cohabitation – sur le même PC– d’Office 2003 et Office 2007 ne se passe pas bien, sauf à créer – ce que je ne pouvais pas faire pour diverses raisons – deux boots (systèmes de démarrage) différents.

Message à l’adresse de Microsoft – Cela serait si sympa si un jour vous nous permettiez – comme cela a été le cas dans le temps – de faire coexister deux versions d’Excel (par exemple 2003 et 2007, ou française et anglaise) sur le même système d’exploitation.

21 juillet 2008

Explosion depuis une base

Le 5 octobre 2006, je vous ai présenté un add-in appelé « Data explosion » dont une des fonctionnalités était de créer rapidement une série de feuilles, chacune d’entre elles étant relative à une modalité d’un champ donné dans une base de données.

Cette fonctionnalité peut être utilisée en direct dans Excel, sans cet add-in, à partir du moment où l’on dispose d’un tableau croisé dynamique (TCD) relatif à la base.

Prenons comme exemple la base ci-dessous dans laquelle, par souci de compacité, j’ai collé l’image d’un TCD créé dans une autre feuille, avec l’âge et le sexe en critère de page.

Pour effectuer l’éclatement de la base selon l’un de ces deux critères de page, il suffit de mettre le curseur dans le TCD (pour l’activer), de cliquer dans l’outil « Tableau croisé dynamique » de la barre d’outils de même nom et de sélectionner la dernière commande, très mal nommée d’ailleurs :
« Afficher les pages… ». Choisissez le critère de page selon lequel vous souhaitez obtenir une explosion, puis validez.

Aussitôt, Excel crée une feuille pour chacune des modalités du critère de page retenu avec, dans chacune de ces feuilles, le TCD correspondant à cette modalité.

17 juillet 2008

La même chose, sans VBA !

Pour ceux d’entre vous qui sont allergiques au VBA, nous allons voir aujourd’hui comment obtenir le même résultat que dans le message du 12 juillet – c’est-à-dire la mise en relief de toutes les cellules contenant une formule –, sans recours au VBA.

Sans recours au VBA, certes, mais pas sans recours à la programmation. La solution que je vous propose utilise en effet le langage macro d’Excel 4 – ce qui nous ramène à l’année 1992 ! Cette solution est un peu plus compliquée, mais c’est le prix à payer pour se passer du VBA…

Voici – toujours avec C15 comme cellule active – l’écran définissant le format conditionnel de la cellule ainsi que la définition du nom utilisé dans cette formule :

La fonction Lire.Cellule(41;adresse) du langage macro Excel 4 récupère la formule utilisée comme définition de la cellule logée en adresse. Le nom
« Formule » identifie donc le premier caractère de la formule de C15. Quand ce premier caractère est un signe « = », cela signifie que nous avons affaire à une formule. CQFD !

Remarque 1 – Notez que la définition du nom est relative : il est formulé en fonction de « C15 » et non de « $C$15 », grâce à quoi il fera toujours référence à la formule de la cellule active.

Remarque 2 – Nous aurions aussi pu définir le nom avec =lire.cellule(41;Feuil1!C15) et mettre =gauche(Form;1)="=" comme formule pour le format conditionnel.

12 juillet 2008

Un format pour les formules

Peut-on utiliser un format conditionnel pour identifier d’un coup d’œil dans une feuille toutes les cellules contenant des formules ?

Certes, on peut déjà sélectionner d’un coup toutes les cellules contenant une formule grâce à la commande Edition – Atteindre – Cellules – Formules. Il est même alors possible, parmi les cellules contenant des formules, de ne garder que celles contenant des nombres, des valeurs logiques, des textes et/ou des erreurs…

Mais, pour mettre en relief de façon durable toutes les cellules d’une feuille qui contiennent une formule, il faut utiliser un format conditionnel. Voici la macro utilisée par ce format ainsi que le format lui-même, la cellule active étant la cellule C15 :

Remarque – Les parenthèses après « VRAI » sont facultatives. Je ne les ai mises que pour mettre en relief l’existence de la fonction vrai().

08 juillet 2008

Date et heure d’après du texte

Un lecteur m'a posé le problème suivant : il a en B1 une date écrite sous forme de texte et en B2 une heure écrite elle aussi sous forme de texte. Ces deux éléments proviennent d’imports effectués depuis des bases de données externes. Il souhaite obtenir en B3 la date et l’heure actuelle, sous forme numérique, afin de pouvoir ensuite effectuer des opérations dans lesquelles cette date interviendrait.


La formule de B3 est la suivante : =date(droite(B1;4);stxt(B1;4;2);gauche(B1;2))+temps(gauche(B2;2);stxt(B2;4;2);droite(B2;2))

Remarque 1 – On voit bien que les cellules B1 et B2 contiennent du texte car il est affiché à gauche de la cellule.

Remarque 2 – On a le droit faire la somme des deux fonctions : en effet, la fonction date() renvoie un jour (donc une valeur entière) et la partie heure une partie décimale uniquement.

Remarque 3 – La cellule B3 peut bien entendu être formatée comme vous le souhaitez…

Remarque 4 – Pour en savoir plus sur les dates dans Excel, ne manquez pas
« La grand-mère de Bill Gates », du 14 décembre 2005. Pour en savoir plus sur les fonctions de date et heure, lisez mes messages du 13 et du 17 août 2007.

04 juillet 2008

Lien hypertexte dans le dossier

Nous avons vu comment effectuer la « Création d’un lien hypertexte stable » dans notre message du 28 novembre 2006, à l’aide de la fonction lien_ hypertexte().

Parfois, on souhaite créer un lien hypertexte vers un classeur qui ne sera pas dans un dossier précis du disque dur, mais uniquement dans le dossier actif.

L’avantage est que, quand on déplacera à la fois le classeur « appelant » et le classeur « appelé », le lien hypertexte fonctionnera immédiatement, sans que la moindre manipulation ne se révèle nécessaire.

Voici un exemple, la formule de la cellule A1 étant reproduite dans son commentaire :


Pour vous aider à mieux comprendre cette formule, nous avons entré en A3 la formule =cellule("filename"). Cette fonction a été présentée en détail dans notre message du 14 décembre 2006.

Remarque – N’oubliez pas d’ajouter le second argument « $B$1 » à la fonction cellule() si vous voulez être sûr qu’il s’agit bien du dossier du classeur actif et non du dossier où se trouve le classeur dont on vient de modifier une cellule !