DrLo Δημοσ. 9 Ιουνίου 2012 Δημοσ. 9 Ιουνίου 2012 Θέλω να φτιάξω ένα ψιλο Monte-Carlo στο Excel Στα κελιά ας πούμε A1:A1000 έχω τον τύπου Rand(). στα B1:B1000 αντίστοιχα έχω "Available" ή "unavailable" αν ας πούμε η τιμή του rand είναι πάνω ή κάτω από ένα ποσοστό στα κελιά Z1:Z1000 υπολογίζεται ένα νούμερο για κάθε αντίστοιχο βήμα αυτά στο φύλλο υπολογισμού Έχω ένα άλλο φύλλο όπου στο Α1 πχ θα δίνω των αριθμό απανήψεων (πχ 10.000) στο Α2 θα διαβάζεται το ελάχιστο από τα Ζ1:Ζ1000 του φύλλου υπολογισμού και από την VBA που θα τρέχει τις επαναλήψεις το κελί C1 θα αυξάνει κατά ένα αν το Α2 είναι αρνητικό (δηλαδή με ενδιαφέρει σε πόσες από τις επαναλήψεις το minimum στα Z1:Z1000 του φύλλου υπολογισμού είναι αρνητικό). Ποιό είναι το πρόβλημά μου Από την VBA με τις 1-2 εντολές που ξέρω (ότι θυμάμαι από BASIC δηλαδή) μπορώ να αλλάζω την τιμή του B1 με For next για τις 10.000 επαναλήψεις οπότε τα 1.000 rand() θα αλλάζουν κάθε φορά , όλα καλά μέχρι εδώ. το θέμα είναι ότι όταν υπολογίζεται το minimum στο Α2 ή όποτε πάω να γράψω σε ένα κελί μεσω VBA τα κελία με τα rand() αλλάζουν. Αυτό που θέλω είναι κάτι σαν το παρακάτω for i=1 το 10000 cells (1,7) =i 'Κάτι σαν counter και για να αλλάζουν τα rand() σε κάθε επανάληψη εδώ κάτι που να παγώνει την αλλαγή των rand() εδώ να κάνω ότι γουστάρω, να γράφω, αλλάζω κελιά κλπ μέσα από τη VBA εδώ κάτι που να ξε-παγώνει την αλλαγή των rand() next i δε ξέρω αν το εξήγησα καλά ... μπορώ να ανεβάσω και κανα excelaκι για να καταλάβετε τι εννωω.
alexzzz Δημοσ. 11 Ιουνίου 2012 Δημοσ. 11 Ιουνίου 2012 Μεταφέρω το topic στο section του προγραμματισμού μπας και έχει καλύτερη τύχη από το software section
pagodas Δημοσ. 11 Ιουνίου 2012 Δημοσ. 11 Ιουνίου 2012 Αυτό που πρέπει να κάνεις είναι να βάλεις τον υπολογισμό στο αυτόματο. Κάθε φορά που ένα κελί αλλάζει σε ένα φύλλο Excel το οποίο έχει formulas το Excel χτίζει τα dependencies από την αρχή και υπολογίζει τα κελιά (συμπεριλαμβανομένων και αυτών που έχουν τα rand()). Εσύ πρέπει να πάς στα Excel Options και να βάλεις Calculation=Manual. Μπορείς να το κάνεις και με την VBΑ ως εξής: application.Calculation=xlCalculationManual μετά να υπολογίζεις το φύλλο επίσης χειροκίνητα με: Activesheet.calculate και μετά να πέρνεις τις τιμές που θέλεις. Προσοχή όμως, όταν τελειώσεις με τα Monte Carlo να βάλεις πάλι τον υπολογισμό στο αυτόματο ώστε όταν θα ξανα-χρησιμοποιήσεις Excel να μην είναι στο χειροκίνητο.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα