• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
July 01, 2025, 01:17:12 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
July 01, 2025, 01:17:12 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Η άχρηστη πληροφορία της ...
by Giopan
[June 30, 2025, 22:54:29 pm]

Πότε θα βγει το μάθημα; -...
by chatzikys
[June 30, 2025, 20:28:04 pm]

[Τεχνολογία Ηλεκτροτεχνικ...
by Nikos_313
[June 30, 2025, 19:21:42 pm]

Αποτελέσματα Εξεταστικής ...
by Mr Watson
[June 30, 2025, 14:21:07 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[June 30, 2025, 11:27:40 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 30, 2025, 02:08:34 am]

[Ηλεκτρικά Κυκλώματα Ι] Γ...
by nmpampal
[June 30, 2025, 02:07:32 am]

Ποιητής του Μήνα - Παράσι...
by Katarameno
[June 29, 2025, 19:07:49 pm]

[Η/Μ Πεδίο ΙΙ] Ανάλυση πα...
by Juror8
[June 29, 2025, 13:27:54 pm]

Μέλος του μήνα - Ιούνιος ...
by DarkMagiK06
[June 29, 2025, 11:33:16 am]

[Ηλεκτρολογικά Υλικά] Απο...
by nmpampal
[June 28, 2025, 17:39:03 pm]

Τα παράσιτα ανάμεσά μας
by Nikos_313
[June 28, 2025, 14:19:42 pm]

[Αξιοπιστία Συστημάτων] Ν...
by Agios Gewrgios Printezis
[June 28, 2025, 11:30:11 am]

[Αρχές Οικονομίας] Να επι...
by george14
[June 27, 2025, 17:39:27 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 27, 2025, 17:31:52 pm]

Σύνθεση νέων Πρυτανικών Α...
by Katarameno
[June 27, 2025, 16:07:02 pm]

Νέα Δημοκρατία (and Co. I...
by Katarameno
[June 27, 2025, 15:40:14 pm]

Ποιος πιστεύετε ότι θα εί...
by Nikos_313
[June 27, 2025, 14:01:27 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 27, 2025, 13:37:27 pm]

Πρόγραμμα Εξεταστικής Σεπ...
by Nikos_313
[June 27, 2025, 13:34:24 pm]
Στατιστικά
Members
Total Members: 9968
Latest: to_parasito
Stats
Total Posts: 1427142
Total Topics: 31723
Online Today: 148
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 40
Guests: 79
Total: 119
Maria balogianni
Leou
xorxe
Local Rider
Nikos_313
Mr Watson
petrinap
zille
Kenedy
miltan8
mayia psarikoglou
georgepana9
vajulin
ValKar
zachard
Napoleontas
sassi
GeorgeChri
Giopan
mark
tartoufos
simosilias
folas
aalmpanb
Manos_5
xarisvougiou
Aglosdoum
johnk
kapas
thanosk
bougatsa
thomasdt
Smaragda
akoil
Don
stloukas
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για αλλαγή του public name σας, επικοινωνήστε με έναν από τους Admins.
THMMY.gr > Forum > Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα > Περί Υπολογιστών... > Software > Windows 7, Vista , XP, 9x, 2000, Office (Moderators: chatzikys, PolarBear) > Απορία για vba σε Microsoft Excel
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 Go Down Print
Author Topic: Απορία για vba σε Microsoft Excel  (Read 2220 times)
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Απορία για vba σε Microsoft Excel
« on: March 18, 2016, 12:04:28 pm »

Έχω γράψει έναν κώδικα vba σε αρχείο Microsoft Excel και ενώ όταν πατάω το [play] δεν μου βγάζει ότι έχω κάποιο πρόβλημα στον κώδικα (δηλαδή ότι έγραψα κάτι λάθος), φορτώνει, φορτώνει και τελικά "κολλάει" και δεν συμπληρώνει ποτέ τα φύλλα εργασίας όπως θα έπρεπε... Sad

Γνωρίζει κανείς γιατί συμβαίνει αυτό; Δηλαδή γιατί αργεί να τρέξει τον κώδικα vba με αποτέλεσμα τελικά ποτέ να μην τον τρέχει και απλά να δείχνει ότι φορτώνει ώσπου κολλάει;

Έψαξα μήπως έχω βάλει κάποια ατέρμονα επανάληψη, που δεν τελειώνει ποτέ, αλλά δεν βρήκα κάποιο λάθος.

Ευχαριστώ εκ των προτέρων!
Logged

Obarack Sand
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 503


View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #1 on: March 18, 2016, 20:12:07 pm »

Ένα μικρό πραγματάκι που έχω κάνει εγώ συνήθως κάνει 5-10" να τρέξει, οπότε αν έχεις κάνει κάτι βαρύ ίσως να φταίει απλά αυτό. Επίσης νομίζω έχει διαφορές από 2003 σε 2007 και πιθανότατα στα πιο καινούρια Office, οπότε έχε το νου σου σε τυχόν λεπτομέρειες που μπορεί να προκαλούν λάθη, π.χ. ελαφρώς διαφορετική σύνταξη στην έκδοση που χρησιμοποιείς απ' αυτή που έβαλες.
Παίζει επίσης να δώσεις κάνα τμήμα του κώδικα μπας και βοηθήσει περισσότερο να δούμε τι παίζει;
Logged

https://gifs.com/gif/yx1MpB
Katarameno
Διεστραμμένος
**********
Posts: 23624


Music@ ♫♪♯ https://mixupload.com/u/Katarameno/ ♫♪♯


View Profile WWW
Re: Απορία για vba σε Microsoft Excel
« Reply #2 on: March 18, 2016, 23:36:41 pm »

Visual Basic for Applications? Δεν είναι εδώ και χρόνια discontinued?  Εδώ σταμάτησαν την υποστήριξη της Visual Basic 6, την VBA  θα συνεχίσουν να υποστηρίζουν? Σε κάθε περίπτωση αν δε μπορούμε να δούμε τον κώδικα, δε μπορούμε και να καταλάβουμε τι κάνεις για να βρούμε και που κάνεις το λαθάκι...
Logged

©2008-2025, Καταραμένο Αροξόλ™ | Μουσικούλα για να (μην) διαβάζετε (καλύτερα) ♫♪♯ https://mixupload.com/u/Katarameno/creative ♫♪♯ & https://www.patreon.com/Katarameno ♫♪♯ ή από καλύτερους dj: https://www.bassdrive.com/ / https://mixing.dj/ / https://lifefm.tv/ / https://nubreaks.com/stream-links/nubreaks-podcast/ ♫♪♯
ΝΔ: Στα Εξάρχεια (στους πρόσφυγες, στους φοιτητές, στους φτωχούς) μαγκιές, στο Μαρινάκη πίπες
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #3 on: March 21, 2016, 11:42:45 am »

Sub Button17()

Dim number0 As Integer, number1 As Integer, numberhourly As Integer
number0 = 2
number1 = 5
numberhourly = 2





Do Until (number1 > 43)

If ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 42).Value = "One Block up to Pmax with a MAR" Then


Dim i As Integer, help As Integer
help = 0
i = 2

Do While (help = 0)
If ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value Then
help = i
End If
i = i + 24
Loop



Dim min As Integer
min = ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 4).Value

For i = help + 1 To help + 23
If ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4) < min Then
min = ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4)
End If
Next


Dim MAR As Integer
MAR = ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 3).Value / min


ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = "Block Order"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = "Supply or Demand"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = "Block Order Number"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 4).Value = "Node"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 5).Value = "Area"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = "Linked"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = "Linked BO"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = "Exclusive Group"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = "Profile or Regular"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = "Minimum Acceptance Ratio"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = "Submitted price [€/MWh]"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = "Submitted quantity [€/MW]"

Dim j As Integer
j = 1
For i = 13 To 36
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, i).Value = "T" & j
j = j + 1
Next


number0 = number0 + 1

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value 'ÂÜæïõìå ôï üíïìá ôçò ìïíÜäáò2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = 2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = MAR

Dim submittedprice As Integer, submittedquantity As Integer, pricehelp As Integer

sumbmittedprice = 0
pricehelp = 0

For i = 6 To 15
submittedprice = submittedprice + ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i).Value * ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i + 1).Value
pricehelp = pricehelp + ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i).Value
Next


submittedprice = submittedprice / pricehelp
submittedquantity = min

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = submittedprice
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = submittedquantity

For i = 13 To 36
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, i).Value = 1
Next


ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 1).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 2).Value = "Hour"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 14).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 15).Value = "Hour"

j = 1
For i = 3 To 12
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i).Value = "sb" & j
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i + 12).Value = "sb" & j
j = j = 1
Next

