Excel Performance Numero 10 - Octobre 2009

8
Sommaire Votre outil pour exceller au quotidien EXCEL Performance Editions PRAXIS Modèles et outils Pour télécharger les modèles et outils d’EXCEL Performance, créez votre compte personnel sur notre site Internet et saisis- sez le mot de passe du mois. Mot de passe du mois www.excelperformance.fr Les bonnes formules pour des arrondis sans erreur . . . page 1 Découvrez la fonction Atteindre pour effectuer des mises en forme groupées................ page 2 Trois lignes de code méconnues pour doper vos applications VBA...... page 3 Allégez le code de vos formulaires .............. page 3 De belles icônes de pointage avec Excel 2007 .......... page 4 Une fonction personnalisée pour écrire des nombres en toutes lettres .......... page 4 Protégez votre code VBA . . page 5 Forcez l'activation du pavé numérique .............. page 6 Configurez Excel pour passer à la cellule de droite après validation .... page 6 Un outil qui détecte les erreurs de vos formules automatiquement ........ page 7 Affichez et imprimez un quadrillage coloré ........ page 7 Classeurs en réseau : programmer une fermeture automatique............. page 8 Contrôler la saisie semi- automatique............. page 8 Nota Bene Pour activer la fonction ARRONDI. AU.MULTIPLE présentée dans cet article, il faut charger la macro complémentaire Utilitaire d’analyse. Pour cela, cliquez sur le menu Outils puis sur Macros complé- mentaires. Si la case Utilitaire d’analyse n’est pas déjà cochée, cochez-la. Suivez, le cas échéant, les instructions de l’assis- tant pour l’installation de la macro, et va- lidez par OK. Notez que cette procédure n’est pas nécessaire avec Excel 2007. Le piège des arrondis de présentation Le plus important avec les arrondis, c’est de bien comprendre qu’Excel fait la dis- tinction entre l’aspect d’un nombre, tel qu’il est affiché à l’écran ou imprimé, et sa valeur réelle stockée dans la cellule. Par conséquent, il peut arriver que le résultat d’un calcul soit apparemment faux, alors qu’en réalité il ne l’est pas. C’est d’autant plus déroutant qu’un ré- sultat affiché qui semble erroné peut être utilisé dans une autre formule afin de calculer un autre résultat final qui se trouve, lui, être juste. Un vrai casse-tête ! Faites ce test : tapez dans deux cellules adjacentes la valeur 1000,99 et réduisez la largeur de la seconde colonne. Dès que la colonne n’est plus suffisamment large pour afficher la valeur, Excel affiche un arrondi. Et pourtant, les deux valeurs sont identiques ! Un autre cas d’arrondi de présentation peut survenir lorsque le format de la cel- lule spécifie un nombre de décimales. Avec deux décimales, la valeur 1000,99 sera correctement affichée. Avec une seule, Excel affichera 1001,0. Et si vous utilisez des formats personnalisés, le risque est grand de se tromper : avec le format # ##0,00 €, vous obtiendrez par exemple 1000,99 € à l’écran. Ajou- tez par erreur un espace avant la virgule (# ##0 ,00 €), et la valeur affichée sera... 1,00 € ! Là encore, et dans tous les cas, la valeur réelle, stockée dans la cel- lule et utilisée pour les calculs, est bien 1000,99. Conclusion à retenir : lorsque vous constatez une erreur d’arrondi, vérifiez que la présentation est correcte avant d’incriminer votre formule. Les bonnes formules pour des arrondis sans erreur Cas pratique | tout niveau | Quand on travaille avec des valeurs numériques, on est forcément confronté un jour ou l’autre à une problématique d’arrondi. Vous connaissez sans doute la fonc- tion ARRONDI, mais connaissez-vous toutes ses subtilités ? Saviez-vous qu’Excel propose une dizaine d’autres fonctions d’arrondi ? Et que les erreurs d’arrondi que vous pouvez rencontrer dans vos feuilles de calcul ne sont pas forcément de vraies erreurs ? Voici ce qu’il faut savoir sur les arrondis, et comment utiliser les principales fonctions pour obtenir le bon résultat à coup sûr. 09XLP10_registre.xls 09XLP10_fonction.zip 09XLP10_verrnum.zip 09XLP10_erreurs.xls effacer Octobre 2009

description

Excel Performance 2k9-10

Transcript of Excel Performance Numero 10 - Octobre 2009

Page 1: Excel Performance Numero 10 - Octobre 2009

Sommaire

Votre outil pour exceller au quotidien

EXCEL PerformanceEditions PRAXIS

Modèles et outils

Pour télécharger les modèles et outils d’EXCEL Performance, créez votre compte personnel sur notre site Internet et saisis-sez le mot de passe du mois.

Mot de passe du mois

www.excelperformance.fr

Les bonnes formules pour des arrondis sans erreur . . . page 1

Découvrez la fonction Atteindre pour effectuer des mises en forme groupées. . . . . . . . . . . . . . . . page 2

Trois lignes de code méconnues pour doper vos applications VBA. . . . . . page 3

Allégez le code de vos formulaires . . . . . . . . . . . . . . page 3

De belles icônes de pointage avec Excel 2007 . . . . . . . . . . page 4

Une fonction personnalisée pour écrire des nombres en toutes lettres. . . . . . . . . . page 4

Protégez votre code VBA. . page 5

Forcez l'activation du pavé numérique . . . . . . . . . . . . . . page 6

Configurez Excel pour passer à la cellule de droite après validation . . . . page 6

