Aller au contenu

Messages recommandés

Posté(e)

Dans cette réponse de l'éminent Patrick_35, on fait connaissance avec des contrôles de format d'écriture de cellules XL : numberformatlocal

 

Peut-on en faire quelque chose équivalent en lecture ?

J'ai une cellule contenant le texte, plutôt le nombre 061234, or je n'arrive à récupérer que du 61234, sans le zéro.

 

Dans le même esprit, j'ai une dâte affichée en 27/03/2006 dans Excel or elle est lue en un chiffre entier barbare dans Vlisp et j'aimerais m'en dépatouiller sans les DOSlib pour la rendre intelligible.

 

Enfin, last but not least, quelqu'un connait-il le moyen de configurer un lien hypertexte en écriture dans une cellule.

 

Je sais, ca fait 3 questions dans un même sujet !

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut Tramber

l'éminent Patrick_35

Eminent, éminent... on fait ce que l'on peut ;)

Par ailleurs, je trouve que tu évolues sur le lisp et le vlisp à une vitesse surprenante :cool:

 

 

Au lieu d'un xlp-put-numberformatlocal, tu peux faire un xlp-get-numberformatlocal pour lire le format de cellule

Pour ce qui est de ton zéro, tu ne peux plus raisonner en chiffre mais en texte

exemple

(setq nb (itoa 61234))
(while (< (strlen nb) 6)
(setq nb (strcat "0" nb))
)

 

Pour ce qui est de la date, tu ajoutes 2415019 à la valeur de ta cellule et l'antique routine qui suit te traduit cette valeur (extrait de mémoire ou inspiré de Julian.lsp)

 (defun donne_date(td / d j hh m mm ss time y)
(setq time (* 86400.0 (- td (setq j (fix td)))))
(setq j (- j 1721119.0))
(setq y (fix (/ (1- (* 4 j)) 146097.0)))
(setq j (- (* j 4.0) 1.0 (* 146097.0 y)))
(setq d (fix (/ j 4.0)))
(setq j (fix (/ (+ (* 4.0 d) 3.0) 1461.0)))
(setq d (- (+ (* 4.0 d) 3.0) (* 1461.0 j)))
(setq d (fix (/ (+ d 4.0) 4.0)))
(setq m (fix (/ (- (* 5.0 d) 3) 153.0)))
(setq d (- (* 5.0 d) 3.0 (* 153.0 m)))
(setq d (fix (/ (+ d 5.0) 5.0)))
(setq y (+ (* 100.0 y) j))
(if (< m 10.0)
(setq m (+ m 3))
(progn
(setq m (- m 9))
(setq y (1+ y))
)
)
(setq hh (fix (/ time 3600.0)))
(setq time (- time (* hh 3600.00)))
(setq mm (fix (/ time 60.0)))
(setq ss (- time (* mm 60.0)))
(setq d (itoa (fix d)))
(setq m (itoa (fix m)))
(setq y (itoa (fix y)))
(setq hh (itoa hh))
(setq mm (itoa mm))
(setq ss (itoa (fix ss)))
(if (= (strlen d) 1)
(setq d (strcat "0" d)))
(if (= (strlen m) 1)
(setq m (strcat "0" m)))
(if (= (strlen hh) 1)
(setq hh (strcat "0" hh)))
(if (= (strlen mm) 1)
(setq mm (strcat "0" mm)))
(if (= (strlen ss) 1)
(setq ss (strcat "0" ss)))
(list (strcat d "." m "." y " " hh ":" mm ":" ss) (strcat hh ":" mm ":" ss))
)

Un (car (donne_date valeur)) --> Date+heure

Un (cadr (donne_date valeur)) --> heure

 

Pour ce qui est du lien hypertext, tu veux le configurer comment ?

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Tout d'abord, je te remercie, je vais regarder ça tranquillement.

Nonobstant (fallait l'écrire celui-là) le fait que j'utilise les fonctions de ikozmos, je vais m'adapter et essayer de faire marcher le get, sachant que j'hérite d'une autre famille de préfixe, etc....

 

Pour la date, fallait le savoir, heureusement que tu es là.

 

 

Pour ce qui est du lien hypertext, tu veux le configurer comment ?

 

Ben, je ne sais pas, je dois étudier 2 sortes de liens :

Vers un dossier

Vers un fichier

 

Je suppose que, dérrière cette question, tu veux savoir si je veux un texte apparent = au chemin ou un texte différent du chemin.

 

Eh bien, j'étudie toute proposition !

 

Dérrière tout ça, je voudrais savoir comment se renseigner sur ce qu'il est possible de faire sur une cellule et si je dois parcourir une doc Excel ou si la console Vlisp et capable d'aider à explorer les properties des cellules ou au moins le vocabulaire.

 

Mais créer un lien hypertexte de base sans en connaitre plus me satisferait déjà beaucoup !

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Je vais de donner un truc qui va te simplifier la vie avec excel

Tu fais un (setq a (xpl-get-value2 ...) sur la cellule A1 par exemple

Tu fais un (vlax-dump-object a) et tu fais ensuite un copier coller du résultat dans la colonne A d'excel (sur une autre feulle)

Tu fais ta cellule A1 dans Excel comme tu souhaites

Tu recommences avec le setq et le vlax pour coller le résultat dans le colonne B

Dans la colonne C, j'écris la formule =(si(A1=B1;"NON";"OUI") pour comparer les résultats et voir ce qui à modifié avant et après mes manips dans excel

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Y arrive pas, comprends pas du tout le dump.

 

(vlax-dump-object (msxl-get-value2   (msxl-get-range *xlapp* "F21")))

 

Ne marche pas même si (msxl-get-value2 (msxl-get-range *xlapp* "F21")) fonctionne

 

1. je ne vois pas la différence entre msxl-get-value2 et msxl-get-value

 

2. impossible de faire un dump

 

*********************

Attends un peu, tu m'as enduis(!) en erreur :

(vlax-dump-object (msxl-get-range *xlapp* "F21"))

fonctionne, c'est bien sur ce que tu voulais dire !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Me v'là beau, j'ai programmé :

 

(setq gh(vla-get-Hyperlinks (msxl-get-range *xlapp* "F21")))

 

et j'obtiens :

 

#VLA-OBJECT Hyperlinks 12799894

(entre crochet, CADxp les prend pour une balise HTML)

 

Le problème reste, car je ne sais pas comment exploiter l'objet VLA, ni lire ni écrire un lien hyper.

 

Peut-on y arriver par ce chemin, je continue de chercher......de l'aide !

 

 

[Edité le 30/3/2006 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

 (vlax-for Lnk hypl(setq voir lnk))  
 (msxl-get-Address voir)

 

Ouf, ca marche, galère....

 

Mais je n'arrive pas à y programmer un vl-catch-all-apply en cas de cellule sans URL.

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
  • 2 semaines après...
Posté(e)

En fait, avec

(setq h1 (vla-get-hyperlinks cell1)
     h2 (vla-get-hyperlinks cell2)
     )
(vlax-for link h1
 (msxp-get-Address link)
 )
(vlax-for link h2
 (msxp-get-Address link)
 )

 

ne pose plus de problèmes si cell1 a un lien et cell2 n'en a pas.

Tout va bien, merci à toi.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité