Χαίρομαι που το αρχείο θα σου φανεί χρήσιμο στη δουλειά σου! :)
Ο σχεδιασμός του πίνακα, όχι η μορφοποίηση των κελιών, βασίζεται πάνω σε προγραμματισμό χρησιμοποιώντας τη γλώσσα
VBA (Visual Basic for Applications). Αν θέλεις να ασχοληθείς με
VBA θα πρέπει να έχεις και κάποιες βασικές γνώσεις προγραμματισμού (σύνταξη εντολών, χρήση μεταβλητών κ.τ.λ).
Μια καλή αρχή πάντως για να δεις πώς λειτουργεί η όλη λογική των μακροεντολών με
VBA είναι η "μαγνητοσκόπηση" κάποιων συγκεκριμένων καθημερινών κινήσεων με το κουμπί τέρμα κάτω αριστερά στο παράθυρο του Excel με το κόκκινο κυκλάκι.
Ο κώδικας που ευθύνεται για τη συμπλήρωση του ισοζυγίου είναι ο παρακάτω:
Κώδικας:
Option Explicit
Sub Isozygio_Pelatwn()
Dim I As Long, R As Long
Dim Isoz As Worksheet, Sht As Worksheet
If MsgBox("Θα γίνει ενημέρωση από τα αντίστοιχα φύλλα πελατών." & vbCrLf & _
"Θέλετε να συνεχίσετε;", vbQuestion + vbYesNo, "ΕΝΗΜΕΡΩΣΗ ΥΠΟΛΟΙΠΩΝ") = vbNo Then Exit Sub
Set Isoz = Worksheets("ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ")
Isoz.Range("A2:D" & Rows.Count).ClearContents
For Each Sht In ThisWorkbook.Worksheets
With Isoz
If Sht.Name <> .Name Then
R = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Hyperlinks.Add Anchor:=.Range("A" & R), Address:="", SubAddress:= _
Sht.Name & "!D7", TextToDisplay:=Sht.Name
'.Range("A" & R).Value = Sht.Range("D7").Value
.Range("B" & R).Value = Application.WorksheetFunction.Sum(Sht.Range("E:E"))
.Range("C" & R).Value = Application.WorksheetFunction.Sum(Sht.Range("F:F"))
.Range("D" & R).Value = Sht.Range("G4").Value
End If
End With
Next
End Sub
Για να βρεις τον παραπάνω κώδικα, πάτα Alt+F11. Μια γρήγορη επεξήγησή του είναι η παρακάτω:
- Αφού σε ρωτήσει αν θέλεις να συνεχίσεις και απαντήσεις καταφατικά, τότε ελέγχει ένα-ένα το όνομα κάθε φύλλου ξεχωριστά. Αν είναι διαφορετικό από το "ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ", τότε θεωρεί ότι είναι καρτέλα πελάτη (γι' αυτό θέλει προσοχή όλα τα νέα φύλλα-καρτέλες που θα ανοίγεις να έχουν την ίδια ακριβώς γραμμογράφηση με τα υπόλοιπα).
- Από την κάθε καρτέλα πελάτη λοιπόν, παίρνει το όνομα που βρίσκεται στο κελί D7 και το αντιγράφει στο πρώτο κενό κελί του ισοζυγίου στη στήλη A. Η ίδια ακριβώς λογική ακολουθείται για τη χρέωση, πίστωση και υπόλοιπο (στήλες B, C, D αντίστοιχα), όπου στη χρέωση και πίστωση μεταφέρει τα αντίστοιχα αθροίσματα από τις στήλες E και F των καρτελών, ενώ στο υπόλοιπο μεταφέρει το ποσό που βρίσκει στο κελί G4.
Ελπίζω να μην σε μπέρδεψα...