PHILPHIL Posté(e) le 23 septembre 2019 Partager Posté(e) le 23 septembre 2019 bonjour comme beaucoup j'utilise LXL de patrick, j'ai plus de 25000 cases a exporter dans un fichier excel. hors celui ci est en mode de calcul "automatique" et ca me prend 1 heure a exporter j'ai remarqué que en mode de calcul "manuel" ca prenait bcp moins de temps en lisp, ou vlisp, est ce que l'on peut gerer EXCEL, pour qu'il se mette en mode de calcul "manuel" avant ecriture dans un fichier excel, puis le remettre en mode de calcul automatique avant fermeture ? quelle sont les lignes de codes ? et ou les insérer dans un lisp ? MERCI Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 23 septembre 2019 Partager Posté(e) le 23 septembre 2019 Salut, Le mode de calcul est géré au niveau de l'application et vaut pour tous les documents ouverts. Pas testé (remplacer excelApp par la variable liée à l'application Excel). (vlax-put excelApp 'Calculation -4105) ; xlCalculationAutomaticou (vlax-put excelApp 'Calculation -4135) ; xlCalculationManual Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 24 septembre 2019 Auteur Partager Posté(e) le 24 septembre 2019 hello Gile je testerai ca mais vue mon niveau, ca m'avance pas plusa moins de savoir ou tu trouves ce genre d'info que je potasse le sujet en fait il faut que j'écrive les lignes telles quelles apres le code d'ouverture du fichier ca va m'etre encore plus difficile de modifier le lisp de Patrick LXL merci Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 25 septembre 2019 Auteur Partager Posté(e) le 25 septembre 2019 hello bon ba pas reussis a savoir comment ca marche ce tructest non concluant phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 26 septembre 2019 Partager Posté(e) le 26 septembre 2019 Je n'ai pas testé mais ça devrait se passer là. Dans le fichier Lxl.lsp, dans la routine 'lancer_excel' ligne 481, on désactive le mode de calcul automatique : (defun lancer_excel(/ sel) (setq xl (vlax-get-or-create-object "Excel.Application")) (vlax-put xl 'Calculation -4135) ; xlCalculationManual (setq wks (vlax-get xl 'Workbooks)) (vlax-for sel wks (setq liste_fichiers_ouvert (append liste_fichiers_ouvert (list (strcase (vlax-get sel 'fullname))))) ) )dans la routine 'fermer_excel' ligne 521, on réactive le mode calcul automatique : (defun fermer_excel(/ ok sel) (vlax-put xl 'Calculation -4105) ; xlCalculationAutomatic (if (not (member (strcase (vlax-get xls 'fullname)) liste_fichiers_ouvert)) (vlax-invoke-method xls 'close :vlax-false) ) (foreach sel (list xl wks xls classeur) (vlax-release-object sel) ) (setq xl nil wks nil xls nil classeur nil) (gc)(gc) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 26 septembre 2019 Auteur Partager Posté(e) le 26 septembre 2019 hello Gile merci j'ai ceci en retour [b]Commande: LXL511 Microsoft Excel: Impossible de définir la propriété Calculation de la classe Application.[/b] ou trouves tu ce genre de renseignements ?un fichier HELP autodesk ? ou EXCEl ? sur le net ? j'ai trouvé ca en cherchant sur le net https://www.cadtutor.net/forum/topic/66334-modify-excel-options-using-autolisp/ donc j'ai rajouté cette ligne (vlax-dump-object xl T) ;------------------------------------------------------------------------- ; Lancer une liaison avec Excel ;------------------------------------------------------------------------- (defun lancer_excel(/ sel) (setq xl (vlax-get-or-create-object "Excel.Application")) ;;; debut modification (vlax-dump-object xl T) (vlax-put-property xl 'Calculation -4135) ; xlCalculationManual ;;; fin modification (setq wks (vlax-get xl 'Workbooks)) (vlax-for sel wks (setq liste_fichiers_ouvert (append liste_fichiers_ouvert (list (strcase (vlax-get sel 'fullname))))) ) ) et en réponse j'ai caCommande: LXL511; _Application: nil; Valeurs de propriétés:; ActiveCell (RO) = nil; ActiveChart (RO) = Une exception s’est produite; ActiveEncryptionSession (RO) = -1; ActivePrinter = "HP Universal Printing PCL 6 sur Ne07:"; ActiveProtectedViewWindow (RO) = nil; ActiveSheet (RO) = nil; ActiveWindow (RO) = nil; ActiveWorkbook (RO) = nil; AddIns (RO) = #<VLA-OBJECT AddIns 0000018c8cfef268>; AddIns2 (RO) = #<VLA-OBJECT AddIns2 0000018c8cfef2d8>; AlertBeforeOverwriting = -1; AltStartupPath = ""; AlwaysUseClearType = -1; Application (RO) = #<VLA-OBJECT _Application 000001847cc227f8>; ArbitraryXMLSupportAvailable (RO) = -1; AskToUpdateLinks = -1; Assistance (RO) = #<VLA-OBJECT IAssistance 0000018c8cfeddd8>; AutoCorrect (RO) = #<VLA-OBJECT AutoCorrect 0000018c8cfedf98>; AutoFormatAsYouTypeReplaceHyperlinks = -1; AutomationSecurity = 1; AutoPercentEntry = -1; AutoRecover (RO) = #<VLA-OBJECT AutoRecover 0000018c8cff0ed8>; Build (RO) = 7237.0; CalculateBeforeSave = -2146826246; Calculation = -2146826246; CalculationInterruptKey = 2; CalculationState (RO) = 0; CalculationVersion (RO) = 145621; Caller (RO) = ...Contenu indexé masqué...; CanPlaySounds (RO) = -1; CanRecordSounds (RO) = 0; Caption = "Microsoft Excel"; CellDragAndDrop = -1; Cells (RO) = Une exception s’est produite; Charts (RO) = Une exception s’est produite; ClipboardFormats (RO) = ...Contenu indexé masqué...; ClusterConnector = ""; Columns (RO) = Une exception s’est produite; COMAddIns (RO) = #<VLA-OBJECT COMAddIns 000001845338cb88>; CommandBars (RO) = #<VLA-OBJECT _CommandBars 0000018c8cff0308>; CommandUnderlines = -4105; ConstrainNumeric = 0; ControlCharacters = 0.0; CopyObjectsWithCells = -1; Creator (RO) = 1480803660; Cursor = -4143; CursorMovement = 1.0; CustomListCount (RO) = 4.0; CutCopyMode = 0; DataEntryMode = -4146; DDEAppReturnCode (RO) = 0.0; DecimalSeparator = "," et ca a l fin Méthodes prises en charge:; ActivateMicrosoftApp (1); AddCustomList (2); Calculate (); CalculateFull (); CalculateFullRebuild (); CalculateUntilAsyncQueriesDone (); CentimetersToPoints (1); CheckAbort (1); CheckSpelling (3); ConvertFormula (5); DDEExecute (2); DDEInitiate (2); DDEPoke (3); DDERequest (2); DDETerminate (1); DeleteCustomList (1); DisplayXMLSourcePane (1); DoubleClick (); Evaluate (1); ExecuteExcel4Macro (1); FindFile (); GetCustomListContents (1); GetCustomListNum (1); GetOpenFilename (5); GetPhonetic (1); GetSaveAsFilename (5); Goto (2); Help (2); InchesToPoints (1); InputBox (8); Intersect (30); MacroOptions (11); MailLogoff (); MailLogon (3); NextLetter (); OnKey (2); OnRepeat (2); OnTime (4); OnUndo (2); Quit (); RecordMacro (2); RegisterXLL (1); Repeat (); Run (31); SaveWorkspace (1); SendKeys (2); SharePointVersion (1); Undo (); Union (30); Volatile (1); Wait (1); _Evaluate Microsoft Excel: Impossible de définir la propriété Calculation de la classe Application.(1); _Run2 (31) et si ce sont les caractéristique de EXCEL 2010 au moment au le programme l'ouvreje suis loin des -4135 ou -4105; Calculation = -2146826246 bizarre non ? Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 26 septembre 2019 Partager Posté(e) le 26 septembre 2019 J'ai cherché sur le net principalement dans la documentation du VBA Excel :Application.CalculationXlCalculation énumération Après, je n'en sais pas beaucoup plus, la programmation Excel n'est vraiment pas mon fort, j'en fais quand j'y suis obligé mais j'essaye d'éviter. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 26 septembre 2019 Auteur Partager Posté(e) le 26 septembre 2019 hello d'accord Gile j'ai essayé ca aussi, sans succes si j'ai bien compris, le mode de calcul "manuel" "automatique" est lier au fichier lui meme et non pas a excel il faut donc ouvrir le fichier, puis ensuite dire a excel d'etre en "manuel" remplir les cases, dire a exel de repasser en automatique, puis fermer le fichier( le mode "automatique" etant sauvegardé dans le fichier ) ca semble logique ? Merci gile, je vais poursuivre mes recherches ;------------------------------------------------------------------------- ; Lancer une liaison avec Excel ;------------------------------------------------------------------------- (defun lancer_excel(/ sel) (setq xl (vlax-get-or-create-object "Excel.Application")) ;;; debut modification ;;(vlax-dump-object xl T) ;;;(vlax-put xl 'Calculation -4135) ; xlCalculationManual ;;; fin modification (setq wks (vlax-get xl 'Workbooks)) (vlax-for sel wks (progn (setq liste_fichiers_ouvert (append liste_fichiers_ouvert (list (strcase (vlax-get sel 'fullname))))) (vlax-put-property xl 'Calculation -4135) ; xlCalculationManual ;;; ) ) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 26 septembre 2019 Partager Posté(e) le 26 septembre 2019 Hello J ai eu PEUR : Gilles "coince" ! ... Impossible ... En fait le probl est surtout lié à Excel !! Bye, lecrabe "triste" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant