Monsieur Excel
Pour tout savoir faire sur Excel !

27 février 2009

Somme.Si.Ens() et Nb.Si.Ens()

Avec Excel 2007, Microsoft nous a donné deux nouvelles fonctions de calcul, qui enrichissent les fonctions Somme.Si() et Nb.Si() que nous vous avons présentées le 25 février 2006 et le 2 mars 2006.

Il s’agit des fonctions Somme.Si.Ens() et Nb.Si.Ens() dont l’aide ne dit pas ce que signifie le « Ens » ainsi ajouté : Ensemble ?

L’exemple ci-dessous illustre leur utilisation avec à titre de comparaison le même résultat obtenu à chaque fois avec une fonction BD…().

Les formules utilisées sont les suivantes :

Personnes de 27 ans :
I5 : =BDSOMME(A1:F26;E1;H1:H2)
I6 : =SOMME.SI.ENS(E:E;D:D;27)
I11 : =BDNB(A1:F26;E1;H1:H2)

I12 : =NB.SI.ENS(D:D;27)

Hommes de 27 ans :
I8 : =BDSOMME(A1:F26;E1;H1:I2)
I9 : =SOMME.SI.ENS(E:E;D:D;27;A:A;"m")
I14 : =BDNB(A1:F26;E1;H1:I2)
I15 : =NB.SI.ENS(D:D;27;A:A;"m")

Remarque 1 – En fait, ces nouvelles fonctions ne font rien que l’on ne sache déjà faire avec une fonction BD…() mais elles évitent la création d’une zone de critères comme H1:H2 ou H1:I2, selon le cas. Ceci dit, cette simplification a un inconvénient car elle aboutit à une moindre lisibilité du modèle : il faut en effet voir la formule pour comprendre d’où vient le résultat.

Remarque 2 – Faites très attention, car le champ sur lequel on fait la somme est en première position dans Somme.Si.Ens() alors qu’il était en troisième position dans Somme.Si(). Microsoft a été obligé de changer sa place car il n’y a qu’un champ de sommation alors qu’il peut y avoir un nombre variable de doublons « colonne;valeur ».

23 février 2009

La chasse aux éléments désactivés

Le problème que je décrivais il y a quatre jours provient d’un bug d’Excel, mais ce bug est un peu indirect.

En effet, dans certains cas, quand Excel rencontre des problèmes de compatibilité entre add-ins – ou compléments Excel, dans le langage d’Excel 2007 – il s’en tire en désactivant, sans vraiment vous en informer en détail, certains de vos add-ins.

Pour voir s’il y a des éléments désactivés, utilisez la commande « A propos de Microsoft Excel » du menu « ? », le menu d’aide, puis cliquez dans le bouton « Eléments désactivés ». Vous obtiendrez alors la liste de ces éléments :

C’est en faisant cela que j’ai découvert que le pauvre classeur « Perso.xls » se trouvait ainsi sur la liste noire. Au lieu de renommer ce classeur, comme je l’ai proposé il y a quatre jours, il suffisait donc de réhabiliter ce classeur.

Remarque – Ceci dit, il n’est pas tout à fait normal qu’Excel mette ainsi, sans vraiment vous en avertir de façon claire, des add-ins et classeurs sur sa liste noire…

19 février 2009

Perso.xls ne se charge plus !

Il m’est arrivé récemment une mésaventure. A l’ouverture d’Excel, le classeur Perso.xls qui, sur mon ordinateur (Excel 2003), se trouve dans le chemin indiqué ci-dessous, s’est subitement mis à ne plus se charger automatiquement en mémoire à l’ouverture d’Excel.

C’était particulièrement fâcheux car cela rendait m’empêchait d’utiliser les macros que j’avais associées aux outils de mes barres personnalisées. Pour les récupérer, j’étais obligé, à chaque fois, d’aller ouvrir volontairement ce classeur Perso.xls.

Il s’agit en fait d’un bug d’Excel !

La solution est toute simple : il suffit de renommer ce classeur, comme je l’ai fait ci-dessus en utilisant le nom Personnel.xls. N'importe quel autre nom aurait d'ailleurs été valable.

Attention aux macros ultérieures !

Si par la suite, vous enregistrez des macros dans votre classeur de macros personnelles, elles se logeront automatiquement dans un nouveau classeur Perso.xls qui persistera à ne pas s’ouvrir avec Excel.

Il vous faudra donc penser à copier ces macros dans le classeur renommé, puis à détruire le nouveau classeur Perso.xls ainsi rendu inutile.