Un outil qui détecte les erreurs de vos formules automatiquement . . . . . . . . page 7

Affichez et imprimez un quadrillage coloré . . . . . . . . page 7

Classeurs en réseau : programmer une fermeture automatique. . . . . . . . . . . . . page 8

Contrôler la saisie semi- automatique. . . . . . . . . . . . . page 8

Nota BenePour activer la fonction ARRONDI.AU.MULTIPLE présentée dans cet article, il faut charger la macro complémentaire Utilitaire d’analyse. Pour cela, cliquez sur le menu Outils puis sur Macros complé-mentaires. Si la case Utilitaire d’analyse n’est pas déjà cochée, cochez-la. Suivez, le cas échéant, les instructions de l’assis-tant pour l’installation de la macro, et va-lidez par OK. Notez que cette procédure n’est pas nécessaire avec Excel 2007.

Le piège des arrondis de présentation

Le plus important avec les arrondis, c’est de bien comprendre qu’Excel fait la dis-tinction entre l’aspect d’un nombre, tel qu’il est affiché à l’écran ou imprimé, et sa valeur réelle stockée dans la cellule.Par conséquent, il peut arriver que le résultat d’un calcul soit apparemment faux, alors qu’en réalité il ne l’est pas. C’est d’autant plus déroutant qu’un ré-sultat affiché qui semble erroné peut être utilisé dans une autre formule afin de calculer un autre résultat final qui se trouve, lui, être juste. Un vrai casse-tête !Faites ce test : tapez dans deux cellules adjacentes la valeur 1000,99 et réduisez la largeur de la seconde colonne. Dès

que la colonne n’est plus suffisamment large pour afficher la valeur, Excel affiche un arrondi. Et pourtant, les deux valeurs sont identiques !

Un autre cas d’arrondi de présentation peut survenir lorsque le format de la cel-lule spécifie un nombre de décimales. Avec deux décimales, la valeur 1000,99 sera correctement affichée. Avec une seule, Excel affichera 1001,0. Et si vous utilisez des formats personnalisés, le risque est grand de se tromper : avec le format #  ##0,00  €, vous obtiendrez par exemple 1000,99 € à l’écran. Ajou-tez par erreur un espace avant la virgule (# ##0 ,00 €), et la valeur affichée sera... 1,00 € ! Là encore, et dans tous les cas, la valeur réelle, stockée dans la cel-lule et utilisée pour les calculs, est bien 1000,99.Conclusion à retenir  : lorsque vous constatez une erreur d’arrondi, vérifiez que la présentation est correcte avant d’incriminer votre formule.

Les bonnes formules pour des arrondis sans erreur

Cas pratique | tout niveau |Quand on travaille avec des valeurs numériques, on est forcément confronté un jour ou l’autre à une problématique d’arrondi. Vous connaissez sans doute la fonc-tion ARRONDI, mais connaissez-vous toutes ses subtilités  ? Saviez-vous qu’Excel propose une dizaine d’autres fonctions d’arrondi ? Et que les erreurs d’arrondi que vous pouvez rencontrer dans vos feuilles de calcul ne sont pas forcément de vraies erreurs ? Voici ce qu’il faut savoir sur les arrondis, et comment utiliser les principales fonctions pour obtenir le bon résultat à coup sûr.

0 9 X L P 1 0 _ r e g i s t r e . x l s 0 9 X L P 1 0 _ f o n c t i o n . z i p 0 9 X L P 1 0 _ v e r r n u m . z i p 0 9 X L P 1 0 _ e r r e u r s . x l s

effacer

Octobre 2009

Page 2: Excel Performance Numero 10 - Octobre 2009

Il arrive souvent que l’on souhaite mo-difier, dans toute une feuille de calcul, la mise en forme d’éléments précis, par exemple la police de caractères de tout le texte ou la couleur des résultats cal-culés. Plutôt que de modifier la mise en forme individuellement, il est logique de sélectionner d’abord toutes les cel-lules concernées. Mais c’est un peu fastidieux, et on peut facilement en ou-blier si la feuille est grande... sauf si on utilise, pour effectuer cette sélection, la fonction Atteindre.

Tapez le raccourci Ctrl + T puis cliquez sur le bouton Cellules.

Pour sélectionner toutes les cellules de la feuille contenant du texte, cochez la case Constantes et, sous Formules, décochez les cases Nombre, Valeurs logiques et Erreurs.Pour cibler les cellules contenant des valeurs, cochez la case Constantes et, sous Formules, décochez les cases Texte, Valeurs logiques et Erreurs.

Pour les cellules contenant des résul-tats calculés, cochez la case Formules et décochez les cases Texte, Valeurs logiques et Erreurs.

Cliquez sur OK. Toutes les cellules (vi-sibles ou non) de la feuille qui corres-pondent au critère sont alors sélection-nées. Vous pouvez alors appliquer la mise en forme souhaitée avec les bou-

tons de la barre d’outils Mise en forme, ou en cliquant sur le menu Format puis Cellule.

Avec Excel 2007, cliquez sur les bou-tons de mise en forme du groupe Po-lice dans l’onglet Accueil du ruban, ou cliquez sur la flèche à droite de Police pour afficher la boîte de dialogue For-mat de cellule.

Arrondir à une précisionLa fonction ARRONDI accepte deux arguments, avec la syntaxe suivante  : =ARRONDI(nombre;nombre de chiffres).

