Macros

Navigation:  Requêtes et Macros >

Macros

Previous pageReturn to chapter overviewNext page

Deux types de macros sont utilisés dans QDV7 :

les macros QDV écrites en C# ou Visual Basic .NET

les macros Excel écrites en VBA ; elles n'écrivent pas dans le devis, mais dans des fichiers Excel exportés ; l'extension xlsm n'est pas supportée

 

Les macros peuvent être appelées en cliquant sur les boutons macro ou à l'occasion d'événements particuliers.

Ceci est soumis à un paramètre de sécurité (Macros). Quand la permission n'est pas donnée, on peut encore exécuter des requêtes prédéfinies dans le groupe Boutons macros.

Si cela demande trop de boutons, on peut lancer une macro qui indexe d'autres macros, par exemple Call_All_Macros_And_Requests dans l'example Multi_Language_Sample_With_Documents.qdv. Voir aussi Echantillons de code.

 

Cinq exemples de macros apparaissent dans l'exemple de devis Multi-languages. "Sample write to overhead workbook", écrite en VB .NET, permet d'écrire dans les feuilles utilisateur de l'environnement.

Deux sont affectés aux boutons macro 2 (macro QDV) et 3 (macro Excel).

 

Macros QDV

QDV API génère des programmes pré-compilés appelés Macros. Ces programmes sont compilés à l'exécution sur le PC de destination :

 

0

 

1

2

 

3

MS Visual Studio

 

Editeur de programmes QDV

 

Exécution par QDV7

Edition

Post-édition

Précompilation

Compilation

 

Import __

 

 

 

 

 

Pour créer/modifier une macro QDV, cliquer sur Automatismes>Macros>Macros>Ouvrir Macros QDV ; ceci ouvre une boîte de dialogue.

warning Eviter les noms de macros ou codes très longs.

Pour créer une macro, cliquer sur le bouton Créer ; ceci ouvre l'Editeur de programmes QDV ; saisir le code et cliquer sur Construire>Compiler et enregistrer ; ceci ajoute la macro à la liste. Pour des détails sur l'API, voir le sujet sur l'API macro.

