Monsieur Excel
Pour tout savoir faire sur Excel !

31 janvier 2012

Copie de feuille sans les objets

Récemment, j’avais une feuille contenant un tableau et un graphique associé. J’avais besoin de copier cette feuille pour en faire un double : j’ai donc utilisé le raccourci adéquat, qui consiste à tirer le nom de l’onglet vers la droite en maintenant la touche [Ctrl] enfoncée.

Remarque 1 – Ce raccourci est en effet bien plus rapide qu’un clic droit sur le nom de l’onglet, suivi par « Déplacer ou copier » et enfin « Créer une copie » puis validation…

La feuille se copie bien avec son tableau mais – oh surprise ! – le graphe a disparu de la copie.

J’ai alors pesté en me disant que c’était encore un bug de plus à reprocher aux graphes d’Excel 2007. Si vous vous promenez un peu sur le Web, vous trouverez en effet de multiples références à des bugs dans les graphes Excel 2007.

En fait, il y a une solution à ce problème de disparition de graphe : il faut passer par le bouton Office, la commande « Options Excel », la section « Options avancées » et le bloc « Couper, copier et coller » :

Le coupable est la commande « Couper, copier et trier les objets avec les cellules », qui est décochée par défaut. On se demande bien pourquoi elle n’est pas activée par défaut…

Cochez-la et les graphes – et autres objets – seront à présent aussi copiés quand vous clonerez un onglet…

Remarque 2 – Le nom de cette commande n’est pas très clair. Cela est dû au fait qu’elle ne concerne pas seulement les copies de feuilles, mais aussi les copies de blocs de cellules…

26 janvier 2012

Internationalisation d’un modèle

Comme nous l’avons vu il y a quatre jours avec nos calculs de ratios, certaines formules – en particulier celles qui utilisent des arguments texte – peuvent ne plus fonctionner normalement quand on passe d’un Excel en français à un Excel en anglais, ou vice versa.

J’ai souvent été confronté – lors de mes créations de modèles pour des multinationales – à de tels problèmes d’origine linguistique, ou à d’autres encore pour des clients dont le parc était constitué à la fois de PC sous Windows et de Macs. En effet, le passage d’un modèle sous Windows à un modèle sous Mac, ou vice versa, n’est pas une opération neutre et peut aboutir à des dysfonctionnements.

Il y a donc un certain nombre de précautions à prendre si l’on veut que le même modèle Excel marche tout aussi bien sous Windows que sous Mac, ou en français comme en anglais,…

Nous allons voir aujourd’hui comment remplacer la formule de la cellule C2 – dans le modèle présenté il y a quatre jours – par une formule qui fonctionne indifféremment avec un Excel en français ou en anglais.

Nous voyons en D1 le contenu de la formule en C1. Cette formule utilise le nom « Langue », dont nous voyons la définition dans la fenêtre « Modifier le nom ».

L’astuce repose dans l’évaluation de 1*"0.0". On a en effet, depuis une vingtaine d’années le droit dans Excel de multiplier un nombre par un texte représentant un nombre. Dans les premières versions d’Excel, il fallait utiliser 1*cnum("0.0")

Remarque – Il est aisé de vérifier le bon fonctionnement de cette formule. Il suffit pour cela de passer dans Windows par le panneau de configuration, de lancer le programme « Options régionales et linguistiques », et de remplacer la virgule de décimalisation par le point. Vous vous retrouvez dans ce cas avec un Excel « comme en anglais », et la cellule C2 affiche alors « 0.5 :1 » !

22 janvier 2012

Divers calculs de ratios...

Dans le monde anglo-saxon, il est fréquent de représenter des ratios sous la forme a:b, quitte à arrondir un peu les valeurs a et b quand les deux valeurs de départ ne sont pas réellement dans un ratio simple. Là où un français, avec la culture probabiliste héritée de ses illustres ancêtres statisticiens, dira qu’il y a 75% de chances qu’un événement survienne, l’anglo-saxon parlera d’un ratio de 3:1

C’est là toute la différence entre la théorisation de la probabilité, en France, et la maîtrise des paris des bookmakers, en Angleterre…

Les valeurs en B1 et B2, dans la copie d’écran ci-dessous, ne sont pas dans un ratio simple, mais on peut aboutir à un ratio arrondi qui n’est pas trop éloigné de la valeur réelle.

Nous allons commenter ci-dessous ce qui a été obtenu dans le bloc C1:C6…