Si nombre de chiffres est positif, il s’agit d’un arrondi classique. Avec la formule =ARRONDI(A1;2), la valeur retournée sera l’arrondi de la valeur contenue dans la cellule A1 à deux décimales près. Notez que 0,4449 est arrondi à 0,44. Les valeurs 0,4450 et suivantes, jusqu’à 0,4499, sont arrondies à 0,45.Si nombre de chiffres vaut 0, la valeur retournée est l’entier le plus proche (avec le même principe d’arrondi).Si nombre de chiffres est négatif, l’arrondi s’effectue sur le nombre de chiffres à gauche de la virgule, toujours avec le même principe d’arrondi. La for-mule =ARRONDI(225,56;-2) retourne ainsi 200, et =ARRONDI(268,21;-2)

la valeur 300. Un peu plus déroutant  : =ARRONDI(1000,51 ;-4) vaut... 0  ! Et quelle est la valeur de =ARRON-DI(5200;-4) ? 10 000, bien sûr !Pour forcer l’arrondi dans une direction, utilisez les fonctions ARRONDI.INF et ARRONDI.SUP, qui fonctionnent avec la même syntaxe que ARRONDI. • La première arrondit vers le bas, ce qui revient à tronquer la valeur au nombre de décimales fixé  : =ARRON-DI.INF(23,46;1) retourne ainsi 23,4. • La seconde fonction effectue un ar-rondi à la valeur supérieure : =ARRON-DI.SUP(23,41;1) retourne 23,5.

Nota BeneVous avez saisi les subtilités  ? Testez-vous en calculant de tête la valeur re-tournée par les formules suivantes :=ARRONDI.SUP(8170,24;-2)=ARRONDI.INF(12560;-4).

Arrondir à un multipleL’arrondi à un multiple pourra vous ai-der, par exemple, à réaliser des bud-gets en kilo-euros ou à afficher des prix arrondis à cinq ou dix centimes près sur une facture.Avec la fonction ARRONDI.AU.MULTIPLE, le calcul s’effectue au

plus proche, comme avec la fonction ARRONDI. La syntaxe est :=ARRONDI.AU.MULTIPLE(nombre;multiple). Par exemple, la formule =ARRONDI.AU.MULTIPLE(A1;500) permet d’arron-dir la valeur contenue dans la cellule A1 au multiple de 500 le plus proche.Si vous avez besoin d’un arrondi au multiple «  au plus haut  », utilisez la fonction PLAFOND, avec la syntaxe =PLAFOND(nombre;multiple). À l’in-verse, la fonction PLANCHER (même syntaxe) vous permettra d’effectuer des arrondis « au plus bas ».Par exemple, pour calculer un arrondi à 5  centimes près sur un montant en euros, utilisez la valeur 0,05 comme multiple  : =PLAFOND(25,57;0,05) retourne 25,6, tandis que =PLAN-CHER(25,57;0,05) renvoie 25,55.

Tronquer des décimalesPour supprimer tout ou partie des décimales d’un nombre sans pour autant l’arrondir, utilisez la fonction TRONQUE, avec la syntaxe : =TRONQUE(nombre;nombre de chiffres).Le deuxième argument correspond au nombre de décimales à tronquer. S’il est omis, il est considéré comme étant égal à 0, et la fonction renvoie un nombre entier.

Découvrez la fonction Atteindre pour effectuer des mises en forme groupées

Page 2 — Octobre 2009 — www.excelperformance.fr

Page 3: Excel Performance Numero 10 - Octobre 2009

www.excelperformance.fr — Octobre 2009 — Page 3

Allégez le code de vos formulaires

Avec des objets UserForm com-portant de multiples boutons, la gestion des clics est assez pénible à programmer. Chaque bouton possède en effet son propre évé-nement Click, qu’il faut alimenter indépendamment avec les instruc-tions nécessaires.

Pour alléger votre code et éviter les répétitions, utilisez une procédure de gestion des clics indépendante, stockée dans le module de code de l’objet UserForm. Elle traitera les événements Click d’une façon générique, en recevant comme paramètre un numéro de bouton.

Dans les procédures des événe-ments Click de chaque bouton, il vous suffit alors de faire un appel à cette procédure avec le numéro du bouton correspondant :

Private Sub CommandButton1_ Click()Call ClicSurBouton (1)End Sub

Private Sub CommandButton2_ Click()Call ClicSurBouton (2)End Sub

Dans la procédure de gestion des clics, vous pourrez par exemple utiliser une instruction Select Case pour traiter les différents cas :

Private Sub ClicSurBouton (num As Integer)[instructions]Select Case num Case 1 [instructions] Case 2 [instructions]End Select[instructions]End Sub

Nota BeneLe Registre Windows est une base de données système stockée sur le disque dur. Les données qu’il contient sont donc liées à un PC, ainsi qu’à l’utilisa-teur actif dans le cas d’une utilisation multi-comptes. C’est une contrainte pour générer des numéros de facture uniques, car les factures devront être éditées sur un même PC, mais un atout pour d’autres applications (voir nos exemples).

Un peu de technique...

