Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Suite à post et après plusieurs essai, je me suis aperçu d'un dysfonctionnement sur l'utilisation de la fonction gc:TableAsTree créée par (gile).

 

Dans la colonne 2, certaines cellules fusionnent, d'autres non, et je ne comprends pas du tout pourquoi.

 

Je lance la commande

(gc:TableAsTree tbl 2 (vla-get-Rows tbl) 0 (vla-get-Columns tbl))

pour traiter de la ligne 3 (0, 1, 2) à la fin et de la colonne (0) à la fin.

 

Y a t'il un soucis de code ?

 

http://img375.imageshack.us/img375/8679/sanstitrect.png

 

J'ai essayé avec le code de Patrick, ça fonctionne.

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Salut,

 

Pourrais mettre un fichier avec ce tableau en téléchargement ou me l'envoyer à:

(vl-list->string '(99 104 97 110 116 101 97 117 46 103 105 108 108 101 115 64 111 114 97 110 103 101 46 102 114))

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

C'est parti. !

Merci pour cette réactivité !

 

Comme je le dis dans le message, ce n'est peut être pas un problème dans TON code.

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Re,

 

Il y avait effectivement un contrôle mal placé.

J'en ai profité pour remanier le code pour que les arguments soient tous indexés à partir de 0 (maxr et maxc étaient indexés à partir de 1, row et col à partir de 0)

Il faut donc remplacer, dans ta routine cp2 :

(gc:TableAsTree tbl 2 (vla-get-Rows tbl) 0 (vla-get-Columns tbl))

par :

(gc:TableAsTree tbl 2 (1- (vla-get-Rows tbl)) 0 (1- (vla-get-Columns tbl)))

 

Le nouveau code :

 

;; Arguments
;; tbl : le tableau (vla-object)
;; row : index de la rangée de départ (indexé sur 0)
;; maxr : index de la dernière rangée à traiter (indexé sur 0)
;; col : index de la colonne de départ (indexé sur 0)
;; maxc : index de la dernière colonne à traiter (indexé sur 0)

(defun gc:TableAsTree (tbl row maxr col maxc / next)
 (setq next (1+ row))
 (if (and (    (progn
     (while
(and
  (= (vlax-variant-value (vla-GetCellValue tbl row col))
     (vlax-variant-value (vla-GetCellValue tbl next col))
  )
  (	)
 (setq next (1+ next))
     )
     (if (	(progn
  (vla-MergeCells tbl row (1- next) col col)
  (gc:TableAsTree tbl row (1- next) (1+ col) maxc)
)
     )
     (gc:TableAsTree tbl next maxr col maxc)
   )
 )
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é