Les macros sont un outil judicieux pour automatiser et traiter des séquences de tâches répétitives. Dans cet article, nous nous intéresserons plus particulièrement à l’élaboration de rapports ou reportings périodiques qui représentent, par définition, des tâches répétitives (hebdomadaire, mensuelle ou trimestrielle) fastidieuses facilement automatisables à l’aide de fichiers exécutables très simples.
Dans cet exemple, nous sommes chargés d’élaborer un reporting sur des indicateurs de capabilité pour de nombreux paramètres, effectué à des fréquences régulières ; dont les données initiales se trouvent dans un fichier Microsoft Excel.
Nous pourrions, tout d’abord, effectuer la séquence de tâches une première fois, en récupérant les données depuis Microsoft Excel puis, en lançant une analyse de capabilité sur les multiples variables. A mesure que des analyses sont effectuées, le logiciel Minitab conserve la trace des commandes exploitées dans la fenêtre Historique. Une fois les tâches exécutées, dans la fenêtre Historique du logiciel, nous sélectionnons les commandes de session utilisées pour l’ensemble des tâches ; puis, à l’aide d’un clic droit, enregistrons les commandes sélectionnées, sous type .MAC (macro) ou .MTB (fichier exécutable).
Dans la macro, la commande WOpen signifie que nous avons ouvert une feuille de travail, MCapa sous-entend que nous avons lancé une analyse de capabilité multiple ; ainsi de suite pour chaque ligne de commande.
WOpen "C:\Documents and Settings\bscibilia\Mes documents\Cpk.xls";
FType;
Excel;
VNames;
None.
Worksheet "Sheet1"
MCapa C1 C2 C3;
Size 1 1 1;
LSpec ‐3 -3 -3;
USpec 3 3 3;
Pooled;
AMR;
UnBiased;
OBiased;
GHistogram;
GNormal;
Tolerance 6;
Within;
Overall;
CStat.
Notons que les spécifications supérieures et inférieures ont été fixées dans la macro :
LSpec -3 -3 -3;
USpec 3 3 3;
Ces limites de spécifications peuvent différer pour d’autres variables. Si ces valeurs de spécifications sont disponibles dans le fichier Excel, nous pourrions indiquer dans la macro les cellules contenant les spécifications :
Let k1 = C2[1] (1ère cellule de la colonne 2)
Let k2 = C3[1] (1ère cellule de la colonne 3)
.
.
.
Puis modifier les lignes de la macro :
LSpec k1….;
USpec k2…;
Les valeurs des spécifications correspondront ainsi aux valeurs récupérées dans les cellules de la feuille de travail. k1 et k2 sont donc des variables intermédiaires dans ce contexte.
Si notre objectif est de publier un tableau Excel avec les indices de capabilité Cp, Cpk par variable, cliquons sur Stockage dans la boîte de dialogue Analyse de la capabilité, puis cochons les statistiques intéressantes à afficher pour récupérer ces valeurs dans la feuille de travail. Les commandes de la fenêtre Historique pourraient ressembler à celles-ci :
CP 'Cp/Zréf1';
CPK 'Cpk1'.
Les estimations des Cp et des Cpk des différentes variables apparaîtront dans les dernières colonnes de la feuille de travail du logiciel de statistiques Minitab. Pour les faire apparaître à la dernière ligne plutôt que la dernière colonne, il suffit d’utiliser la fonction > Données > Transposer. Toutes ces fonctions (stockage, transposition) pourraient être intégrées dans la macro. Enfin, la feuille de travail Minitab pourrait être enregistrée au format Excel. Le résultat final serait un rapport dans une feuille de travail avec les estimations des indices capabilités.
La macro pourrait ensuite être lancée périodiquement de plusieurs façons différentes :
Il est aussi possible de créer une icône dans les barres d’outils du logiciel Minitab, associé à cette macro. Ainsi, en cliquant sur cette icône, la macro sera lancée automatiquement.
Dans cet exemple-ci, notre rapport comprend des résultats de tests d’hypothèse (test t). Notre objectif est de récupérer les résultats et analyses de la fenêtre de session du logiciel de statistiques Minitab, à intervalles réguliers, pour publier un fichier texte (.TXT) qui pourrait être ouvert sous format Microsoft Word :
Pour extraire une partie du texte dans la fenêtre de session, il suffit d’utiliser la commande de session OUTFILE, suivie par le chemin d’accès et le nom de fichier.TXT et d’entourer l’expression de guillemets comme suit :
OUTFILE "C:\....\analisis.txt"
OUTFILE "C:\data\6sigma\BB Projects\WAN-1 Negotiation\WAN1-3-Analyze\analisis.txt"
Le but de la commande OUTFILE est d’indiquer au logiciel de statistiques Minitab la première ligne à extraire de la fenêtre Session. Alors, cette première ligne et tout le texte qui suit dans la fenêtre Session seront extraits.
Ensuite, tapons le mot WORKSHEET (avec le nom de la feuille de travail entouré de guillemets) afin d’activer la bonne feuille de travail au bon moment.
Puis, indiquons le mot NOTE suivi par le nom de la feuille de travail active sans guillemet. Ceci vous permet d’afficher le nom de la feuille de travail active dans la fenêtre Session du logiciel Minitab.
Effectuons le test t à 1 échantillon puis récupérons les commandes de session qui correspondent dans la fenêtre Historique (commande de session : ONET).
Pour terminer l’extraction du texte de la fenêtre session, saisissons le mot NOOUTFILE.
Si nous suivons une nouvelle fois le processus d’extraction vers le même document TXT pour une nouvelle feuille de travail avec la commande OUTFILE, le texte de la nouvelle extraction sera placé à la suite du texte des extractions précédentes.
Il est aussi possible de créer une icône dans les barres d'outils du logiciel Minitab, associér à cette macro. Ainsi, en cliquant sur l'icône, le fichier exécutable se lancera automatiquement (voir les remarques en bas de page pour savoir comment ajouter une macro à un menu, une barre d'outils ou le poste de travail).
Pour plus de renseignements sur toutes les commandes de session du logiciel de statistiques Minitab, sélectionnons dans le logiciel lui-même le document en anglais >Aide >Aide >Commandes de Session>Alphabetical Command List.
Nous devons chaque mois créer un rapport dans le Report Pad™ du logiciel de statistiques Minitab, avec des graphiques.
Tout d’abord, créons un graphique dans le logiciel de statistiques Minitab puis, récupérons les lignes de commande dans la fenêtre Historique ; copions et collons-les dans un fichier texte, comme un fichier bloc-notes. A la suite du texte ainsi collé, tapons les lignes suivantes :
GMANAGER;
APPEND.
Enregistrons ce fichier au format.MAC, cette macro permettra d’ajouter le graphique le plus récent au Report Pad du logiciel Minitab.
Pour ajouter tous les graphiques créés au cours de la session au gestionnaire de rapport Report Pad, récupérons toutes les lignes de commande liées aux graphiques dans la fenêtre Session du logiciel Minitab, copions et collons-les dans un fichier texte de type bloc-notes et ajoutons les lignes suivantes :
GMANAGER;
APPEND;
ALL.
Le mois suivant, activons la feuille de travail des données mises à jour à représenter graphiquement, lançons cette macro, les graphiques seront créés et ajoutés au Report Pad. Nous pouvons aussi utiliser la commande GSAVE, en l’intégrant dans une macro, pour enregistrer le graphique directement sous format JPEG, EMF (Enhanced Windows Metafile), TIF … par exemple :
GSAVE “C:\pathname\filename”;
REPLACE;
EMF.
La sous-commande REPLACE permettra d’écraser un fichier déjà existant sans nécessité d’intervenir au cours de l’exécution de la macro.
Exemples :
ICHART C1;
GSAVE “ C:\Documents and Settings\Your Name\My Documents\Chart1”;
REPLACE;
EMF.
Ou encore
Plot C2*C3;
Gsave "C:\Small";
JPEG.
Enfin, un rapport représente souvent une synthèse des données les plus intéressantes, nous pourrions donc créer une présentation graphique synthétique des données (à partir de plusieurs graphiques) à l’aide de l’outil Présentation (LAYOUT en anglais) :
LAYOUT;
Title "Titre de la présentation".
.
.'Création de graphiques'
Après chaque graphique, utilisons la commande FIGURE x-minimum x-maximum y-minimum y-maximum pour positionner chacun des graphes dans la présentation (avec des X et Y qui varient de 0 à 1)
.
.
ENDLAYOUT.
Ainsi par exemple, pour créer une présentation à l’aide d’une macro :
LAYOUT;
TITLE "Ventes: 2000-2002".
CHART ('Ventes') * 'Année';
SUMMARIZED;
BAR;
FIGURE 0 1 0,5 1.
TSPLOT 'Ventes';
FIGURE 0 1 0 0.5.
ENDLAYOUT.
Si nous créons une présentation dans le logiciel Minitab, les commandes pour créer cette présentation graphique (LAYOUT…ENDLAYOUT) n’apparaîtront pas dans la fenêtre Historique, nous pourrons consulter le sous-menu >Aide>Aide>Commandes de Session pour obtenir plus d’informations. Par contre, les commandes de session associées aux différents graphiques intégrés dans la présentation CHART…, TSPLOT… apparaissent bien dans la fenêtre Historique au moment de la création de ces graphes et peuvent donc être récupérées facilement lors de l’élaboration de la présentation.
Si notre objectif est de recréer une série de graphes à fréquence régulière, à partir de données mises à jour, il n’est pas forcément nécessaire de chercher les lignes de commandes qui correspondent dans la fenêtre Historique. Ceci d’autant plus, que certaines options d’un graphe peuvent ne pas apparaître dans cette fenêtre Historique. La façon la plus simple de recréer un graphique identique au graphique initial mais à partir de données mises à jour, est d’activer ce graphique, de sélectionner >Editeur>Copier le langage de commande, puis :
Il est aussi possible d’interagir avec une macro, c'est-à-dire, de faire en sorte que la macro, au cours de son exécution, demande à l’utilisateur d’entrer des informations. La prise en compte de ces informations modifiera le déroulement de cette macro.
Le rapport final peut ainsi être adapté aux besoins de l’utilisateur. Une telle macro peut être généralisée, mise à la disposition de nombreux utilisateurs qui l’adapteront à leur besoins, la personnaliseront suivant les informations qu’ils entrent. Un exemple de ce type de macro est décrit ci-dessous :
Contenu de la macro :
GMACRO
Rapportmensuel
############################################
# Indiquer quel mois vous intéresse #
# pour récupération des données mensuelles #
############################################
NOTE Pour quel mois voulez-vous le rapport (de 1 à 12) ?
SET C107;
FILE "TERMINAL";
NOBS 1.
BRIEF 0
NOTITLE
COPY C107 k4
DELETE 1 C107
Numeric C1 c108;
Month.
Numeric C1 c109;
Week.
SUBSET;
NAME "Données mensuelles";
INCLUDE;
WHERE "C108=k4".
###############
# Graphiques #
###############
BRIEF 2
TITLE
IChart 'Ph'
########################
# Données statistiques #
########################
Describe 'Ph';
Mean;
TRMean;
Sums;
Minimum;
Maximum;
Range;
N.
######################################
# Fermeture de la feuille de travail #
######################################
WORKSHEET "Données mensuelles";
CLOSE;
NOPROMPT.
ENDMACRO
Dans la macro ci-dessus, GMACRO signifie qu’il s’agit d’une macro globale dont le nom est RapportMensuel. NOTE signifie que le commentaire qui suit apparaîtra à l’écran (Pour quel mois voulez-vous le rapport (de 1 à 12) ?), puis les lignes :
SET C107;
FILE "TERMINAL";
NOBS 1.
indiquent que l’utilisateur peut entrer une valeur/observation (NOBS 1) qui sera prise en compte par le logiciel Minitab et enregistrée dans la colonne C107. Cette valeur sera ensuite affectée à la variable k4 (il s’agit du mois sur lequel porte le rapport).
Dans la colonne C1 de la feuille de travail initiale, des dates de prélèvements ont été collectées et dans la colonne C2 les valeurs de mesure de Ph ont été enregistrées.
Les numéros des mois et les numéros des semaines seront extraits de la colonne des dates (en C1). Puis une nouvelle feuille de travail "Données mensuelles" (sous-ensemble de la feuille initiale) sera générée, elle contiendra uniquement les données associées au mois entré par l’utilisateur (valeur de k4 comparée aux numéros de mois extraits de la colonne C1).
SUBSET;
NAME "Données mensuelles";
INCLUDE;
WHERE "C108=k4".
Un graphique et un rapport statistiques seront élaborés puis le logiciel de statistiques Minitab fermera la feuille de travail "Données mensuelles" :
WORKSHEET "Données mensuelles";
CLOSE;
NOPROMPT.
Enfin BRIEF 0 supprime les messages qui pourraient apparaître dans la fenêtre de session et qui pourraient venir perturber l’utilisateur, NOTITLE supprime les titres qui précédent les résultats publiés dans la feuille de travail. Au contraire, BRIEF 2 et TITLE permettent au logiciel Minitab de publier les résultats de la fenêtre Session et donc de rétablir les paramètres par défaut.
Cette macro a été sauvegardée dans un fichier Bloc-notes (Rapportmensuel.MAC) et peut être lancée depuis la fenêtre Session du logiciel, en activant les commandes de session ie en sélectionnant >Editeur>Activer les commandes puis en spécifiant %RapportMensuel dans la fenêtre Session. L’utilisateur entrera le mois choisi dans la fenêtre Session en répondant à la question Pour quel mois voulez-vous le rapport (de 1 à 12) ? et il obtiendra le rapport qui correspond aux données de ce mois.
Un extrait des résultats obtenus grâce à cette macro :
Fenêtre de Session
Il est possible, à l’aide d’une macro, de publier des tableaux de résultats dans une feuille de travail, des résultats d’analyses statistiques dans un traitement de texte ou encore de créer des rapports de graphiques. De longues séquences de tâches peuvent ainsi être automatisées et lancées en un clic.
Certaines commandes telles que OUTFILE ou LAYOUT ou encore GMANAGER n’apparaîtront pas dans l’historique, elles doivent être connues a priori par l’utilisateur. La plupart des autres commandes peuvent être récupérées facilement à partir de l’historique.
Si vous insérez les commandes de session XPPOINT ou XWORD dans votre macro, les graphiques et les analyses qui ont été créés dans cette macro seront transférés automatiquement vers un document Power Point ou vers un fichier Word (dans le même ordre dans lequel ils ont été créés dans votre macro). Ceci vous permettra d’automatiser la création d’un rapport final.
L’historique facilite considérablement la création de macros, il n’est pas nécessaire de devenir un expert en macro pour pouvoir automatiser de longues séquences de tâches.
D’autre part, des macros plus puissantes et plus complexes (en particulier les macros locales) sont aussi disponibles et peuvent vous permettre de résoudre des problèmes plus avancés à l’aide d’itérations (boucles), d’expressions logiques (conditions) et d’utilisation de variables indicées, etc.
Remerciement
La société Minitab remercie l’Institut de Statistique de l’Université Catholique de Louvain La Neuve et le Service du Sang de la Croix Rouge de Belgique qui ont écrit une macro avec le logiciel de statistiques Minitab dont cet article s’inspire au point Macros interactives ci-dessus.
Remarques
Comment ajouter une macro dans un menu, une barre d'outils ou sur mon poste de travail ?
A ce stade, vous pouvez exécuter la macro en choisissant Outils > Le nom de votre macro.
Si la macro est une macro locale, spécifiez les arguments requis par la macro en tapant des noms de colonnes, constantes, ou matrices dans le champ Arguments.
Veuillez noter que cette fonctionnalité (à savoir exécuter la macro en cliquant sur le raccourci à partir du menu ou de la barre d'outils) exige une série spécifique d'arguments pour le raccourci. Si vous souhaitez que la macro soit exécutée avec une série différente d'arguments, vous devez modifier les arguments pour le raccourci ou créer un autre raccourci avec les arguments différents. Supposons, par exemple, que vous exécutiez souvent la macro percentile disponible dans la Bibliothèque de Macros. Vous l'exécutez une fois sur C1 pour obtenir le 95ème percentile puis à nouveau sur C1 pour obtenir le 90ème percentile (en mémorisant les résultats dans C10 et C11, respectivement). Vous pouvez créer un raccourci appelé 95ème Percentile et utiliser les arguments C1 95 C10, puis créer un second raccourci appelé 90ème percentile et utiliser les arguments C1 90 C11.
Pour modifier ce qui s'affiche sur la barre d'outils, cliquez avec le bouton droit sur le bouton ou le texte pendant que la boîte de dialogue "Tools > Customize" (Outils > Personnaliser) est encore ouverte. Vous pouvez sélectionner "Image", "Text" (Texte), ou "Image and Text" (Image et texte). Pour modifier l'image affichée, choisissez "Edit button image" (Editer l'image du bouton).