Les fonctions VBA à utiliser sont SaveSetting, GetSetting et DeleteSetting. Elles servent respec-tivement à enregistrer, récupérer et supprimer des clés personnalisées du Registre, sous la clé HKEY_CURRENT_USER, dans les sous-clés Software\VB and VBA Program Settings. Ces clés personnalisées sont de type REG_SZ, c’est à dire des chaînes de caractères de type String au sens VBA.Les fonctions se formulent avec les pa-ramètres nom (le nom de votre appli-cation, qui sera la sous-clé principale), section (le nom d’une sous-clé), clé (le nom d’une clé) et valeur (la valeur), tous de type String. Les appels aux fonc-tions se font alors de la façon suivante :SaveSetting "nom", "section", "clé", "valeur", pour enregistrer la clé ;Variable_de_type_string = Get-Setting ("nom", "section", "clé", "valeur"), pour récupérer la valeur de la clé ou, si elle n’existe pas, la valeur indiquée par l’argument va-leur (facultatif) ;DeleteSetting "nom", "section, "clé", pour supprimer la clé ou, si l’ar-gument clé est omis, la section entière.

À noter que si vous tentez de suppri-mer une clé ou un section inexistante, une erreur se produit. Le cas échéant, il faudra donc, dans votre code, prévoir ce cas de figure.

Générer un numéro de facture

Sachant cela, tout est ensuite très simple. Pour générer un numéro de facture dans le code VBA de votre ap-plication, il vous suffira d’utiliser une clé dont vous incrémenterez la valeur à chaque édition de facture, en stockant la dernière valeur utilisée dans la clé.En pratique, un code compact de fonc-tion fournissant un nouveau numéro de facture à chaque appel serait par exemple le suivant :Public Function NumFact() As StringNumFact = GetSetting("APPLI", "Fact", "Num", 0) + 1SaveSetting "APPLI", "Fact", "Num", NumFactEnd FunctionLe fichier 09XLP10_registre.XLS contient des exemples de code dont vous pourrez vous inspirer.

D’autres exemples...Avec cette technique, vous pourrez :• stocker des mots de passe ;• limiter une application distribuée à un certain nombre d’utilisations ou à une date limite dans le temps ;• vérifier qu’une application s’exécute bien sur un PC précis (par exemple pour éviter certaines erreurs) ;• limiter une application à un groupe d’utilisateurs sur un PC partagé ;• garder une trace de certains événe-ments liés à l’utilisation de l’applica-tion.

Trois lignes de code méconnues pour doper vos applications VBALorsqu’on développe des applications avec Excel, on a souvent besoin de stoc-ker quelque part des données persistantes, que l’on retrouve d’une session de travail à une autre. La technique la plus ingénieuse consiste à utiliser le Registre Windows comme zone de stockage. Voici comment faire dans un cas concret typique - pour générer un numéro de facture unique - et des exemples d’autres utilisations possibles.

Cas pratique | @ 09XLP10_registre.xls | utilisateur avancé |

Retrouvez tous nos modèles et astuces sur notre site,

à l’adresse suivante : www.excelperformance.fr

Page 4: Excel Performance Numero 10 - Octobre 2009

Page 4 — Octobre 2009 — www.excelperformance.fr

De belles icônes de pointage avec Excel 2007

Il est courant d’utiliser des tableaux Excel pour représenter de manière synthétique des états pointés : oc-cupation d’une salle de réunion, tâches accomplies, disponibilité ou présence de personnes, par exemple. Le problème, c’est que des « X » (ou autre) dans des cases, ce n’est pas très joli.

Avec Excel 2007, vous pouvez créer de belles icônes qui s’insère-ront automatiquement.1. Sélectionnez la plage des cel-lules qui contiennent une informa-tion de pointage.2. Dans l’onglet Accueil, cliquez sur le bouton Mise en forme conditionnelle, sur Jeux d’icônes puis sur un style à trois états, par exemple les symboles avec cercle.3. Cliquez à nouveau sur le bouton Mise en forme conditionnelle puis sur Gérer les règles et sur le bou-ton Modifier la règle.4. Sélectionnez le type de règle Mettre en forme toutes les cel-lules d’après leur valeur.5. Dans les listes Type, sélectionnez Nombre.6. Dans la zone Valeur de la pre-mière icône, tapez la valeur 2. Dans la zone Valeur de la seconde, tapez 1. Cochez la case Afficher l’icône uniquement puis cliquez deux fois sur OK.7. Remplacez alors, dans les cel-lules, les libellés ou symboles que vous aviez indiqué par les valeurs 0, 1 ou 2, selon l’icône que vous souhaitez voir s’afficher.C’est beaucoup plus joli, non ?

Ce qu’il faut savoir

Une fonction personnalisée est une procédure VBA déclarée avec le mot-clé Function, qui accepte ou non des arguments et retourne une valeur. Sa vocation est de «  s’installer  » dans Excel comme une fonction classique, afin de pouvoir être utilisée dans des formules de la même façon qu’une fonction SOMME ou ARRONDI, par exemple.Au niveau du code VBA, une fonction personnalisée doit toujours se trouver dans un module normal, jamais dans un module de code d’une feuille ou d’un UserForm, ou dans ThisWork-book.Enfin, une fonction personnalisée ne peut pas modifier des cellules. De par sa nature, son objet n’est que de re-tourner une valeur, en utilisant les ar-guments fournis (ou aucun argument si elle n’en nécessite pas).

Nota BeneAvec le mot-clé Function, vous pou-vez aussi créer des fonctions appelées uniquement par des procédures VBA, pour structurer, simplifier ou alléger le code d’une application. Il ne s’agit pas d’une «  fonction personnalisée  » au sens où nous l’entendons ici.

Déclarer une fonction personnalisée

Dans votre code VBA, la syntaxe de déclaration d’une fonction est la sui-vante :

Public Function nom (arguments) As type