Pour modifier la macro, cliquer sur le bouton Editer ou Editer sous Visual Studio (ceci exige la version 2010 ou postérieure, quelle que soit la langue de l'interface ; les éditions Express ne conviennent pas). Il est utile de saisir le nom de l'objet suivi d'un point et de puiser des propriétés/méthodes et événements dans le "pique" dans la ligne. Les points d'arrêt sont acceptés.

Pour ajouter la référence à un assemblage du Framework .NET ou à un assemblage .NET du répertoire d'installation QDV7, cliquer sur Construire>References et cocher l'assemblage. Pour faire référence à ses propres assemblages, s'assurer qu'ils sont compilés avec l'option "Tout CPU" sous Visual Studio et les placer dans le répertoire d'installation. On peut les déployer automatiquement sur tous ses PC clients à l'aide de l'outil de publication (situé dans le répertoire d'installation).

 

Pour exporter une macro :

sans license de programmeur, dans la boîte de dialogue, sélectionner la macro et cliquer sur le bouton Exporter

avec une license de programmeur, c'est aussi possible à partir de l'éditeur : sélectionner le volet Projets>Projets, sélectionner la macro et faire un clic droit sur Enregistrer macro sous

 

Pour importer une macro, cliquer sur le bouton Import et sélectionner la macro parmi les fichiers d'extension qdvmacro ; comme il n'y a pas de compilation, une license programmeur n'est pas nécessaire.

Procédure (les numéros d'étape sont aussi les numéros de la table ci-avant) :

1.Pour post-éditer une macro QDV, la sélectionner et cliquer sur le bouton Editer (alternative : faire un double clic) ; ceci ouvre l'Editeur de programmes QDV

2.Pour pré-compiler la macro, cliquer sur Construire>Compiler et enregistrer  

3.Pour exécuter la macro avec le menu Macro, cliquer sur Exécuter macros, sélectionner la macro et cliquer sur the bouton Exécuter  

Alternative avec Visual Studio : appuyer sur Editer sous Visual Studio, et utiliser le menu QDV.

 

Rafraîchir_Vue_Courante() sert, à l'intérieur d'une boucle, à actualiser les minutes sur-le-champ, en particulier avant d'accuser réception du message de l'Editeur QDV indiquant le nombre d'écritures.

 

Macros de l'exemple de devis Multi-languages :

Access_Active_Directory : renvoie le nom des administrateurs

Browse WBS and Minutes : exporte les Descriptions et Unités des minutes dans un fichier texte, avec indentation

Build_Entire_Estimate_From_Excel_File : convertit un fichier Excel en devis QDV7

Call_All_Macros_And_Requests : indexe toutes les macros et requêtes du devis

Generate Technical Document : assure la Publication en pdf du devis (4ème bouton macro) ;  il faut autoriser les macros Word  

Insert some rows from cursor : insère un nombre fixé de lignes sous la minute sélectionnée ; les Description, Quantité et Matériel/Coût unitaire ont des valeurs fixées

Just Export Current Minute : exporte dans un fichier Excel toute la section de minutes qui contient la ligne sélectionnée

Populate Excel file with report : exporte l'état du WBS dans n'importe quel fichier Excel ayant une feuille nommée Report_Profile (fichier source)

Populate_Foreign_Excel_Workbook : colle les valeurs et format dans un classeur dont les noms de feuille reprennent ceux du classeur d'environnement (attention, l'exemple peut se trouver en lecture seule)

Sample Extract Workbooks : génère les nomenclatures (les minutes "main d'œuvre seulement" sont listées au début), ou à tester des états WBS sous divers profils

Sample to browse WBS Headings : extrait des identifiants

Sample to simply read some cells from any QDV workbook : extrait les totaux des centres de coût de la Feuille de vente

Sample which exports an article database : exporte <répertoire d'installation>\Samples\databases_of_articles\Sample_Article_DB.qdb dans Excel

Sample write to Overhead Workbook : modifie la couleur d'un rectangle en Environnement>Test_Macros ; pour protéger le devis, d'abord la macro met un verrou sur le classeur d'environnement (Es.GetLockOnWorkbook), puis après l'exécution, elle défait le verrou (Es.ReleaseLockOnWorkbook)

Sample_Import_Factors : colle les coefficients de vente, et éventuellement les taux, d'un devis dans le devis courant sur la base de leur identifiant dans les onglets Matériel et Main d'œuvre (supprimer d'abord les lignes vides et fermer la source)

Sample_Program_CSharp : utilisée par le 2ème bouton dédié

Sample_Program_VisualBasic : même effet que la précédente.  

 

La macro de l'exemple de devis Sample_with_WBS-Driven_Gantt supprime le planning et en crée un nouveau en accord avec l'état replié des branches du WBS étendu.

La macro de l'exemple de devis Sample_With_Multiple_Scenarios modifie les colonnes Quantité.

 

Macros de l'exemple d'ouvrage Sample_Sets_Database :

Check_Integrity_All_Sets : vérifie que tous les articles de l'ouvrage existe dans un répertoire connu

Get_Data_From_Article_Databases : remplit/met à jour les champs Description, Famille, Fabricant, Utilisateur à partir des références d'article dans Sample_Article_DB.qdb (enregistrer l'exemple dans un répertoire connu, ouvrir la copie, insérer un article virtuel (Développer un ouvrage), saisir le numéro et le nom de la base, saisir la référence d'article désirée, enfin appliquer la macro)  

Insert_Some_Rows

Printout : exporte tout le contenu dans un tableur Excel.

Les deux premières macros fonctionnent aussi avec les bases SQL Serveur.

Pour exécuter une macro à l'aide d'un bouton dédié ou à l'occasion d'un événement, voir Gestion des événements. Pour exécuter la macro en exemple, cliquer sur le 2ème bouton ; ceci ouvre une boîte de dialogue.

 

Macros Excel

Pour créer/modifier une macro, cliquer sur Automatismes>Macros>Macros>Ouvrir Macros Excel ; ceci ouvre une boîte de dialogue.

Pour créer une macro, faire un clic droit et sélectionner Nouvelle macro.

Pour importer une macro, faire un clic droit, sélectionner Charger la macro et sélectionner la macro parmi les fichiers d'extension qdvxlmacro ; ceci ouvre une boîte de dialogue.

Pour modifier une macro, faire un clic droit dessus et sélectionner Editer la macro ; ceci ouvre une boîte de dialogue : dans la partie inférieure, spécifier le chemin complet de la macro et son nom dans Excel (Alt F8) ; dans les parties supérieures, spécifier les composantes du devis à exporter dans Excel et le chemin complet de destination.

Pour tester une macro, la sélectionner et cliquer sur le bouton Exécuter.

 

Pour exécuter une macro à l'aide du menu Macro, cliquer sur Ouvrir Macros Excel, sélectionner la macro et cliquer sur le bouton Exécuter.

Pour exécuter une macro à l'aide d'un bouton dédié ou à l'occasion d'un événement, voir Gestion des événements. Pour exécuter la macro en exemple, cliquer sur le 3ème bouton ; dans Excel, la macro se nomme TESTME ; ceci exporte le WBS condensé dans Excel et crée le fichier Overhead.xls en C:\Temp. Pour exporter d'autres parties, y compris le planning sous divers formats, faire un clic droit sur Editer la macro, cocher les cases correspondantes et sélectionner Parcourir.

Macros impliquant un état

On peut faire référence aux colonnes cachées suivantes du classeur Excel obtenu par export d'un état avec formules :

clip0833

 

Fonctions complémentaires

Fournir une macro sous forme de fonction permet de :

protéger la source de la macro et de la propager indépendamment du devis maître d'où elle serait importée

avoir un bouton à un endroit approprié du ruban et avec une icône spécifique.

Procédure :

1.Créer une macro QDV ; un contexte (par ex. Minutes) peut être défini avec l'object Context

2.Exporter la macro vers <répertoire d'installation>/Extended Functions (l'extension est qdvmacro) : créer des sous-répertoire permet de créer des catégories

3.Lancer l'application <répertoire d'installation>/Macro_2_Extended_Function.exe

4.Saisir les propriétés du bouton comme dans cet exemple

 

gantt_function

 

 

 

 

 

 

 

 

Etiquette

Position bouton, voir Fichier>Outils >Général>Personnalis . ruban

Optionnel

 

 

 

Les codes de langue sont facultatifs

Icône

 

 



4.Cliquer sur Save Project ; ceci crée un fichier d'extension qdmacroproject

5.Cliquer sur Create Function ; ceci crée un fichier d'extension qqdvfunction.

 

Pour lancer la fonction :

1.Pour autoriser la fonction, la cocher en Macros>Fonctions complémentaires ; un bouton est disponible

2.Choisir le contexte approprié, le cas échéant

3.Cliquer sur le bouton associé.