I only have backward dependencies so I tried the first code block. I put it in ..emacs and tried, but I got a message starting as the message below. I could not paste it into the email for some reason... The tables work as expected when I do it manually. Any idea what could be wrong? Error meassage: org-recalculate-all-tables: Wrong number of arguments: #[(function) "ŠŒ~ˆebˆÄÅÆ#ƒ: Best regards, Johan On Fri, Apr 30, 2010 at 5:03 PM, Carsten Dominik wrote: > > On Apr 30, 2010, at 4:07 PM, Johan Ekh wrote: > > Hi all, >> I have a series of tables in a single file. Each table have some fields >> that depends on fields >> in the previous table. Thus, if I change something in the first table, I >> must go down manually >> and recalculate (or iterate) each table. Is there a way to recalculate all >> tables in a file simultaneously? >> > > > Hi Johan, > > This should work if the dependence is only backwards. > > (defun org-recalculate-all-tables () > (interactive) > (org-table-map-tables (lambda () (org-table-recalculate t)) t)) > > If you have dependencies in both directions, this might work (untested): > > (defun org-iterate-all-tables () > (interactive) > (let* ((imax 10) > (checksum (md5 (buffer-string))) > c1 > (i imax)) > (catch 'exit > (while (> i 0) > (setq i (1- i)) > (org-table-map-tables (lambda () (org-table-recalculate t)) t) > (if (equal checksum (setq c1 (md5 (buffer-string)))) > (progn > (message "Convergence after %d iterations" (- imax i)) > (throw 'exit t)) > (setq checksum c1))) > (error "No convergence after %d iterations" imax)))) > > If it does, this could be added to org-hacks on Worg. > > HTH > > - Carsten > >