• Le mot clé Public est facultatif mais, pour des raisons de clarté, il est bon de l’indiquer quand même. Il permet à la fonction d’apparaître dans la liste des fonctions répertoriées dans la fenêtre Insérer une fonction d’Excel.• nom est le nom de la fonction, qui doit respecter les règles habituelles de nommage des variables en VBA.• arguments est la liste des arguments de la fonction. Les arguments multiples sont séparés par des virgules et s’il n’y a pas d’argument, on doit conserver les deux parenthèses. Mieux vaut préciser systématiquement leur type (Integer, Long, String, etc.), même si ce n’est pas obligatoire.• type est le type de données retourné par la fonction. Bien que cette mention soit facultative, il est fortement recom-mandé de l’indiquer.

Une syntaxe correcte sera par exemple :Public Function TauxTVA (RefProduit as String) as SingleNotre fonction d’exemple est déclaréePublic Function EcrireNombre (ByVal Nombre As Long) As String

Dans le code de la fonction, une valeur doit être attribuée au moins une fois à nom, qui est de facto une variable de type type, et ce avant que la fonction se termine.Enfin, le code de la fonction doit se ter-miner par le mot clé End Function. À tout endroit, vous pouvez utiliser l’ins-truction Exit Function pour quitter la fonction prématurément (c’est parfois utile, nous utilisons cette possibilité dans EcrireNombre).

Une fonction personnalisée pour écrire des nombres en toutes lettresVous aimeriez effectuer un certain type de calcul ou de traitement sur vos don-nées, et aucune fonction d’Excel ne répond à vos besoins ? Vos formules sont trop complexes et vous aimeriez les simplifier ? Créez des fonctions personnali-sées ! Pas d’affolement : c’est beaucoup plus simple qu’il n’y paraît. Voici ce qu’il faut savoir sur la marche à suivre, avec un exemple de fonction personnalisée qui permet de transformer un nombre en texte pour l’écrire dans une cellule dans sa transcription littérale.

Pas à pas | @ 09XLP10_fonction.zip | utilisateur avancé |

Page 5: Excel Performance Numero 10 - Octobre 2009

www.excelperformance.fr — Octobre 2009 — Page 5

La fonction EcrireNombreTrêve de théorie : un peu de pratique, avec notre fonction personnalisée Ecri-reNombre. Elle accepte comme unique argument un nombre à exprimer sous forme littérale, et retourne comme valeur la chaîne de caractères corres-pondante. Dans une formule, =Ecrire-Nombre(456) retourne ainsi «  quatre cent cinquante-six ».

Vous trouverez dans le dossier com-pressé 09XLP10_fonction.zip (à télé-charger sur notre site www.excelperfor-mance.fr) les deux fichiers qui illustrent cet article :• 09XLP10_fonction.xls, un classeur d’exemple• 09XLP10_fonction.txt, un fichier texte qui contient le code VBA de Ecri-reNombre

Découvrez le fonctionnement de EcrireNombre en ouvrant le classeur 09XLP10_fonction.xls. Tapez une valeur dans la cellule B18 et vous obtiendrez son expression littérale dans la cellule C18, qui contient la formule d’appel à la fonction EcrireNombre.

Nota BeneCette fonction d’exemple retourne une erreur si le nombre est négatif.

Installer EcrireNombre

La méthode la plus intéressante pour installer une fonction personnalisée consiste à la définir comme macro com-plémentaire. Elle est alors disponible dans tous les classeurs, et vous pour-rez la partager facilement avec d’autres personnes en leur fournissant un fichier XLA ou XLAM (Excel 2007).Supposons que vous avez développé vous-même la fonction EcrireNombre, dont le code se trouve dans le fichier 09XLP10_fonction.txt. Voici comment recopier ce code pour installer la fonc-tion sur votre PC sous forme de macro complémentaire.1. Dans le dossier où vous avez stocké le fichier 09XLP10_fonction.txt, double-cliquez sur le fichier pour l’ouvrir avec le Bloc-notes.2. Cliquez sur le menu Edition puis sur Sélectionner tout.

3. Cliquez à nouveau sur le menu Edi-tion puis sur Copier, et quittez le Bloc-notes.4. Lancez Excel et créez un nouveau classeur.5. Tapez le raccourci Alt  +  F11 pour ouvrir l’éditeur Visual Basic.6. Dans le menu Insertion, cliquez sur Module.7. Cliquez sur le menu Edition puis sur Coller et fermez la fenêtre de l’éditeur Visual Basic.8. Enregistrez le classeur en lui donnant un nom (par exemple EcrireNombre) et en choisissant le type de fichier Macro complémentaire Microsoft Office Ex-cel (*.xla) ou Macro complémentaire Excel (*.xlam) avec Excel 2007.

Nota BeneEn procédant ainsi, le dossier des macros complémentaires est automa-tiquement sélectionné : c’est bien pra-tique !

9. Cliquez sur Enregistrer et quittez Excel. Avec Excel 2007, cliquez sur Non pour ne pas enregistrer les modifica-tions dans un fichier XLS : c’est inutile, car le fichier XLAM est déjà créé.

Pour que la fonction personnalisée EcrireNombre soit accessible dans tous vos classeurs Excel, il ne vous reste plus qu’à activer cette nouvelle macro complémentaire.Pour cela, relancez Excel. Dans le menu Outils, cliquez sur Macros complémen-taires. Cochez la case devant le nom choisi auparavant (Ecrirenombre dans notre exemple) et cliquez sur OK.