For i = numberhourly + 1 To numberhourly + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 1).Value = "S" & number1 - 4 'Ãéá ôçí ðñþôç ìïíÜäá ãéá ðáñÜäåéãìá åßíáé S1 êïê!
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 2).Value = "T" & j
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 14).Value = "S" & number1 - 4
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 15).Value = "T" & j
j = j + 1
Next

Dim numberhelp As Integer
numberhelp = numberhourly + 1


For i = help To i = help + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp, 16).Value = ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4).Value - min 'Ç ðïóüôçôá
numberhelp = numberhelp + 1
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp, 3).Value = submittedprice + 0.001 'Ç ôéìÞ!
numberhelp = numberhelp + 1
Next



End If

number1 = number1 + 1
number0 = number0 + 2
numberhourly = numberhourly + 26

Loop

Αυτό είναι ένα μέρος το κώδικα. Ενώ δηλαδή δεν μου "εμφανίζει" κάποια λάθη στον κώδικα, όποτε πάω να τον τρέξω, κολλάει και δεν τον τρέχει ποτέ

Any help?

(χρησιμοποίησα excel 2007 αλλά οι εντολές είναι excel 2010, έψαξα για διαφορές μεταξύ 2007 και 2010 αλλά δεν ήταν κάτι το ιδιαίτερο, απ' αυτά που βρήκα τουλάχιστον)

Ευχαριστώ εκ των προτέρων



Logged

pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #4 on: March 21, 2016, 13:32:37 pm »

Μου εμφανίζει το παρακάτω πρόβλημα Sad
Logged

Αιμιλία η φτερωτή χελώνα
Διεστραμμένος
**********
Gender: Female
Posts: 15580


Έξω η μπουχεσαρία απ'το ΤΗΜΜΥ


View Profile WWW
Re: Απορία για vba σε Microsoft Excel
« Reply #5 on: March 21, 2016, 13:43:19 pm »

Quote from: pocitician on March 21, 2016, 11:42:45 am
j = 1
For i = 3 To 12
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i).Value = "sb" & j
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i + 12).Value = "sb" & j
j = j = 1
Next
ayto mhpws? Shocked

υγ: για την απορια του Katarameno, απ οσο ξερω σε τωρινα μεταπτυχιακα πολιτικων μηχανικων κανουν VBA. Οποτε, οχι.
Logged

"Όσοι περιμένουν να βρουν πατημένα χνάρια θα απογοητευτούν γρήγορα. Όσοι δεν είναι έτοιμοι να πέσουν και να ξανασηκωθούν, να χάσουν τον δρόμο τους και να τον ξαναβρούν, να αγγίξουν όχι μια και δύο αλλά δέκα και εκατό φορές τον πάτο της έσχατης αμφιβολίας για τα σχέδια τους, για τις ιδέες τους, για τους συντρόφους τους, και για τους ίδιους τους εαυτούς τους, να αναμετρηθούν με τα χίλια δυο πρόσωπα της απόγνωσης και να ξανανέβουν στον αφρό, είναι καλύτερα να περιμένουν την κοινωνική αλλαγή απ' τον Αι Βασίλη ή, πράγμα που δεν διαφέρει πολύ, από κάποια αψεγάδιαστη δικαιωμένη "πρωτοπορία" .Εμείς δεν έχουμε να προσφέρουμε παρά την άχαρη γοητεία της καινούριας προσπάθειας, την ιστορική βεβαιότητα για τον σκοπό, την πάλη για τον ποιοτικό εμπλουτισμό του μαζί με την αδιάκοπη κριτική για τα μέσα, την στράτευση σε μια υπόθεση που χρειάζεται μαχητές αλλά θέλει να καταργήσει τους στρατιώτες"

https://www.facebook.com/arage.eaak  Knuppel
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #6 on: March 21, 2016, 13:46:22 pm »

Oh yes, αλλά και πάλι το overflow θέμα δεν λύθηκε Sad
Logged

pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #7 on: March 22, 2016, 19:53:11 pm »

Αυτός είναι ο πλήρης κώδικας. Στην ουσία "διαβάζει" δεδομένα από δυο φύλλα εργασίας (ThermalUnitsData και AllThermalOffers) και "γράφει" στα ThermalBlockOffers και ThermalHourlyOffers φύλλα εργασίας. Αλλά όποτε το τρέχω "κολλάει"...

Υ.Γ.: Τα αλαμπουρνέζικα που εμφανίζονται είναι σχόλια για την κάθε εντολή

Sub Offers()

Dim number0 As Integer, number1 As Integer, numberhourly As Integer
number0 = 2
number1 = 5
numberhourly = 2





Do While (number1 >= 5 & number1 <= 43)

If ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 42).Value = "One Block up to Pmax with a MAR" Then


Dim i As Integer, help As Integer
help = 0
i = 2

Do While (help = 0)
If ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value Then
help = i
End If
i = i + 24
Loop

Dim min As Integer
min = ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 4).Value

For i = help + 1 To help + 23
If ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4) < min Then
min = ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4)
End If
Next

Dim MAR As Integer
MAR = ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 3).Value / min



ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = "Block Order"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = "Supply or Demand"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = "Block Order Number"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 4).Value = "Node"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 5).Value = "Area"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = "Linked"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = "Linked BO"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = "Exclusive Group"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = "Profile or Regular"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = "Minimum Acceptance Ratio"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = "Submitted price [€/MWh]"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = "Submitted quantity [€/MW]"

Dim j As Integer
j = 1
For i = 13 To 36
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, i).Value = "T" & j
j = j + 1
Next

number0 = number0 + 1

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value 'ÂÜæïõìå ôï üíïìá ôçò ìïíÜäáò2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = 2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = MAR

Dim submittedprice As Integer, submittedquantity As Integer, pricehelp As Integer

sumbmittedprice = 0
pricehelp = 0

For i = 6 To 15
submittedprice = submittedprice + ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i).Value * ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i + 1).Value
pricehelp = pricehelp + ThisWorkbook.Sheets("AllThermalOffers").Cells(help, i).Value
Next

submittedprice = submittedprice / pricehelp
submittedquantity = min

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = submittedprice
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = submittedquantity

For i = 13 To 36
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, i).Value = 1
Next

ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 1).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 2).Value = "Hour"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 14).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 15).Value = "Hour"

j = 1
For i = 3 To 12
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i).Value = "sb" & j
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i + 12).Value = "sb" & j
j = j + 1
Next

For i = numberhourly + 1 To numberhourly + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 1).Value = "S" & number1 - 4
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 2).Value = "T" & j
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 14).Value = "S" & number1 - 4
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i, 15).Value = "T" & j
j = j + 1
Next

Dim numberhelp As Integer
numberhelp = numberhourly + 1

For i = help To i = help + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp, 16).Value = ThisWorkbook.Sheets("AllThermalOffers").Cells(i, 4).Value - min 'Ç ðïóüôçôá
numberhelp = numberhelp + 1
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp, 3).Value = submittedprice + 0.001
numberhelp = numberhelp + 1
Next



number1 = number1 + 1
number0 = number0 + 2
numberhourly = numberhourly + 26

End If





If ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 42).Value = "One block at MSG and linked blocks up to Pmax" Then


Dim i1 As Integer
Dim help1 As Integer
help1 = 0
i1 = 2

Do While (help1 = 0)
If ThisWorkbook.Sheets("AllThermalOffers").Cells(i1, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value Then
help1 = i1
End If
i1 = i1 + 24
Loop


ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = "Block Order"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = "Supply or Demand"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = "Block Order Number"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 4).Value = "Node"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 5).Value = "Area"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = "Linked"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = "Linked BO"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = "Exclusive Group"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = "Profile or Regular"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = "Minimum Acceptance Ratio"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = "Submitted price [€/MWh]"
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = "Submitted quantity [€/MW]"