NDLR – Lisez la rubrique suivante (23 février 2009) pour plus de détails...

15 février 2009

Insertion automatique de « minuit »

Un lecteur me pose la question suivante : il a dans un modèle une séquence d’heures enregistrées par un capteur, sous le format 00:00.

Chaque fois qu’une mesure est inférieure à la mesure précédente, donc dans le cas où on est passé au jour suivant, il a besoin d’insérer une ligne avec la valeur 00:00 pour minuit.

Voici la macro qui résout le problème, sous réserve d’avoir attribué le nom
« Données » à la série d’heures initiale :

Si vous lancez la macro, vous constaterez qu’elle a bien inséré les lignes requises pour obtenir la séquence finale: 22:32 – 00:00 – 02:12 – 22:38 – 00:00 – 22:32 – 00:00 – 05:34 – 06:28 – 17:55 – 00:00 …

Remarque – Telle quelle, cette macro ne marche pas si la cellule précédant le bloc « Données » n’existe pas, c’est-à-dire si le bloc Données débute en ligne 1. Par ailleurs, elle peut insérer une ligne en trop si la cellule précédant le bloc « Données » contient une valeur.

10 février 2009

Conversion avec sauts de ligne

Vous avez reçu une base de données dans laquelle (cf. A1:A4) les quatre renseignements relatifs à chaque personne sont séparés par des sauts de ligne. Vous souhaitez convertir cela dans une base Excel avec quatre colonnes et une ligne par personne.

Pour cela, sélectionnez la zone à convertir (les cellules à leur droite étant vides) et exécutez la commande « Convertir » du menu Données. Alors, sélectionnez l’option « Délimité », ce qui vous amène à l’écran ci-dessous dans lequel vous cochez « Autre » et entrez [Alt]-010 dans le champ à droite. Le code 10 correspond au saut de ligne engendré par la combinaison [Alt]-[Entrée].

Aussitôt, vous apercevez en dessous la distribution proposée pour la conversion et vous validez pour obtenir le résultat souhaité.

Remarque 1 – Si vous n’avez pas de pavé numérique, tant pis pour vous, cela ne marchera pas ! A moins qu’un lecteur ou une lectrice ne nous indique une solution :)

Remarque 2 – Notez bien que cela fonctionne avec [Alt]-010 mais pas avec [Alt]-10. Pour la touche [Alt], les zéros à gauche sont significatifs !

Remarque 3 – Cet exemple montre bien que les caractères obtenus avec la touche [Alt] peuvent avoir une utilité pratique, au-delà de la seule présence de nouveaux caractères.

07 février 2009

Les caractères avec la touche [Alt]

Une autre façon d’obtenir des caractères avec une police revient à utiliser la touche [Alt], mais cela ne fonctionne qu’avec le pavé numérique, pas avec les chiffres en majuscules.

La technique est simple : maintenez la touche [Alt] enfoncée, tapez à l’aide du pavé un code numérique de quatre chiffres au maximum, puis lâchez la touche [Alt] pour obtenir le résultat.

Voici par exemple, en police Arial, ce que donnent un certain nombre de caractères avec :
● en fond jaune, le résultat obtenu avec =car(n) – cf. messages du 29 janvier et du 2 février ;
● en fond bleu, le résultat obtenu en entrant – comme indiqué ci-dessus – [Alt]-n.

Remarque 1 – Du caractère 33 au caractère 125, les résultats sont identiques pour la plupart des polices.

Remarque 2 – On découvre avec la touche [Alt] des caractères que l’on n’avait pas auparavant pour la police, par exemple la plupart des caractères de [Alt]-1 à [Alt]-31.

Il est dit que l’on peut entrer un code à quatre chiffres. Je n’ai pas fait d’essai pour voir si un code supérieur à 255 permet d’afficher un caractère inédit. Quelqu’un pourra-t-il nous le dire ?

02 février 2009

Caractères avec police graphique

Si vous cherchez ce que donne le modèle présenté le 29 janvier sur différentes polices, vous trouvez des tas de choses intéressantes, en particulier avec les polices graphiques telles que Webdings, les trois Windings ou ZapfDingbats.

Voici ce que donnent – la même chose, apparemment – les polices Windings et ZapfDingbats :

Remarque 1 – La police Windings 3, par exemple, est elle aussi assez riche en flèches de toutes sortes.

Remarque 2 – L’article « Affichage d’indicateurs graphiques » du 6 mars 2006 vous montre une utilisation intéressante de certains symboles que l’on trouve dans les polices Windings.