Avec Excel 2007, cliquez sur le Bouton Office puis sur Options Excel. Dans l’onglet Compléments, cliquez sur le bouton Atteindre. Cochez la case de la macro complémentaire correspon-dante et cliquez sur OK.Voilà, la fonction EcrireNombre est maintenant disponible pour vos for-mules, dans tous vos classeurs !

Protégez votre code VBA

Si vous développez des applica-tions en VBA utilisées par d’autres personnes, par exemple des fonc-tions personnalisées, peut-être souhaitez-vous garder secret le détail de votre code VBA  ? Ou bien aimeriez-vous interdire aux utilisateurs de vos programmes de modifier  -  involontairement ou non -  les instructions, afin d’éviter les erreurs ? La solution, c’est de protéger l’ac-cès à votre code avec un mot de passe.

1. Ouvrez le classeur qui contient votre code et tapez le raccourci Alt + F11 pour ouvrir l’éditeur Vi-sual Basic.2. Dans la fenêtre Projet - VBAPro-ject, cliquez avec le bouton droit sur le nom du projet associé à ce classeur à protéger, puis sur Pro-priétés de VBA Project.3. Cliquez sur l’onglet Protection.4. Cochez la case Verrouiller le projet pour l’affichage, puis tapez un mot de passe dans les zones Mot de passe et Confirmer le mot de passe.

5. Fermez l’éditeur Visual Basic, enregistrez votre classeur et quit-tez Excel.

Désormais, votre code ne pourra plus être affiché ou modifié sans la saisie du mot de passe. Les fonc-tions et procédures qu’il contient continueront toutefois à être ac-cessibles et s’exécuter de la même façon, sans qu’il soit nécessaire de taper le mot de passe.

Page 6: Excel Performance Numero 10 - Octobre 2009

Abonnez-vous à notre e-newsletter gratuite !

Chaque semaine, faites le plein d’astuces et gagnez du temps avec notre lettre d’information par e-mail.

Inscription rapide et sans engagement sur notre site : www.excelperformance.fr

Vous êtes sûrement familier du fait  : lorsqu’on valide la saisie ou la modi-fication d’une donnée dans une cel-lule en appuyant sur la touche Entrée, Excel positionne automatiquement le pointeur de sélection dans la cellule située juste en-dessous.

C’est bien pratique quand on tape des valeurs séquentiellement en colonne, mais beaucoup moins si on effectue la saisie en ligne, ou que l’on veut taper plusieurs valeurs dans la même cellule afin de tester le résultat d’une formule.Heureusement, Excel permet de chan-ger ce comportement.

Cliquez sur le menu Outils puis sur Op-tions et sur l’onglet Modification. Dans Excel 2007, cliquez sur le bouton Office puis sur Options Excel et sur l’onglet Options avancées.

Ensuite, si vous souhaitez que le poin-teur reste dans la même cellule, dé-cochez la case Déplacer la sélection après validation, puis validez par OK.

Si  vous préférez que le pointeur soit positionné sur une autre cellule ad-jacente (celle de droite, en haut ou à gauche), laissez la case cochée, déroulez la liste Sens, cliquez sur le choix dé-siré puis sur OK pour valider.

Appuyer par inadvertance sur la touche VerrNum du pavé numérique est chose courante, et on ne se rend pas toujours compte rapidement de son erreur. Avec notre macro VerrNumOn, vous pourrez désormais forcer l’activation du pavé en mode numérique s’il ne l’est pas déjà, dès le chargement d’un classeur.

1. Téléchargez le fichier 09XLP10_ver-rnum.zip sur notre site Internet www.excelperformance.fr. Il contient le clas-seur exemple 09XLP10_verrnum.xls et le code VBA de la macro VerrNumOn dans le fichier texte 09XLP10_verrnum.txt.2. Pour installer la macro VerrNumOn dans un classeur, double-cliquez sur le fichier 09XLP10_verrnum.txt afin de l’ouvrir avec le Bloc-notes de Windows.

3. Tapez les raccourcis Ctrl  +  A pour sélectionner tout le texte, puis Ctr + C pour le copier dans le Presse-papiers, et fermez le Bloc-notes.4. Ouvrez votre classeur et tapez Alt + F11 pour afficher l’éditeur Visual Basic.5. Cliquez sur le menu Insertion puis sur Module.

6. Dans la fenêtre qui s’ouvre, tapez

Ctrl  +  V afin de coller le code de la macro.7. Dans la fenêtre Projet sur la gauche, double-cliquez sur la ligne ThisWork-book.8. Tapez les trois lignes suivantes :Private Sub Workbook_Open()Call VerrNumOnEnd Sub9. Fermez l’éditeur Visual Basic et en-registrez votre classeur.

Avec Excel 2007, veillez à enregistrer le classeur avec le type Classeur Excel (prenant en charge les macros) (*.xlsm).

Nota BeneVous pourrez, au choix, installer notre macro dans vos classeurs individuelle-ment, ou bien créer une macro com-plémentaire afin que le verrouillage se fasse au chargement d’Excel.

Configurez Excel pour passer à la cellule de droite après validation

Forcez l'activation du pavé numériqueSolution clé en main | @ 09XLP10_verrnum.zip | tout niveau |

Page 6 — Octobre 2009 — www.excelperformance.fr

Page 7: Excel Performance Numero 10 - Octobre 2009

www.excelperformance.fr — Octobre 2009 — Page 7

Affichez et imprimez un quadrillage coloré

