On peut vous aider ?
Cherchez des réponses ou parcourez les rubriques de notre documentation
Syntaxe de création des composants (XlCode)
La création de composants se fait à l’aide de la syntaxe suivante :
¤¤ENTETE;TYPE;[SWITCH;Flag=Value];...
TYPES
Type | Composant | Remarques |
---|---|---|
B | Boite de saisie | |
L | Liste déroulante | |
R | Groupe de boutons radio | |
K | Case à cocher | |
C | Contrôle | |
T | Boite de saisie avec un format texte | Equivalent à B ;C=S ;TFMT |
PD | Pièce jointe descendante | |
PA | Pièce jointe ascendante | Non personnalisable par défaut (équivalent à PJ + NP) |
PJ | Pièce jointe | Personnalisable par défaut |
D | Date | |
H | Heure | |
HL | Hyperlien | |
S | Barre de défilement (Scrollbar) |
SWITCHES
Switch | Signification | Composant |
---|---|---|
M | Obligatoire | Tous sauf Case à cocher, Contrôle, Pièce jointe descendante et Hyperlien |
NP | Non personnalisable | Tous sauf Pièce jointe descendante et Hyperlien |
NR | La valeur n'est pas transmise | Contrôle |
E | Liste déroulante éditable (saisie libre) | Liste déroulante |
TFMT | Met un format texte (@) sur le composant | A appliquer sur tout composant ne contenant pas de nombre, date ou formule |
NOSAVE | N'affiche pas l'icône de disquette du composant pièce jointe | Pièce jointe |
IMG | Affiche l'image si la pièce jointe contient une image compatible | Pièce jointe |
STRETCH | Agrandit l'image à afficher à la taille de la cellule | Pièce jointe avec IMG |
PROP | Garde les proportions lors de l'agrandissement de l'image | Pièce jointe avec IMG |
NI | Non importable lors d'un import Excel | Tous composants éditables |
NE | Non exportable lors d'un export Excel | Tous composants éditables |
FLAGS
Flag | Signification | Valeur | Composants | Exemples |
---|---|---|---|---|
ITEMS | Données | Liste séparée par un caractère "Pipe" | | L, R | ¤¤Liste;L;ITEMS=01|02|03 ¤¤Liste;L;ITEMS=A|B|C ¤¤RADIO;R;ITEMS=1|2|3|4|5|6 ¤¤RADIO;R;ITEMS=A|B|C|D|E|F |
ITEMSSRC | Source de données dynamiques | Entête contenu dans un motif ou un Range (plage Excel) | L | ¤¤LISTE;L;ITEMSSRC=NomEnteteMotif ="¤¤"&"LISTE;L;ITEMSSRC=">RANGE(RANGE) |
C | Contraintes | S :Chaîne de caractère I : Entier R : Réel | B, L | ¤¤BSAISIE;B;C=S ¤¤Liste;L;E;C=S ¤¤BSAISIE;B;C=I ¤¤Liste;L;E;C=I ¤¤BSAISIE;B;C=R ¤¤Liste;L;E;C=R |
MAX | Valeur maximale (inf. ou égal à) | Flottant ou Date ou Heure | B, L, D, H, S | ¤¤BBSAISIE;B;C=R;MAX=10,25 ¤¤Liste;L;E;C=I;MAX=20 ¤¤DATE;D;MAX=23/01/2015 ¤¤HEURE;H;MAX=08:25:46 ¤¤SCROLLBAR;S;MAX=20 |
MIN | Valeur minimale (sup. ou égal à) | Flottant ou Date ou Heure | B, L, D, H, S | ¤¤BBSAISIE;B;C=I;MIN=5 ¤¤Liste;L;E;C=I;MIN=12 ¤¤DATE;D;MIN=01/12/2002 ¤¤HEURE;H;MIN=02:15:26 ¤¤SCROLLBAR;S;MIN=-10 |
L | Longueur maximale | Entier >= 0 0 = aucune limite | B, L, C | ¤¤BBSAISIE_C20;B;L=20 ¤¤BBSAISIE_Comment;B;L=0 ¤¤CONTROLE_LONG;C;L=0 ¤¤Liste;L;E;L=0 |
CAPTION | Titre | Chaîne | K | ¤¤CASEACOCHER;K;CAPTION=MonTitre Remarque : la cellule ne doit pas être centrée horizontalement pour que le libellé apparaisse |
COLS | Disposition des colonnes | H : Horizontales V : Verticales Entier > 1 : Nombre de colonnes | R | ¤¤RADIO;R;COLS=H;ITEMS=1|2|3|4|5|6 ¤¤RADIO;R;COLS=V;ITEMS=1|2|3|4|5|6 ¤¤RADIO;R;COLS=6;ITEMS=1|2|3|4|5|6 |
MSIZE | Taille maximale | Flottant >= 0 | PA, PJ | ¤¤PIECE;PA;MSIZE=1 |
FILTER | Descriptif du filtre suivi des extensions autorisées ex: Excel, Word 2007+|*.xlsx;*.docx|Fichiers Zip|*.zip | Chaîne | PA, PJ | ¤¤PIECE;PA;"FILTER=Fichier zip|*.zip" ¤¤PIECE;PA;"FILTER=Excel, Word 2007+|*.xlsx;*.docx|Fichiers Zip|*.zip" Remarques : - "FILTER=xxx" est encadré par des guillemets doubles - la liste des extensions (comme dans *.xlsx;*.docx) doit toujours être séparée par des point-virgules (;) quel que soit la langue de la machine |
LINK | Lien | Chaîne | HL | ¤¤LIEN;HL;Link=qstp://Page n°2 ¤¤LIEN;HL;Link=qsth://Entête |
DISPLAY | Nom d’affichage | Chaîne | Tous | ¤¤BBSAISIE;B;DISPLAY=NomAffichage |
INCR | Incrément | Entier > 1 | S | ¤¤SCROLLBAR;S;INCR=2 |
DIR | Disposition de la barre de défilement | * H : Horizontale * V : Verticale | S | ¤¤SCROLLBAR;S;DIR=H ¤¤SCROLLBAR;S;DIR=V |
DEF | Valeur par défaut | * MIN : Valeur définie par le minimum * MAX : Valeur définie par le maximum * AVG : Valeur définie par la moyenne * Entier : Personnalisée avec cette valeur | S | ¤¤SCROLLBAR;S;MIN=-10;DEF=MIN ¤¤SCROLLBAR;S;MAX=20;DEF=MAX ¤¤SCROLLBAR;S;DEF=AVG ¤¤SCROLLBAR;S;DEF=6 |
T | Tri dans les listes | ASC = Ascendant DESC = Descendant | L | ¤¤Liste;L;ITEMS=H|A|D;T=ASC ¤¤Liste;L;ITEMS=H|A|D;T=DESC |
Points de vigilance
- Si Value contient un caractère « ; » il faut encadrer l’ensemble Flag=Value avec des doubles quotes « »
- A l’exception du composant « barre de défilement », il n’est pas possible de spécifier une valeur par défaut pour un composant (par exemple lors de l’ajout d’une ligne dans un motif ou lors de l’ajout d’un onglet dans un multi-onglets : la valeur par défaut pour les composants sera toujours NULL). En revanche, il est possible de spécifier une valeur par défaut à l’ouverture du document en personnalisant le contenu du composant dans le cadre de l’action de lancement de collecte.
- Il est possible – et très utile – de construire la syntaxe d’un composant à l’aide d’une formule Excel. En revanche, la formule ne sera évaluée qu’au moment de l’import dans Design. Autrement dit, il n’est pas possible d’utiliser une formule pour modifier dynamiquement la définition d’un composant lors de l’exécution du document dans GTAnswer. Par exemple, si la cellule A1 contient « MaBoiteDeSaisie » et que la cellule A2 contient le nombre 30, alors la formule = »¤¤ »&A1& »;B;C=I;MAX= »&A2 sera bien évaluée lors de l’import comme ¤¤MaBoiteDeSaisie;B;C=I;MAX=30 et elle générera bien une boite de saisie dont l’en-tête sera « MaBoiteDeSaisie » et dont la valeur maximale sera 30. En revanche, si la cellule A2 contient elle-même une boite de saisie, alors l’import dans Design générera une erreur. Cette limite permet notamment d’éviter des incohérences de type. Par ailleurs, GT implémente des fonctions permettant de réaliser un contrôle dynamique des documents et des composants. Ainsi, empêcher un utilisateur de saisir une valeur définie dynamiquement peut être réalisé à l’aide d’une fonction GTCONTRAINTE. De même, autoriser ou empécher un utilisateur de saisir en fonction d’une variable est possible à l’aide de la fonction GTVERROU, modifier dynamiquement les items d’une liste déroulante est possible à l’aide de la fonction GTLISTE, etc.
Exemples
¤¤TOTO;B;M;C=I;MAX=12;MIN=10;NP Boîte de saisie entière obligatoire non personnalisable entre 10 et 12
¤¤TOTO;B;M;TFMT;L=50 Boîte de saisie obligatoire accueillant une chaîne de 50 caractères maximum
¤¤Commentaire;B;M;TFMT;L=0 Boîte de saisie obligatoire accueillant une chaîne sans limite de taille
¤¤TRUC;L;M;TFMT;ITEMS=01|02|03 Liste déroulante éditable, obligatoire, (items de la liste 01,02 et 03) avec un format texte
¤¤TRUC;L;E;M;C=R;ITEMS=1|2|3 Liste déroulante éditable, obligatoire, n'acceptant que des chiffres réels, (items de la liste 1,2 et 3)
¤¤CTRL;C;TFMT Contrôle accueillant des chaînes (format texte similaire à Excel)
¤¤CTRL;C Contrôle
¤¤PIECE;PA;"FILTER=Office|*.doc;*.xls;*.ppt" Pièce jointe ascendante avec filtre
¤¤MaDate;D; Composant Date avec calendrier
¤¤MaDate;B; Alternative à un composant date en ajoutant une GTCONTRAINTE avec la condition de règle et(non(esttexte(cell));non(esterreur(année(cell))))
Fonctions de déclaration d’objets
Fonctions de créations d’objets lors de l’import Excel-Design. Ces fonctions ne sont connues que de GT Design.
GTMOTIF
GTMOTIF(Name;Base_Pattern;Flags;[GTCLE(Msg_doublon;Msg_invalide;Cell1;…;CellN);[Initial_range]])
Crée un motif ayant pour nom « Name » (identifiant du motif), pour range de base Base_Pattern (cellules recopiées ou supprimées), pour range initial Initial_range (plage pour laquelle le range de base est recopié à l’ouverture du qst)
« Flags » est une chaîne qui contient les options du motif via des flags (séparés par des points virgules):
- « ALL » : toutes les options à VRAI
- « NONE » : toutes les options à FAUX
- « A » : le destinataire peut ajouter des lignes
- « S » : supprimer des lignes
- « H » : réplique la hauteur de ligne du Base_Pattern (FAUX par défaut)
- « T » : trier les données (FAUX par défaut)
- « F » : filtrer les données (FAUX par défaut)
- « V » : autoriser une seule ligne vide malgré les contraintes obligatoire (FAUX par défaut)
GTCLE (Msg_doublon ;Msg_invalide;Cell1; …;CellN)
indique la clé du motif (vide par défaut):
- Msg_doublon : message à afficher en cas de doublon
- Msg_invalide : message à afficher en cas de valeur invalide pour un élément de la clé (exp. #N/A)
- Cell1;..;CellN : liste des cellules individuelles du motif formant la clé
Exemples Standard Exemple 1 : =GTMOTIF("MonMotif_1";A3:K3;"ALL") N'autorise pas les lignes vides Exemple 2 : =GTMOTIF("MonMotif_2";A6:K6;"A;S;H;T;F") Pour les données/liste de référence Exemple 3 : =GTMOTIF("MonMotif_2";A6:K6;"NONE") Pour les données/liste de référence en conservant les hauteurs de ligne Exemple 4 : =GTMOTIF("MonMotif_2";A6:K6;"H") Avec une clé Exemple 5 : =GTMOTIF("MonMotif_1";A3:K3;"ALL"; GTCLE("La valeur"&A3&"est en doublon";A3&"invalide";A3))
GTCONTROLE
GTCONTROLE(entête;formule)
Crée un contrôle (composant non saisissable pour le correspondant) avec l’entête « entête » et contenant la formule exprimée en deuxième argument.
Lors de l’intégration des données du questionnaire, la valeur résultat de la formule sera récupérée dans le champ « entête » dans la base de données client.
GTLISTE
GTLISTE(entête_et_flags_liste;formule_du_range_des_items_de_liste)
Crée une liste déroulante avec l’entête « entête » et les flags associés à l’entête.
Le contenu de la liste est défini par le deuxième argument qui peut être une formule et doit renvoyer dans Answer le range des items de la liste.
Exemple 1 : =GTLISTE("MaListe";B1:B3) Exemple 2 : =GTLISTE("MaListe2";SI(A1=1;B1:B3;C1:C4)) Exemple 3 : =GTLISTE("MaListe3;M;E";DECALER(C1;0;0;nb.si(B1:B4;A1);1))
Particulièrement utile pour les listes liées
ATTENTION : Tous les range utilisés comme sources de données pointant vers une autre feuille ou pointant en-dehors du motif (si la liste se trouve dans un motif) doivent être déclarés en ABSOLU.
GTHYPERLIEN
GTHYPERLIEN(entête;libellé d'affichage ou formule;url de l'hyperlien ou formule)
Crée un hyperlien calame avec :
- un entête
- un libellé d’affichage
- une url de destination
Le libellé d’affichage comme l’url de destination peuvent être le résultat d’une formule.
Note : l’entête spécifié doit être identique à l’entête du composant ciblé en respectant la casse.
Cf l’article Syntaxe des hyperliens pour les hyperliens à l’intérieur du questionnaire.
GTVERROU
GTVERROU(range;formule;[Tirer_La_Formule])
Permet de placer un verrou dynamique (empêche la saisie par le correspondant Answer) sur la plage range (1er argument), si la condition formule renvoie vrai
L’option Tirer_La_Formule permet (faux par défaut) de spécifier si la formule est adaptée (décalée) pour chacune des cellules du range de départ, devrait être spécifiée à VRAI lorsque la zone verrouillée est un range.
Note 1 : Le range doit être sur le même onglet que la macro GTVERROU
Note 2 : Pour chaque cellule d’un onglet, une seule déclaration GTVERROU est autorisée.
Note 3 : Les composants déclarés obligatoires et qui sont verrouillés ne sont plus considérés comme obligatoires lors de la transmission de la réponse
Note 4 : Les contraintes GTContrainte doivent être vérifiées même si le composant est verrouillé
Exemple 1 =GTVERROU(A1;B1>0)
le composant se trouvant en A1 sera verrouillé si B1>0
Exemple 2 =GTVERROU(A1:A3;B1>0;VRAI)
Le composant se trouvant en A1 sera verrouillé si B1>0, le composant en A2 sera verrouillé si B2>0, etc…
Exemple 3 (déconseillé) =GTVERROU(A1:A3;B1>0)
Les composants se trouvant en A1, A2 et A3 seront verrouillés si B1>0,
Expression équivalente à =GTVERROU(A1:A3;$B$1>0;VRAI)
GTCONTRAINTE
GTCONTRAINTE(Cellule d'ancrage;GTREGLE(formule de cond° à respecter;formule msg si contrainte non vérifiée[;Cible1[;Cible2;...]]) [;GTREGLE(...)] ) [;GTREGLE(...)] )
Permet de placer une contrainte qui, si non vérifiée, empêche la transmission de la réponse
Cellule désigne la cellule d’ancrage de la contrainte
Cette cellule doit se trouver à l’intérieur d’un motif si la contrainte doit être répétée sur chaque ligne du motif.
GTREGLE(…) permet de définir l’une des règles de la contrainte
Plusieurs GTREGLE peuvent se suivre dans la déclaration GTCONTRAINTE, la première condition de règle (formule) non respectée déclenchera l’affichage du message de cette règle lors de la transmission de la réponse
Si aucune cible n’est précisée, c’est la cellule d’ancrage qui sera considérée comme la cible
Note : Toutes les références de cellules doivent être sur le même onglet que la déclaration GTCONTRAINTE
Exemple 1 : =gtcontrainte(A3;gtregle(A3>0;"La valeur doit être positive:"&&A3))
Exemple 2 : =gtcontrainte(A3;gtregle(A3>A4;"La valeur actuelle("&A3&")doit être supérieure à"&A4;A3;A4))
Exemple 3 : =gtcontrainte(A3;gtregle(A3>B3;"trop petite");gtregle(A3<C3;"Trop grande"))
GTCONDITIONNEMENT
GTCONDITIONNEMENTLIGNE(Cellule_ancrage;formule;lignes à conditionner)
GTCONDITIONNEMENTCOLONNE(Cellule_ancrage;formule;colonnes à conditionner)
GTCONDITIONNEMENTFEUILLE(Cellule_ancrage;formule)
Permet de masquer dynamiquement des lignes, colonnes ou des feuilles, lorsque la formule renvoie vrai (deuxième paramètre de la déclaration)
Note : La cellule d’ancrage et les lignes/colonnes/feuilles à conditionner doivent être sur le même onglet que la déclaration GTCONDITIONNEMENTxxx
Note 2 : Dans le cas d’un conditionnement pour chaque ligne d’un motif, la cellule d’ancrage de la déclaration GTCONDITIONNEMENTLIGNE doit se trouver dans le motif
Note 3 : Les composants obligatoires s’ils sont conditionnés perdent leur caractère obligatoires.
Mais les règles des GTCONTRAINTE doivent être respectées (modifier les formules des GTREGLE pour tenir compte du conditionnement).
Exemple 1 : GTCONDITIONNEMENTLIGNE(B3;B3>0;3:3)
Masque la ligne 3 si la cellule en B3 a une valeur > 0
Le conditionnement sera recopié sur chaque ligne du motif si B3 est dans un motif.
La formule pour chaque ligne de motif sera alors B3>0, B4>0, etc… (mêmes modes de recopie des formules que pour une formule dans une cellule de motif)
Exemple 2 : GTCONDITIONNEMENTCOLONNE(C4;C4>0;B:C)
Masque la colonne B si la cellule C4 a une valeur >0
Masque la colonne C si la cellule D4 a une valeur >0
Exemple 3 : GTCONDITIONNEMENTFEUILLE(Feuil1!A1;D5>0)
Masque la feuille Feuil1 si la cellule D5 a une valeur >0
le conditionnement est écrit sur Feuil1
Exemple 4 : GTCONDITIONNEMENTCOLONNE(C4;$C4>0;B:C)
Masque les colonnes B et C si la cellule C4 a une valeur >0
Cf l’article Conditionnement pour plus de précisions
GTRANGE
GTRANGE(référence) Permet de référencer une plage de cellule (utilisé essentiellement avec le flag ITEMSSRC pour les listes déroulantes) Exemple 1 : ="¤¤Liste1;L;M;ITEMSSRC=">RANGE(B2:B12) ATTENTION : Tous les range utilisés comme sources de données pointant vers une autre feuille ou pointant en-dehors du motif (si la liste se trouve dans un motif) doivent être déclarés en ABSOLU
Macros d’aide à la conception Excel
GTVALUEORCOMP
GTVALUEORCOMP(valeur_a_retourner_dans_Excel,declaration_de_composant_GT)
Permet de renvoyer dans Excel la valeur_a_retourner_dans_Excel (qui peut être une formule) et de déclarer un composant lors de l’import dans Design.
Ceci rend opérationnel dans Excel les formules se basant sur la cellule contenant le composant, facilite le test de formules et la conception de graphiques (évite les #valeur issus de formules dans Excel)
La macro commande Excel suivante suivante doit être déclarée dans un module VBA
Function GTVALUEORCOMP(v,c) GTVALUEORCOMP = v End Function
Remarque : de la même manière que GTVALUEORCOMP, il peut être utile de créer une fonction VBA GTCONTROLE dans le classeur de conception. Le développeur verra alors dans Excel le résultat de la fonction.
A noter que la déclaration de deux fonctions VBA de cette façon ne permet plus aussi rapidement de voir la déclaration de composants sauf à avoir utilisé une charte graphique pour les cellules saisissables qui soit visible dans Excel.
Fonctions de calcul
Fonctions à utiliser dans le questionnaire pour effectuer différents calculs.
Ces fonctions peuvent être inscrites dans le classeur Excel d’import dans Design.
N’ayant pas d’équivalents dans Excel, ces fonctions ne renvoient pas de valeur significative dans Excel.
Cet article décrit de manière plus extensive les fonctions de calcul d’Excel utilisables dans un questionnaire : Moteur de calcul de la grille.
GTPATNUM
GTPATNUM()
Renvoie le numéro de « ligne » dans le motif. La « ligne » étant la plage de base ou plage dupliquée du motif. Voici l’article dédié à la fonction.
GTVALIDMAILADDRESS
GTVALIDMAILADDRESS()
Renvoie l’adresse mail validée dans Answer (validation par l’envoi d’un mail avec une pièce jointe .checkmail) ou le login de l’utilisateur connecté. cf Validation des adresses mail des répondants.
Attention, cette fonction est volatile.
GTADMAILADDRESS
GTADMAILADDRESS()
Renvoie l’adresse mail validée dans Answer par l’authentification dans l’Active Directory local.
Attention, cette fonction est volatile.
GTISUSERCONNECTED
GTISUSERCONNECTED()
Renvoie un booléen suivant l’état de connexion de l’utilisateur dans GTAnswer. La fonction vaut VRAI dans le cas où un utilisateur connecté ouvre un questionnaire depuis un fil de discussion ou le bouton Answer du menu Sandwich.
Attention, cette fonction est volatile.
GTMS.fonction_agreg
GTMS.SOMME(Expression_vers_au_moins_un_multionglet) GTMS.NB(Expression_vers_au_moins_un_multionglet) GTMS.NBVAL(Expression_vers_au_moins_un_multionglet) GTMS.MAX(Expression_vers_au_moins_un_multionglet) GTMS.MIN(Expression_vers_au_moins_un_multionglet) GTMS.MOYENNE(Expression_vers_au_moins_un_multionglet) GTMS.CONCATENER(Expression_vers_au_moins_un_multionglet) Expression_vers_au_moins_un_multionglet étant une formule utilisant une ou plusieurs références vers un une feuille de multi-onglet
Dans le cadre d’un multi-onglet, GTMS.fonction_agreg renvoie la fonction_agreg de l’Expression_vers_au_moins_un_multionglet déclinée suivant tous les items du multi-onglet.
cf Synthèse de données d’un multi-onglet et
un fichier exemple GTTut-SynthGTMS-Qst.xlsx.zip.
Exemples :
=GTMS.SOMME(FeuilleMO!B1)
calculera (et lors de l’export sera convertie en)
=SOMME(Item1!B1;Item2!B1;Item3!B1)
GTMOGETSHEETNAME
GTMOGETSHEETNAME(item[,Axis[,tab_index]])
Renvoie le nom de la feuille de multi-onglet pour un item de multi-onglet spécifique, pour un axe de multi-onglet (nom de l’axe de multi-onglet) et pour l’index (base 0) de l’onglet concerné dans le groupe de multi-onglet (si le multi-onglet démultiplie plusieurs onglets de base).
Utilisé généralement avec indirect() pour récupérer hors multi-onglets des valeurs dans un multi-onglet.
Attention, après un export Excel, pour conserver les formules opérationnelles dans Excel et être compatible avec les noms d’onglets restreints d’Excel, il faut isoler l’appel à la fonction GTMOGETSHEETNAME(« Item de multi-onglet ») dans une cellule sans aucune autre fonction transformant le résultat de GTMOGETSHEETNAME.
Par exemple au lieu d’écrire =INDIRECT(« ‘ »>MOGETSHEETNAME(« Item de multi-onglet »)& »‘!B2″), il vaut mieux écrire =INDIRECT(« ‘ »&C4& »‘!B2 »), avec en cellule C4 =GTMOGETSHEETNAME(« Item de multi-onglet »)
cf Synthèse de données d’un multi-onglet
GTMOAXISVAL
GTMOAXISVAL([offset])
Renvoie l’item courant (si offset absent ou =0) ou item suivant/précédent (offset!=0) du groupe de multi-onglet courant
GTPJSIZE
GTPJSIZE(référence_cellule)
Renvoie la taille en octets du fichier enregistré dans le composant pièce jointe situé dans la « cellule »
GTMOITEMNUM
GTMOITEMNUM()
Renvoie le numéro de l’item du multi-onglet. Similaire à GTPATNUM() et commence à 1
GTDISPLAYTEXT
GTDISPLAYTEXT(cellule)
Renvoie le texte affiché par la cellule (tient compte du format numérique de la cellule source)