number0 = number0 + 1

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 1).Value = ThisWorkbook.Sheets("ThermalUnitsData").Cells(number1, 3).Value 'ÂÜæïõìå ôï üíïìá ôçò ìïíÜäáò2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 2).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 3).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 6).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 7).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 8).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 9).Value = 2
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 10).Value = 1

Dim submittedprice1 As Integer, submittedquantity1 As Integer

submittedprice1 = (((ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 6).Value * ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 7).Value) + ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 9).Value * (ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 3).Value - ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 8).Value)) / ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 3).Value)


submittedquantity1 = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 3).Value

ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 11).Value = submittedprice1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0, 12).Value = submittedquantity1


Dim MSG As Integer, sum As Integer, j1 As Integer

MSG = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 3).Value
sum = 0
i1 = 2
j1 = 7

Do While (sum < ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 4).Value)
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 1).Value = "BO" & i1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 2).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 3).Value = i
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 6).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 7).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 8).Value = 0
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 9).Value = 1
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 10).Value = 1 'Ôï MAR åßíáé 1!
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 11).Value = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1).Value 'Ôçí ðñþôç ãéá ðáñÜäåéãìá èá åßíáé ç ôéìÞ P1 êïê!
ThisWorkbook.Sheets("ThermalBlockOffers").Cells(number0 + 1, 12).Value = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1 - 1).Value - ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1 + 1).Value 'Ç ðïóüôçôá åßíáé ç äéáöïñÜ ôùí MW1-MW2 ãéá ðáñÜäåéãìá!
sum = sum + MSG + (ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1 - 1).Value - ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1 + 1).Value)
i1 = i1 + 1
j1 = j1 + 1
Loop

Dim hourlyquantity1 As Integer
hourlyquantity1 = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, 4).Value - sum 'Pmax - sum

If hourlyquantity1 > 0 Then

ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 1).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 2).Value = "Hour"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 14).Value = "Offer"
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, 15).Value = "Hour"

j1 = 1
For i1 = 3 To 12
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i1).Value = "sb" & j1
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhourly, i1 + 12).Value = "sb" & j1
j = j  + 1
Next

For i1 = numberhourly + 1 To numberhourly + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i1, 1).Value = "S" & number1 - 4
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i1, 2).Value = "T" & j1
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i1, 14).Value = "S" & number1 - 4
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(i1, 15).Value = "T" & j1
j1 = j1 + 1
Next

Dim numberhelp1 As Integer
numberhelp1 = numberhourly + 1

For i1 = help1 To i1 = help1 + 23
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp1, 16).Value = hourlyquantity
numberhelp1 = numberhelp1 + 1
ThisWorkbook.Sheets("ThermalHourlyOffers").Cells(numberhelp1, 3).Value = ThisWorkbook.Sheets("AllThermalOffers").Cells(help1, j1).Value
numberhelp1 = numberhelp1 + 1
Next

End If


number1 = number1 + 1
number0 = number0 + 2
numberhourly = numberhourly + 26

End If

Loop

End Sub



Sorry για το πολύ info και το πρήξιμο, και ευχαριστώ εκ των προτέρων...  Sad Sad Sad


Logged

Obarack Sand
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 503


View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #8 on: March 23, 2016, 02:04:00 am »

Είσαι σίγουρος πως δεν είναι πιο εύκολο/βολικό/απλό να χειριστείς τα δεδομένα αυτά με κάποιο άλλο πρόγραμμα εκτός excel;
R ή/και Matlab νομίζω θα βόλευαν.
Logged

https://gifs.com/gif/yx1MpB
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #9 on: March 23, 2016, 13:20:09 pm »

Η "απαίτηση" ήταν να γίνουν σε vba excel...  Undecided
Logged

Obarack Sand
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 503


View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #10 on: March 23, 2016, 14:22:33 pm »

Δε βοηθάει ιδιαίτερα, αλλά έπρεπε:

Quote from: pocitician on March 23, 2016, 13:20:09 pm
Η "απαίτηση" ήταν να γίνουν σε vba excel...  Undecided

Logged

https://gifs.com/gif/yx1MpB
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #11 on: March 23, 2016, 15:46:54 pm »

That helped me a lot!  Grin Grin Grin Grin
Logged

Katarameno
Διεστραμμένος
**********
Posts: 23624


Music@ ♫♪♯ https://mixupload.com/u/Katarameno/ ♫♪♯