Dans Excel, le quadrillage affiché à l’écran est par défaut de couleur grise. En changer permet d’égayer une feuille de calcul ou de marquer l’avancement d’un tra-vail, avec par exemple les feuilles incomplètes en rouge.

Nota BeneLes réglages ci-dessous s’appli-quent individuellement à chaque feuille de calcul, même si ce n’est vraiment clair qu’avec Excel 2007.

Cliquez sur l’onglet de la feuille à modifier, puis sur le menu Outils et sur Options. Dans l’onglet Affi-chage, déroulez la liste Couleur de quadrillage, cliquez sur la couleur souhaitée puis sur OK.

Avec Excel 2007, cliquez sur le bouton Office puis sur Options Excel. Dans l’onglet Options avan-cées, à la section Afficher les op-tions pour cette feuille de calcul, vérifiez que la feuille à quadriller est bien sélectionnée, cliquez sur le bouton Couleur de quadrillage puis sur une couleur, et validez par OK.Si vous souhaitez que le qua-drillage s’imprime, il faut explicite-ment le demander. Cliquez sur le menu Fichier puis Mise en page. Dans l’onglet Feuille, cochez la case Quadrillage et cliquez sur OK.Avec Excel 2007, cliquez sur l’on-glet Mise en page du ruban. Dans le groupe Options de la feuille de calcul, cochez la case Imprimer de la section Quadrillage.

Nota BeneLa couleur Automatique des bordures et encadrements est celle du quadrillage. Au besoin, changez cette couleur en ré-ap-pliquant une bordure ou un enca-drement avec une autre couleur.

Que fait cet outil ?Si les erreurs de frappe ou de cohé-rence sont généralement faciles à identifier, celles qui entraînent l’affi-chage, dans une cellule contenant une formule, d’une valeur d’erreur comme #NOM?, #REF! ou #VALEUR! posent souvent problème. Ce sont ces er-reurs  -  et celles-là seulement  -  que notre outil détecte en analysant toutes les cellules de toutes les feuilles d’un classeur donné.Si au moins une erreur est détectée, un rapport d’erreur est généré sous la forme d’un fichier texte. Il présente, feuille par feuille, la liste des cellules présentant une erreur, avec le libellé de l’erreur et la formule fautive contenue dans la cellule.

Une fois imprimé, ce rapport vous per-mettra de corriger les formules erro-nées beaucoup plus facilement que si vous deviez les inspecter une à une à l’écran, surtout si certaines sont dépen-dantes d’autres.

Lancez une analyse1. Ouvrez le classeur 09XLP10_erreurs.xls, en choisissant d’activer les macros, puis cliquez sur le bouton Analyser un classeur.

2. Sélectionnez le classeur à analyser et cliquez sur le bouton Ouvrir.

Nota BeneLe classeur à analyser, qui est forcément déjà enregistré sur le disque dur, peut

être aussi déjà ouvert. Dans ce cas, s’il a été modifié depuis son dernier enregis-trement, c’est la version modifiée (celle qui est en mémoire) qui sera analysée.

3. Si le classeur comporte des liaisons avec un autre classeur et qu’un mes-sage d’avertissement s’affiche, cliquez sur le bouton Mettre à jour.Si le classeur comporte des erreurs, le rapport est alors généré et un message mentionnant le nombre d’erreurs enre-gistrées dans le rapport s’affiche.D’autres messages d’information peu-vent s’afficher si :• le classeur ne contient pas d’erreur (aucun rapport n’est alors créé),• le fichier sélectionné n’est pas un classeur Excel ;• l’outil ne prend pas en charge le type de fichier Excel sélectionné (les modèles ou les macros complémen-taires, par exemple) ;• vous avez tenté d’analyser un clas-seur portant le même nom qu’un clas-seur qui est déjà ouvert, mais stocké dans un dossier différent (dans ce cas, fermez d’abord le premier classeur).

Imprimez le rapportLe fichier de rapport d’analyse est créé dans le même dossier que le classeur analysé, et porte le même nom incluant l’extension d’origine .xls, .xslx ou .xslm mais avec l’extension réelle .txt, qui est celle du format des fichiers texte de Windows. Pour imprimer le rapport, il suffit d’ouvrir ce fichier avec le Bloc-notes en double-cliquant dessus. Cli-quez ensuite sur le menu Fichier puis sur Imprimer.

Nota BeneUne fois les corrections effectuées, re-lancez l’outil pour vous assurer que toutes les erreurs ont été corrigées. Si des erreurs subsistent, un nouveau rap-port sera généré avec les erreurs res-tantes uniquement (le nouveau rapport remplace le précédent).

Solution clé en main | @ 09XLP10_erreurs.xls | tout niveau |

Un outil qui détecte les erreurs de vos formules automatiquementPour vous aider à corriger les erreurs, Excel met à votre disposition toutes sortes d’outils, comme la vérification en arrière-plan ou les fonctions d’audit de formules. Ces outils sont efficaces, mais guère pratiques pour identifier les erreurs dans des tableaux volumineux, avec des formules complexes ou lorsque des formules font référence à des cellules d’autres feuilles, voire d’autres classeurs. C’est encore plus compliqué lorsque vous n’avez pas vous-même conçu le classeur  ! Notre outil de création de rapports d’erreurs, prêt à l’emploi, vous simplifiera la tâche.

Page 8: Excel Performance Numero 10 - Octobre 2009

Copyright © Editions PRAXIS 2009 N°CPPAP : en cours – ISSN : 1958-8348

Dépôt légal à parutionPublication mensuelle

