Quand vous sléectionnez la zone dans XL, classiquement, vous partez de la cellule en haut à gauche pour finir en bas à doite. Que se passe-t-il si vous faites de bas droit à haut gauche, ou de bas gauche à haut droit (le but c'est de terminer la sélection en haut) ?
Est-ce que tu connais le Lisp (langage utilisé pour les macro Autocad au début)
J'ai ajouté qq commentaires
(SETQ txt (CLIP-GET)) ; on récupère le contenu du presse-papier
(SETQ YGAP 100) ; on initialise
(IF (NOT txt) (QUIT "*Cancel*")) ; on vérifie que le contenu n'est pas vide (SETQ txt (STRREPLACE txt "\t" " ")); on remplace le séparateur de colonne (tabulation) par un espace (SETQ txt (STRREPLACE txt "\n" ")(")) ; on remplace le changement de ligne par un )( (SETQ txt (STRREPLACE txt "\r" "")) ; je ne sais pas ce qu'est return (dans ce qui est récupéré du presse-papier (SETQ txt (STRREPLACE txt "," ".")) ; on remplace le , par .
(SETQ txt (STRCAT "((" (SUBSTR txt 1 (1- (STRLEN txt))) "))")) ; on complète pour avoir une ( au début et une ) à la fin
(SETQ txtlist (READ txt)) ; on converti la chaine de caractères en forme compréhensible par le langage
Le système des "list", caractéristique du Lisp, fait qu'en ayant ajouté les couples (), on récupère directement les couples "s" de coordonnées, qui sont eux-même des listes.
CAR et CADR permet d'extraire les sous-parties du couple de coordonnées. Pour info on peut combiner les a et d pour extraire un élèment particulier d'une liste comportant beaucoup d'élèment (typiquement le résultat de la commande "liste" appliquée à un élèment ou à une famille d'élèment (auquel cas on a une list de list, et ça peut aller loin) ).
Je ne sais pas pourquoi il y a un test sur ymax, ni à quoi servent basep et YGAP