C1 et C2 aboutissent exactement au même résultat. Dans le cas de C1, la formule est assez simple, mais il n’y a pas de format particulier. En revanche, le résultat n’est pas numérique, ce qui peut poser un problème si le résultat de cette cellule doit être utilisé dans une formule. Dans le cas de C2, la formule est simple et le résultat est numérique : c’est le format personnalisé 0,0":1" qui fait le travail à lui tout seul...

Les formules de C3, C4 et C5 montrent comment on peut spécifier le nombre de décimales du dénominateur. Excel arrondit alors de façon à trouver le résultat le plus proche.

On peut aussi, comme en C6 – et cela, peu d’utilisateurs d’Excel le savent – spécifier précisément le nombre à utiliser pour le dénominateur. Excel trouve alors le numérateur le plus proche.

Enfin, en utilisant la fonction PGCD() en C9, on trouve le ratio exact qui correspond aux simplifications possibles entre le numérateur et le dénominateur. Dans notre exemple en C9, si l’une ou l’autre des deux valeurs était modifiée d’une seule unité, aucune simplification ne serait possible !

Remarque – Dans le cas de la formule en C1, le résultat ne sera pas adapté si vous ouvrez ce fichier avec un Excel en anglais. En effet, il faudrait dans ce cas utiliser le format 0.0 à la place du format 0,0 !

18 janvier 2012

Afficher la formule de la cellule

Il est parfois utile – en particulier dans les applications pédagogiques – de reproduire, dans la cellule à droite d’une formule délicate, le texte de la formule.

La façon la plus simple d’atteindre cet objectif est d’utiliser les macros Excel 4 qui, contre toute attente et contrairement aux annonces de Microsoft en 1993, à la sortie d’Excel 5, continuent encore à fonctionner.

Reprenons le modèle publié dans l’article du 21 juillet 2011, en effaçant les colonnes C et suivantes pour simplifier la présentation.

Mettons-nous en C13 et définissons le nom « Formule » comme dans la fenêtre ci-dessous. Il suffit ensuite d’entrer la formule =formule dans la cellule C13 – et à la reproduire vers le bas – pour afficher en C13:C18 le contenu des formules de B13:B18.

Remarque 1 – Nous avons ôté de la définition du nom la référence à la feuille qui était venue automatiquement quand nous avons pointé sur la cellule à gauche. Nous avons aussi rendu cette référence relative. Grâce à ces deux opérations, la formule correspondra toujours à la cellule de gauche, quelle que soit la feuille active.

Remarque 2 – Si vous placez la définition de ce nom dans le classeur Perso.xls qui s’ouvre automatiquement au lancement d’Excel, vous pourrez utiliser ce nom dans n’importe quel classeur. Le seul problème est que, sur un autre ordinateur, la formule « =formule » engendrera alors une erreur #NOM ! car le nom ne sera plus reconnu...

14 janvier 2012

Excellente année 2012 !

Me voilà de retour après 15 jours en Inde où j’ai pu vivre le cyclone Thane : au moins 46 morts et quasiment la moitié des arbres de Pondichéry abattus. Pour en savoir plus : http://en.wikipedia.org/wiki/Cyclone_Thane

Ne partez pas en voyage avec moi ! J'étais aussi en Californie en 1989, lors du plus gros tremblement de terre depuis le fameux "earthquake" de 1906 : http://en.wikipedia.org/wiki/1989_Loma_Prieta_earthquake

Tout d’abord, mes meilleurs vœux, un peu tardifs pour l’année 2012 !

Une info : Microsoft m'a accordé le titre de MVP Excel 2012 :)
Je n'ai pas encore perdu mon troisième A...

Pour vous souhaiter une excellente année 2012, je reprends le modèle publié il y a deux ans. Il s'agit de rédiger un texte de vœux dont la somme des valeurs des caractères soit exactement de 2012. Vous en voyez le résultat affiché en A1 :

Nous avons reproduit en commentaire les formules de B1 – reproduite ensuite vers le bas – et de E4. La formule de E1 est la somme de la colonne B et celle de E3 est simplement =nbcar(A1).

Notez que la formule matricielle entrée en E4 permet d’obtenir directement le total 2012 des valeurs des caractères du texte en A1, sans avoir besoin de la colonne B. Encore un bel exemple de formule matricielle !

Remarque 1 – Je n’ai pas réussi hélas à me passer de la cellule E3 en remplaçant dans la formule matricielle le « 22 » par « nbcar(A1) ». Cela ne passe pas au niveau de la syntaxe…

Remarque 2 - La beauté de la chose, c'est que le texte de vœux ci-dessus peut être utilisé pendant 10 ans, en adaptant l'année de 2010 à 2019 : chaque fois, la somme des valeurs des caractères sera égale à la valeur de l'année !