EXCEL Performance n° 10, Octobre 2009Publié par les Editions PRAXIS

Siret 502 883 655 000 16 –RCS Paris – APE 5811Z

Directrice de la publication : Catherine Dourlens – Auteur : Jean-Marc Gimenez

Secrétaire d’édition : Perrine LenfantinMaquettiste : Raphaëlle Pascal

Impression : FG Print

Service Abonnements : Excel Performance Editions PRAXIS

88, boulevard de la Villette – 75019 PARIS www.excelperformance.fr

[email protected] Tél. : 01 44 59 31 33 – Fax : 01 44 59 91 25

Service Réponse aux lecteurs : [email protected]

www.excelperformance.frFax : 01 44 59 91 25

Les Editions PRAXIS ne sont liées à aucun constructeur : nous ne dépendons en

aucune manière des entreprises citées dans les pages de cette publication. Nous

effectuons des recherches méticuleuses pour tous nos articles, mais nous ne

sommes pas responsables des erreurs ou omissions qui pourraient y figurer.

Vous pouvez contacter nos experts par courrier, fax ou Internet. Ces services

sont personnels. Ils sont réservés à l’usage exclusif de l’abonné (veuillez nous

préciser votre numéro d’abonné dans toute correspondance, quel qu’en soit

le support). Ils ne sont transmissibles en aucune manière. Une seule question peut

être posée dans une correspondance. Pour l’ensemble de ces prestations, les

Editions PRAXIS sont soumises à une obligation de moyens. La responsabi-

lité des Editions PRAXIS ne pourra être recherchée et engagée en cas d’absence

de réponse ou de réponse partielle à certaines questions.

L’abonné s’interdit toute diffusion ou commercialisation à titre onéreux ou

gratuit, sous quelque forme que ce soit, des informations ou documents

mis à sa disposition. L’abonné s’engage également à ce qu’il soit fait un usage

licite et conforme au droit en vigueur des informations fournies.

Tous droits réservés. Toute reproduction, même partielle

du contenu, de la mise en page, de la couverture ou des icônes, par quelque procédé que ce soit, est interdite sans

l’autorisation par écrit des Editions PRAXIS.

Classeurs en réseau : programmer une fermeture automatiqueNous sommes plusieurs à travailler sur un même classeur placé sur un réseau, de façon exclusive (chacun l’ouvre à tour de rôle). Mon problème, c’est que quand quelqu’un oublie de le fermer, il reste verrouillé et n’est accessible qu’en lecture seule pour les autres. Y a-t-il un moyen d’obliger les étourdis à fermer le classeur ? Éric C. — Rennes

La méthode la plus simple consiste à ajouter du code VBA pour n’autoriser l’utilisation du classeur que pendant une période de temps déterminée, par exemple 15 minutes. Au bout du délai imparti, le classeur sera automatiquement fermé (et son contenu enregistré), à charge pour la personne de le ré-ouvrir si elle était effectivement en train de travailler dessus. C’est brutal, mais efficace !1. Ouvrez votre classeur partagé puis l’éditeur Visual Basic en tapant le raccourci Alt + F11.2. Cliquez sur Insertion puis sur Module et, dans la fenêtre qui s’affiche, tapez les trois lignes suivantes :Private Sub FermerClasseur()ThisWorkbook.Close SaveChanges:=TrueEnd Sub3. Dans la fenêtre Projet sur la gauche, double-cliquez sur la ligne ThisWorkbook.4. Dans la fenêtre qui s’affiche, tapez les trois lignes suivantes :Private Sub Workbook_Open()Application.OnTime Now + TimeValue("00:15:00"), "FermerClasseur"End Sub5. Fermez l’éditeur Visual Basic, enregistrez le classeur et fermez-le. À sa prochaine ouverture, il se fermera automatiquement 15 minutes plus tard (à condition, bien sûr, que les macros aient été activées).

Contrôler la saisie semi-automatiqueQuand on saisit du texte dans une cellule, Excel complète parfois le texte déjà tapé avec le texte complet d’une autre cellule, mais pas tout le temps. J’aimerais déjà comprendre pourquoi, et surtout comment faire pour désactiver cette fonction. Vincent B. — La Rochelle

Il s’agit de la fonction de saisie semi-automatique, active par défaut. Elle analyse le texte tapé et le compare au contenu de cellules adjacentes dans la même colonne, afin de vous proposer automatiquement un complément au cas vous souhaiteriez ta-per des libellés identiques. Le complément n’est proposé que lorsque le contenu n’est pas ambigu et qu’il est présent dans des cellules contiguës (au-dessus ou en-dessous). Si cette fonction vous perturbe, cliquez sur Outils puis Options. Dans l’on-glet Modifications, décochez la case Saisie semi-automatique des valeurs de cellule et validez par OK. Avec Excel 2007, cliquez sur le bouton Office puis sur Options Excel. Dans l’onglet Options avancées, décochez la case Saisie semi-automatique des valeurs de cellule et cliquez sur OK.

Nota BeneQuand cette fonction est activée, le raccourci clavier Alt + flèche vers le bas permet d’afficher une liste de choix avec les textes présents dans les autres cellules (contiguës et dans la même colonne).

Au sommaire du prochain numéro

Une macro prête à l'emploi pour créer facilement des copies de sauvegarde de vos classeurs.Créez des menus personnalisés dans vos applications VBA.Et, comme chaque mois, de nombreux autres trucs et astuces pour exceller au quotidien !

Courrier des lecteurs

*0309010*