Copier-Coller Tableur Dynamique
Pouvoir copier-coller du texte composé d’un ensemble de lignes ou de cellules.
L’évolution propose différents modes de collage à partir des données du presse-papier (celui-ci doit être au format Excel, qu’il soit issu d’Excel ou de DIAPASON : séparation des lignes par retour-chariot ; séparation des cellules par tabulation).
Coller avec modification (remplacement des cellules)
Coller avec insertion (ajout de lignes sous la ligne courante)
Coller avec DIALOG (le contenu du presse-papier est fourni à la requête RCT de contrôle)
Historique collage
Paramétrage tableur dynamique
Afin de gérer l’intégrité des tableurs particuliers et de préserver les performances sur les tableurs ayant un contenu conséquent, il sera nécessaire de paramétrer sur la définition du tableur dynamique :
Le fait que l’on souhaite disposer du collage multiple
Le fait que l’on gère l’intégrité du collage (possibilité d’annuler en cas d’erreur)
Copier (Ctrl-C)
La sélection d’un bloc de cellules n’est pas possible aujourd’hui car elle n’est pas compatible avec la sélection de lignes. Pour passer en mode « sélection de cellules » il faudra faire Ctrl-E (Sélection étendue comme dans Excel) ; Ctrl-C sortira de ce mode en copiant les cellules dans le presse-papier Windows et « Esc » ou F4 reviendra en mode normal sans copier. Les autres actions seront inactivées.
Pour distinguer le tableur quand il se trouve en mode « sélection de cellules » par rapport au mode normal, le « curseur » qui entoure la cellule courante disparaît et la couleur des entêtes de colonnes et de lignes change.
Seule la sélection d'une zone rectangulaire de cellules est possible.
La sélection depuis DIAPASON est limitée à 64ko (65536 caractères).
Coller avec Modification (Ctrl-V)
Cette action sera disponible uniquement si « Collage spécial » est coché sur la définition du TDY ; dans le cas contraire le contenu d’une seule cellule est collé dans la cellule courante.
Le collage avec modification va répéter pour chaque cellule du presse-papier :
Collage de la valeur
Positionnement dans la cellule suivante (d’abord à droite puis ligne suivante)
La première cellule collée débute sur la cellule courante si la cellule est saisissable : DIAPASON initialise le contenu de cette cellule avec la valeur à coller et déclenche le contrôle de la zone, comme lorsqu'une saisie est effectuée.
Traitement de toutes les actions supplémentaires qui ont pu être déclenchées dans le contrôle via la fonction TAB-ACTION (ajouts, suppressions, positionnements,...).
Si une erreur se produit, le traitement du collage est stoppé à ce stade (erreur dans la RCT ou erreur de position).
Si aucune erreur ne s'est produite mais que des TAB-ACTION de positionnement ont dépositionné le curseur, DIAPASON effectue un TAB-ACTION supplémentaire pour se positionner sur la cellule suivante de la zone de collage par rapport à la cellule ou vient d'avoir lieu le précédent collage de valeur pour poursuivre le traitement.
Si la cellule courante est affichée, la valeur à coller n'est pas prise en compte et DIAPASON passe à la zone suivante (voir cas particuliers).
Soit le tableau suivant (orange = FOCUS) :
| Et le presse-papier suivant :
|
Si on vient coller avec modification en L1C2 (pas d’erreur), le résultat sera le suivant :
L1C1 | V1 | V2 | V3 | L1C5 |
L2C1 | V4 | V5 | V6 | L2C5 |
L3C1 | L3C2 | L3C3 | L3C4 | L3C5 |
Si on vient coller avec modification en L1C2, mais que la valeur « V2 » n’est pas correcte, le résultat sera le suivant :
L1C1 | V1 | V2 | L1C4 | L1C5 |
L2C1 | L2C2 | L2C3 | L2C4 | L2C5 |
L3C1 | L3C2 | L3C3 | L3C4 | L3C5 |
Si on vient coller avec modification en L1C4 (ça ne rentre pas en largeur), le résultat sera le suivant :
L1C1 | L1C2 | L1C3 | V1 | V2 |
L2C1 | L2C2 | L2C3 | L2C4 | L2C5 |
L3C1 | L3C2 | L3C3 | L3C4 | L3C5 |
Si on vient coller avec modification en L3C2 (ça ne rentre pas en hauteur), le résultat sera le suivant (cas où la création est possible) :
L1C1 | L1C2 | L1C3 | L1C4 | L1C5 |
L2C1 | L2C2 | L2C3 | L2C4 | L2C5 |
L3C1 | V1 | V2 | V3 | L3C5 |
i1 | V4 | V5 | V6 | i2 |
Lors de l’insertion automatique de ligne, la règle du tableur est exécutée en mode « CRE » : les valeurs i1 et i2 sont issues de la règle RCT en mode CRE.
Si une erreur a été déclenchée, l’action « Historique Collage » présentera toutes les valeurs prévues pour le collage et l’état pour chacune (ok, erreur, pas traité).
Si l’intégrité de collage est gérée sur ce tableur, il est possible d’annuler et de revenir à l’état du tableur avant le collage (contenu et variables uniquement) :
Coller avec insertion (Ctrl-W)
Cette action sera disponible uniquement si « Collage spécial » est coché sur la définition du TDY. Le coller avec insertion fonctionne comme le coller avec modification pour la première ligne à coller, puis insère une ligne pour chaque ligne supplémentaire à coller (si la création de ligne est possible).
Le collage avec insertion va répéter pour chaque cellule du presse-papier :
Collage de la valeur
Insertion de ligne si dernière cellule à coller de la ligne (avec exécution RCT en mode « CRE »)
Positionnement dans la cellule suivante (d’abord à droite puis ligne suivante)
Le positionnement à la cellule suivante et l’insertion de ligne vont déclencher le contrôle, et donc stopper le collage si une erreur est déclenchée (erreur dans la RCT ou erreur de position).
Soit le tableau suivant (orange = FOCUS) :
| Et le presse-papier suivant :
|
Si on vient coller avec insertion en L3C2, le résultat sera le suivant :
L1C1 | L1C2 | L1C3 | L1C4 | L1C5 |
L2C1 | L2C2 | L2C3 | L2C4 | L2C5 |
L3C1 | V1 | V2 | V3 | L3C5 |
i1 | V4 | V5 | V6 | i2 |
Note : les valeurs i1 et i2 sont issues de la règle RCT en mode CRE.
Coller avec DIALOG (Ctrl-O)
Le principe sera de mettre à disposition dans la RCT le contenu du presse-papier via la fonction TAB-ACTION :
VLO.Fct = TAB-ACTION ( TAB-ACT=INI-PRP, VALEUR=VLO.CtxCollage )
Dans VLO.CtxCollage on aura le nombre de lignes et de colonnes présentes dans le presse-papier sous la forme 2,3 pour notre exemple (2 lignes et 3 colonnes).
VLO.Lig = CLO.1
VLO.Col = CLO.2
VLO.Fct = TAB-ACTION ( TAB-ACT=VAL-PRP, LIGNE=VLO.Lig, COLONNE=VLO.Col, VALEUR=VLO.ValCel )
Dans VLO.ValCel on aura la valeur correspondant à la ligne et colonnes passée, V2 pour notre exemple (ligne 1 colonne 2).
Presse-papier exemple :
V1 | V2 | V3 |
V4 | V5 | V6 |
Historique Collage
Affichage des données à coller, avec un statut indiquant l’état du collage.
Comportement des cas limites
Collage avec colonne 3 qui n’est pas saisissable (les données ne sont pas considérées mais pas d’erreur) :
L1C1 | V1 | L1C3 | V3 | L1C5 |
L2C1 | V4 | L2C3 | V6 | L2C5 |
L3C1 | L3C2 | L3C3 | L3C4 | L3C5 |
Collage avec colonne 3 qui n’est pas affichée (les données ne sont collées que sur les colonnes affichées) :
L1C1 | V1 | V2 | V3 | L1C6 | |
L2C1 | V4 | V5 | V6 | L2C6 | |
L3C1 | L3C2 | L3C4 | L3C5 | L3C6 |
Collage avec sortie de cellule L1C3 qui supprime la ligne courante (la ligne 2 devient la ligne 1 ; la ligne 3 devient la ligne 2) :
L2C1 | L2C2 | L2C3 | V3 | L2C5 |
L3C1 | V4 | V5 | V6 | L3C5 |
Collage avec sortie de cellule L1C3 qui insère une ligne sous la ligne courante :
L1C1 | V1 | V2 | V3 | L1C5 |
V4 | V5 | V6 | ||
L2C1 | L2C2 | L2C3 | L2C4 | L2C5 |
L3C1 | L3C2 | L3C3 | L3C4 | L3C5 |
Les lignes de destination étant mémorisées avant de démarrer le collage (numéro de ligne), le collage s’effectue à l’endroit prévu au départ.
Tables de Valeurs
La même fonctionnalité de copier-coller sera proposée dans les Tables de Valeurs, mais sera tout le temps active. L’intégrité du collage n’est pas gérée.
Autres tableurs
Dans les autres tableurs de DIAPASON, seule la fonctionnalité de copier est disponible.