dzanomaniak Posté(e) le 17 mai 2023 Posté(e) le 17 mai 2023 Bonjour, peut-on copier une valeur d'un tableau sur une présentation sur un autre tableau d'une autre présentation dans le même dwg ? Merci et bon week-end a lundi. Citer
Fraid Posté(e) le 17 mai 2023 Posté(e) le 17 mai 2023 Bonjour, Il me semble que si tu utilise le même tableau dans chaque présentation, tu place ton tableau dans l'espace objet, et tu l'affiche dans chaque présentation dans une fenêtre. Citer https://github.com/Fraiddd
Invité Dzan Posté(e) le 17 mai 2023 Posté(e) le 17 mai 2023 Bonjour non , ce n'est pas le même tableau. Citer
Luna Posté(e) le 18 mai 2023 Posté(e) le 18 mai 2023 Coucou, C'est théoriquement possible mais comme tes 2 tableaux sont dans 2 présentations différentes, il faut triffouiller un peu. Pour y parvenir il faut insérer un champ dynamique (formule) dans le tableau cible et connaître l'ID de ton tableau source. Pour connaître l'ID de ton tableau je te suggère de simplement créer un objet texte > faire un clic droit dans l'éditeur de texte > insérer un champ > Formule > Cellule > Cliquer sur la cellule du tableau source que tu souhaites lier à ton second tableau. Tu devrais obtenir une ligne comme ceci : La ligne qui nous intéresse est celle surlignée ci-dessus en jaune. Tu fais un CTRL+C de cette ligne, puis tu peux fermer la fenêtre et supprimer l'objet texte (il était juste temporaire pour récupérer l'ID du tableau). Tu prends ensuite ton second tableau et tu insères un champs dans la cellule de ton choix (encore une fois il s'agit d'une formule) en collant la valeur précédemment copiée dans l'expression de formule. Tu peux fermer la fenêtre en appuyant sur OK et tes deux tableaux sont liés (si tu modifies la valeur dans le tableau source, la valeur dans le tableau cible se met à jour après un REGEN) 😛 Tu remarqueras d'ailleurs que l'expression de la formule est en fait l'ID du tableau "Table(2410179017920)" suivi des coordonnées de la cellule "B2", séparé par un point "." Tu peux donc changer facilement les coordonnées de la cellule si besoin sans repasser par un texte temporaire ! Attention tout de même, car il se peut que le lien casse (mais cela m'est arrivé assez rarement). Bisous, Luna 1 Citer
Fraid Posté(e) le 22 mai 2023 Posté(e) le 22 mai 2023 Bonjour, La solution de Luna me semble la meilleur. Sinon voici un petit Lisp qui propage la valeur d'une cellule dans les tableaux se trouvant dans les autres Présentations que celle active. Par contre la valeur des rangées et colonnes commencent à zero: A = 0, B = 1 ... et 1 = 0, 2 = 1 Par exemple la cellule B3 est row = 2 , column = 1 (defun c:propcell (/ acdc cl lname row col val) (vl-load-com) (setq acdc (vla-get-activedocument (vlax-get-acad-object)) cl (getvar 'ctab) row (getstring "Row ?") col (getstring "Column ?") val (getstring "Value ?") ) (vlax-for l (vlax-get-property acdc 'layouts) (setq lname (vla-get-name l)) (if (and (/= lname "Model")(/= lname cl)) (vlax-for obj (vlax-get-property l 'block) (if (= (vla-get-objectname obj) "AcDbTable") (vla-SetCellValue obj row col val) ) ) ) ) ) 1 Citer https://github.com/Fraiddd
dzanomaniak Posté(e) le 31 mai 2023 Auteur Posté(e) le 31 mai 2023 Le 18/05/2023 à 10:40, Luna a dit : Coucou, C'est théoriquement possible mais comme tes 2 tableaux sont dans 2 présentations différentes, il faut triffouiller un peu. Pour y parvenir il faut insérer un champ dynamique (formule) dans le tableau cible et connaître l'ID de ton tableau source. Pour connaître l'ID de ton tableau je te suggère de simplement créer un objet texte > faire un clic droit dans l'éditeur de texte > insérer un champ > Formule > Cellule > Cliquer sur la cellule du tableau source que tu souhaites lier à ton second tableau. Tu devrais obtenir une ligne comme ceci : La ligne qui nous intéresse est celle surlignée ci-dessus en jaune. Tu fais un CTRL+C de cette ligne, puis tu peux fermer la fenêtre et supprimer l'objet texte (il était juste temporaire pour récupérer l'ID du tableau). Tu prends ensuite ton second tableau et tu insères un champs dans la cellule de ton choix (encore une fois il s'agit d'une formule) en collant la valeur précédemment copiée dans l'expression de formule. Tu peux fermer la fenêtre en appuyant sur OK et tes deux tableaux sont liés (si tu modifies la valeur dans le tableau source, la valeur dans le tableau cible se met à jour après un REGEN) 😛 Tu remarqueras d'ailleurs que l'expression de la formule est en fait l'ID du tableau "Table(2410179017920)" suivi des coordonnées de la cellule "B2", séparé par un point "." Tu peux donc changer facilement les coordonnées de la cellule si besoin sans repasser par un texte temporaire ! Attention tout de même, car il se peut que le lien casse (mais cela m'est arrivé assez rarement). Bisous, Luna merci d'avoir pris le temps de répondre, je vais testé de suite, merci encore. Citer
dzanomaniak Posté(e) le 31 mai 2023 Auteur Posté(e) le 31 mai 2023 Le 22/05/2023 à 16:07, Fraid a dit : Bonjour, La solution de Luna me semble la meilleur. Sinon voici un petit Lisp qui propage la valeur d'une cellule dans les tableaux se trouvant dans les autres Présentations que celle active. Par contre la valeur des rangées et colonnes commencent à zero: A = 0, B = 1 ... et 1 = 0, 2 = 1 Par exemple la cellule B3 est row = 2 , column = 1 (defun c:propcell (/ acdc cl lname row col val) (vl-load-com) (setq acdc (vla-get-activedocument (vlax-get-acad-object)) cl (getvar 'ctab) row (getstring "Row ?") col (getstring "Column ?") val (getstring "Value ?") ) (vlax-for l (vlax-get-property acdc 'layouts) (setq lname (vla-get-name l)) (if (and (/= lname "Model")(/= lname cl)) (vlax-for obj (vlax-get-property l 'block) (if (= (vla-get-objectname obj) "AcDbTable") (vla-SetCellValue obj row col val) ) ) ) ) ) merci d'avoir pris le temps de répondre. Citer
dzanomaniak Posté(e) le 1 juin 2023 Auteur Posté(e) le 1 juin 2023 Le 18/05/2023 à 10:40, Luna a dit : Coucou, C'est théoriquement possible mais comme tes 2 tableaux sont dans 2 présentations différentes, il faut triffouiller un peu. Pour y parvenir il faut insérer un champ dynamique (formule) dans le tableau cible et connaître l'ID de ton tableau source. Pour connaître l'ID de ton tableau je te suggère de simplement créer un objet texte > faire un clic droit dans l'éditeur de texte > insérer un champ > Formule > Cellule > Cliquer sur la cellule du tableau source que tu souhaites lier à ton second tableau. Tu devrais obtenir une ligne comme ceci : La ligne qui nous intéresse est celle surlignée ci-dessus en jaune. Tu fais un CTRL+C de cette ligne, puis tu peux fermer la fenêtre et supprimer l'objet texte (il était juste temporaire pour récupérer l'ID du tableau). Tu prends ensuite ton second tableau et tu insères un champs dans la cellule de ton choix (encore une fois il s'agit d'une formule) en collant la valeur précédemment copiée dans l'expression de formule. Tu peux fermer la fenêtre en appuyant sur OK et tes deux tableaux sont liés (si tu modifies la valeur dans le tableau source, la valeur dans le tableau cible se met à jour après un REGEN) 😛 Tu remarqueras d'ailleurs que l'expression de la formule est en fait l'ID du tableau "Table(2410179017920)" suivi des coordonnées de la cellule "B2", séparé par un point "." Tu peux donc changer facilement les coordonnées de la cellule si besoin sans repasser par un texte temporaire ! Attention tout de même, car il se peut que le lien casse (mais cela m'est arrivé assez rarement). Bisous, Luna Bonjour, donc j'ai copié le tableau de la 2ème présentation sur la première présentation, pour avoir l'ID, et ensuite recoller l'ID sur la cellule... par contre cela ne fonctionne que pour une valeur numérique pas pour pour du texte. Je met en lien une documentation de cad magazine. https://cad-magazine.com/wp-content/uploads/2019/09/cad160_pp58-63_trucs.pdf Citer
Fraid Posté(e) le 1 juin 2023 Posté(e) le 1 juin 2023 Bonjour, Citation que pour une valeur numérique pas pour pour du texte C'est le format de ta cellule qui est en cause. Tu sélectionne ta cellule et dans les propriétés tu change Type de données en Texte et après tu copie ton tableau dans d'autre presentation. Citer https://github.com/Fraiddd
dzanomaniak Posté(e) le 1 juin 2023 Auteur Posté(e) le 1 juin 2023 Le 22/05/2023 à 16:07, Fraid a dit : Bonjour, La solution de Luna me semble la meilleur. Sinon voici un petit Lisp qui propage la valeur d'une cellule dans les tableaux se trouvant dans les autres Présentations que celle active. Par contre la valeur des rangées et colonnes commencent à zero: A = 0, B = 1 ... et 1 = 0, 2 = 1 Par exemple la cellule B3 est row = 2 , column = 1 (defun c:propcell (/ acdc cl lname row col val) (vl-load-com) (setq acdc (vla-get-activedocument (vlax-get-acad-object)) cl (getvar 'ctab) row (getstring "Row ?") col (getstring "Column ?") val (getstring "Value ?") ) (vlax-for l (vlax-get-property acdc 'layouts) (setq lname (vla-get-name l)) (if (and (/= lname "Model")(/= lname cl)) (vlax-for obj (vlax-get-property l 'block) (if (= (vla-get-objectname obj) "AcDbTable") (vla-SetCellValue obj row col val) ) ) ) ) ) Bonjour, désolé je n'ai pas compris comment cela fonctionne, j'ai pris le temps de lire plusieurs fois mais .. je regarderais mardi. Citer
dzanomaniak Posté(e) le 1 juin 2023 Auteur Posté(e) le 1 juin 2023 il y a 14 minutes, Fraid a dit : Bonjour, C'est le format de ta cellule qui est en cause. Tu sélectionne ta cellule et dans les propriétés tu change Type de données en Texte et après tu copie ton tableau dans d'autre presentation. merci, je vais voir , mais c'est dans le manuel de doc magazine qu'ils le disent. Citer
dzanomaniak Posté(e) le 6 juin 2023 Auteur Posté(e) le 6 juin 2023 Le 01/06/2023 à 16:35, dzanomaniak a dit : merci, je vais voir , mais c'est dans le manuel de doc magazine qu'ils le disent. Bonjour, j'ai bien changé dans les propriétés et changé le type de données en texte mais cela ne fonctionne pas Citer
Messages recommandés