
03-12-23, 09:02
|
 | Διαχειριστής Όνομα: Χρήστος Ζώρζος Έκδοση λογισμικού Office: Ms-Office 2016 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 20-09-2013 Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 1.046
| |
Καλημέρα Σάκη, 1. Τα αθροίσματα των αποτελεσμάτων θα εμφανίζονται στη στήλη ΑΥ βάσει των πέντε καλύτερων ποσοστών γραμμής. 2. Ως δικλείδα ασφαλείας, το επιλεγμένο εύρος θα πρέπει να έχει όριο 250 γραμμών, 50 στηλών και πάντα ζυγό αριθμό στηλών. Φυσικά τα όρια αυτά αλλάζουν με τις ανάλογες τροποποιήσεις στον κώδικα. 3. Αφού επιλέξουμε το εύρος με τα δεδομένα μας (βλ. 2), πατάμε το κουμπί ΠΕΝΤΑΔΕΣ.
Σύμφωνα λοιπόν με τα παραπάνω, δοκίμασε τον παρακάτω κώδικα αν καλύπτει το ζητούμενό σου: Κώδικας: Option Explicit
Sub PENTADES()
Dim Rng As Range
Set Rng = Selection
If Rng.Rows.Count > 250 Or Rng.Columns.Count > 50 Or Rng.Columns.Count Mod 2 <> 0 Then
MsgBox "Λανθασμένο εύρος δεδομένων!", vbCritical, "ΣΦΑΛΜΑ"
Exit Sub
End If
Dim R As Integer, X As Integer, C As Byte, Y As Byte, R1 As Integer
[AY:AY,BA:BB].ClearContents
X = Rng.Row + Rng.Rows.Count - 1
Y = Rng.Column + Rng.Columns.Count - 1
Application.ScreenUpdating = False
For R = Rng.Row To X
R1 = R
For C = Rng.Column To Y Step 2
Range("BA" & R1 & ":BB" & R1).Value = Range(Cells(R, C), Cells(R, C + 1)).Value
R1 = R1 + 1
Next
[BA:BB].Sort Key1:=[BB1], Order1:=xlDescending, Header:=xlNo
Range("AY" & R).Value = Evaluate("SUM(BA1:BA5)")
[BA:BB].ClearContents
Next
Application.ScreenUpdating = True
End Sub
__________________ Your Curiosity Will Be The Death Of You! |