View Profile WWW
Re: Απορία για vba σε Microsoft Excel
« Reply #12 on: April 01, 2016, 02:09:17 am »

Δεν μπορείς να το τρέξεις γραμμή γραμμή με breakpoint? Run until ή step over κτλ ή άλλο τρόπο για να δεις που ακριβώς σου χτυπάει?

Η VBA φυσικά και υπάρχει ακόμα Αιμιλία, άλλο όμως υπάρχει και άλλο υποστηρίζεται επίσημα από την Microsoft.

Visual Basic for Applications (VBA) is an implementation of Microsoft's discontinued event-driven programming language, Visual Basic 6, and its associated integrated development environment (IDE).

As of July 1, 2007, Microsoft no longer offers VBA distribution licenses to new customers. Microsoft intended to add .NET-based languages to the current version of VBA ever since the release of the .NET Framework,[2] of which versions 1.0 and 1.1 included a scripting runtime technology named Script for the .NET Framework.[3] Visual Studio .NET 2002 and 2003 SDK contained a separate scripting IDE called Visual Studio for Applications (VSA) that supported VB.NET.[4][5][6]

https://en.wikipedia.org/wiki/Visual_Basic_for_Applications
« Last Edit: April 01, 2016, 02:12:45 am by Katarameno » Logged

©2008-2025, Καταραμένο Αροξόλ™ | Μουσικούλα για να (μην) διαβάζετε (καλύτερα) ♫♪♯ https://mixupload.com/u/Katarameno/creative ♫♪♯ & https://www.patreon.com/Katarameno ♫♪♯ ή από καλύτερους dj: https://www.bassdrive.com/ / https://mixing.dj/ / https://lifefm.tv/ / https://nubreaks.com/stream-links/nubreaks-podcast/ ♫♪♯
ΝΔ: Στα Εξάρχεια (στους πρόσφυγες, στους φοιτητές, στους φτωχούς) μαγκιές, στο Μαρινάκη πίπες
Katarameno
Διεστραμμένος
**********
Posts: 23624


Music@ ♫♪♯ https://mixupload.com/u/Katarameno/ ♫♪♯


View Profile WWW
Re: Απορία για vba σε Microsoft Excel
« Reply #13 on: April 01, 2016, 12:49:36 pm »

Γενικά VB/VBA δεν ξέρω και δε μου άρεζε και ποτέ (ειδικά το μπάχαλο με τα είδη μεταβλητών) αλλά αυτό μου φαίνεται κάπως :

Dim MAR As Integer
MAR = ThisWorkbook.Sheets("AllThermalOffers").Cells(help, 3).Value / min

Εδώ κάνεις διαίρεση δηλαδή? Και πως το ορίζεις ως integer το αποτέλεσμα?

Το ίδιο και εδώ :
Dim submittedprice As Integer, submittedquantity As Integer, pricehelp As Integer

sumbmittedprice = 0
pricehelp = 0
.....
submittedprice = submittedprice / pricehelp
« Last Edit: April 01, 2016, 12:53:42 pm by Katarameno » Logged

©2008-2025, Καταραμένο Αροξόλ™ | Μουσικούλα για να (μην) διαβάζετε (καλύτερα) ♫♪♯ https://mixupload.com/u/Katarameno/creative ♫♪♯ & https://www.patreon.com/Katarameno ♫♪♯ ή από καλύτερους dj: https://www.bassdrive.com/ / https://mixing.dj/ / https://lifefm.tv/ / https://nubreaks.com/stream-links/nubreaks-podcast/ ♫♪♯
ΝΔ: Στα Εξάρχεια (στους πρόσφυγες, στους φοιτητές, στους φτωχούς) μαγκιές, στο Μαρινάκη πίπες
pocitician
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130



View Profile
Re: Απορία για vba σε Microsoft Excel
« Reply #14 on: April 01, 2016, 12:56:35 pm »

Το είχα βρει το πρόβλημα τελικά. Thanks bro! Μου εμφάνιζε πρόβλημα με την εξωτερική While-Until και τελικά την αντικατέστησα με μια if και λύθηκε το πρόβλημα!  Smiley
Logged

Pages: [1] 2 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...