| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Χρονια Πολλα με υγεια και ευτυχια για ολους μας Θα ηθελα την βοηθεια σας στο συννημενο υποδειγμα το οποιο πηρα από τα ετοιμα αντιστοιχα που υπαρχουν στο excel. Προσπαθησα να δημιουργησω έναν συγκεντρωτικο πινακα σε νέο φυλλο οπου θα φαινονται τα στοιχεια (πελατης-τρεχον υπολοιπο) από πολλα φυλλα (στον συννημενο εχω τρια φυλλα αλλα θα προσθεσω κι αλλα), ώστε ανα πασα στιγμη να βλεπω σε ένα φυλλο τον πελατη και το τρεχον υπολοιπο καθως και το γενικο συνολο υπολοιπων ολων των πελατων. Οσες φορες και αν προσπαθησα μου βγαζει μηνυμα ότι χρειαζονται δεδομενα τουλαχιστον από δυο γραμμες , όταν δε ορισα περισσοτερες μου εβγαζε τους αυξοντες αριθμους. Μηπως θα πρεπει να δημιουργησω καποια λιστα μονη μου και όχι ετοιμα προσχεδια; |
|
#2
| ||||
| ||||
|
Καλησπέρα Βούλα, Καλή χρονιά και πάντα με υγεία! Έφτιαξα το νέο φύλλο ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ με τρεις στήλες για τον κάθε πελάτη: ΧΡΕΩΣΗ: το σύνολο της χρέωσης κάθε φύλλου πελάτη (Χρέωση Περιόδου) ΠΙΣΤΩΣΗ: το σύνολο της πίστωσης κάθε φύλλου πελάτη, (Πίστωση Περιόδου) ΥΠΟΛΟΙΠΟ: το σύνολο υπολοίπου πελάτη, όπως απεικονίζεται στο κελί G4 του αντίστοιχου φύλλου. Πατώντας το κουμπί ΕΝΗΜΕΡΩΣΗ ΙΣΟΖΥΓΙΟΥ, καθαρίζονται όλες οι γραμμές του νέου φύλλου και ενημερώνονται με τα νέα δεδομένα που θα υπάρχουν στα αντίστοιχα φύλλα πελατών. Στο νέο φύλλο, το όνομα κάθε πελάτη αποτελεί και σύνδεσμο στο αντίστοιχο φύλλο του ώστε να σε διευκολύνει στον έλεγχο των συνόλων. Δηλαδή πατώντας πάνω στο όνομα, μεταφέρεσαι στο κελί D7 του συγκεκριμένου φύλλου. Στο φύλλο ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ η στήλη Α ενημερώνεται από το κελί D7 του κάθε φύλλου πελάτη, γιατί θεωρώ ότι εκεί θα υπάρχει πάντα το όνομά του. Αν πρέπει όμως να γράφεις κι άλλα πράγματα, όπως π.χ. αιτιολογία κίνησης, αριθμό τιμολογίου κ.τ.λ., τότε θα πρέπει να υπάρχει ένα κελί (ίσως αριστερά από το τρέχον υπόλοιπο) όπου θα παραμένει σταθερό η επωνυμία του πελάτη. Το φύλλο περιέχει μακροεντολές, οπότε θα πρέπει να τις έχεις ενεργοποιημένες ώστε να λειτουργεί το κουμπί. Ότι απορίες/βελτιώσεις έχεις, εδώ είμαστε! :)
__________________ Your Curiosity Will Be The Death Of You! |
|
#3
| |||
| |||
|
Ευχαριστω για την αμεση ανταποκριση. Θα το μελετησω και θα επανελθω. Οτι και να πω ειναι λιγο. Καθε φορα που απογοητευομαι επειτα απο προσπαθεια ημερων η βοηθεια σας ειναι λυτρωτικη. Εισθε ολοι υπεροχοι. Και παλι ευχαριστω
|
|
#4
| |||
| |||
|
Καλημερα σε ολη την ομαδα Και παλι Ευχαριστω για την βοηθεια η καλλιτερα .. λυση που μου εδωσες. Ακριβως οτι χρειαζομουν. Εισαι καταπληκτικος. Αν δεν σε κουραζω, και για να μαθαινω, μια και ειμαι εντελως αρχαρια, θα ηθελες να μου πεις πως εφτιαξες τον πινακα, η να με προσανατολισεις καπως ωστε να αρχισω να κανω καποια δειλα εστω βηματα και να δημιουργω μονη μου; Δεν ειναι σωστο καθε φορα να μου δινετε ετοιμη τροφη. Σε ευχαριστω και παλι |
|
#5
| ||||
| ||||
|
Χαίρομαι που το αρχείο θα σου φανεί χρήσιμο στη δουλειά σου! :) Ο σχεδιασμός του πίνακα, όχι η μορφοποίηση των κελιών, βασίζεται πάνω σε προγραμματισμό χρησιμοποιώντας τη γλώσσα 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
- Αφού σε ρωτήσει αν θέλεις να συνεχίσεις και απαντήσεις καταφατικά, τότε ελέγχει ένα-ένα το όνομα κάθε φύλλου ξεχωριστά. Αν είναι διαφορετικό από το "ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ", τότε θεωρεί ότι είναι καρτέλα πελάτη (γι' αυτό θέλει προσοχή όλα τα νέα φύλλα-καρτέλες που θα ανοίγεις να έχουν την ίδια ακριβώς γραμμογράφηση με τα υπόλοιπα). - Από την κάθε καρτέλα πελάτη λοιπόν, παίρνει το όνομα που βρίσκεται στο κελί D7 και το αντιγράφει στο πρώτο κενό κελί του ισοζυγίου στη στήλη A. Η ίδια ακριβώς λογική ακολουθείται για τη χρέωση, πίστωση και υπόλοιπο (στήλες B, C, D αντίστοιχα), όπου στη χρέωση και πίστωση μεταφέρει τα αντίστοιχα αθροίσματα από τις στήλες E και F των καρτελών, ενώ στο υπόλοιπο μεταφέρει το ποσό που βρίσκει στο κελί G4. Ελπίζω να μην σε μπέρδεψα...
__________________ Your Curiosity Will Be The Death Of You! Τελευταία επεξεργασία από το χρήστη ChrisGT7 : 05-01-17 στις 15:42. |
|
#6
|
|
Καλησπέρα. Αγαπητέ Χρήστο. Χωρίς να θέλω να μειώσω την προσπάθειά σου, θα ήθελα να σου πω ότι ο κώδικας, δεν είναι τόσο απλό πράγμα όσο φαίνεται... Αν δεν έχεις ασφαλιστικά, δεν μπορείς να έχεις ένα σωστό αποτέλεσμα. Τι θα γίνει για παράδειγμα, αν ο χρήστης στο βιβλίο αυτό, έχει κάποιο φύλλο, έστω Sheet1, με στατιστικά στοιχεία χ... Για δες το αρχείο και δοκίμασε κάτι άλλο... |
|
#7
| ||||
| ||||
|
Ναι, το γνωρίζω αυτό. Δεν έχω βάλει καθόλου μέτρα ασφαλείας στον κώδικα, π.χ. έλεγχο αν μια τιμή είναι αριθμός ή κείμενο για να μη χτυπήσει σφάλμα. Γι' αυτό το λόγο ανέφερα και στη Βούλα παραπάνω, όλα τα φύλλα που υπάρχουν μέσα στο αρχείο θα πρέπει να έχουν ακριβώς την ίδια γραμμογράφηση με τις υπόλοιπες καρτέλες ώστε να μην υπάρχουν φύλλα όπως το παράδειγμά σου. Μερικοί έλεγχοι πάντως που ίσως βοηθούσαν για τη "σωστή" επιβεβαίωση του φύλλου είναι: 1) Αν το κελί B1 είναι ίσο με "ΙΣΟΖΥΓΙΟ ΛΟΓΑΡΙΑΣΜΟΥ". 2) Αν οι επικεφαλίδες είναι στη θέση τους, κ.α. Αν θέλει η Βούλα να προσθέσω τέτοιου είδους ελέγχους, ευχαρίστως. Αν όμως διατηρεί πάντα την ίδια γραμμογράφηση σε όλα τα υπόλοιπα φύλλα, δε θεωρώ ότι υπάρχει λόγος για περισσότερους ελέγχους, πλην των τιμών (π.χ. αν είναι πληκτρολογηθεί κείμενο αντί αριθμού).
__________________ Your Curiosity Will Be The Death Of You! |
|
#8
|
|
Από την στιγμή που έχουμε αυτοματισμό, δεν υπάρχει ... «Αν όμως διατηρεί πάντα την ίδια γραμμογράφηση σε όλα τα υπόλοιπα φύλλα, δε θεωρώ ότι υπάρχει ...» Ποτέ δεν ξέρεις τι θα κάνει ο χρήστης... Από την άλλη... «πλην των τιμών (π.χ. αν είναι πληκτρολογηθεί κείμενο αντί αριθμού).....» παρ' όλο που σου έβαλα να αθροίσει μια στήλη με κείμενα (Ε) σε => (Β) το αποτέλεσμα ήταν μηδέν (0) και το έγραψε δεν «χτύπησε»...κάποιο σφάλμα παρ' όλο που δεν υπάρχει έλεγχος... .Range("B" & R).Value = Application.WorksheetFunction.Sum(Sht.Range("E:E") ) *Σημείωση Οι Αμερικάνικοι κώδικες έχουν απίστευτα λάθη... |
|
#9
| |||
| |||
|
Χρηστο και Σπυρο, Καλημερα και χιλια "ευχαριστω" για τις συμβουλες σας. Ειναι πολυτιμες. Χρηστο μου ακολουθησα τις οδηγιες σου σχετικα με τις εντολες VBA αν και λογω αγνοιας μου φαινονται βουνο. Κατεβασα καποιες οδηγιες, βημα-βημα που βρηκα στο διαδικτυο και ηδη ξεκινησα "αυτοδιδασκαλια" Οσον αφορα το συνημενο, οντως ολα τα φυλλα θα ειναι τα ιδια (αλλαζουν μονον ποσα-ονοματα). Το μονο που προσθεσα ειναι ΣΠ και απεικονηση. Σπυρο, Μηπως ηταν λαθος μου; Το επισυναπτω να το δειτε. Πολλα -πολλα ευχαριστω. Δεν εχω λογια |
|
#10
|
|
Καλημέρα Αυτό ακριβώς προσπάθησα να εξηγήσω στον Χρήστο, στο προηγούμενο post. Όχι το να προσθέσεις, αφαιρέσεις, τροποποιήσεις φύλλα δεν είναι λάθος σου. Αλλά δεν «δουλεύει» ο συγκεκριμένος κώδικας σωστά... Για να «πάρεις» την λειτουργία αυτού του κώδικα, δεν θα πρέπει να κάνεις στο βιβλίο καμία απολύτως αλλαγή, πλήν προσθήκης πανομοιότυπων φύλλων πελατών... Παρεπιμπτόντως, οι καρτέλες που πήρες από το template, δεν είναι ότι καλύτερο... |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Γενικά] Πολλά φύλλα εργασίας | asterisk | Excel - Ερωτήσεις / Απαντήσεις | 7 | 13-06-14 01:51 |
| [VBA] Αναζήτηση στοιχείων από δυο φύλλα και καταχώριση των επιλεγμένων σε νέο | anestaki | Excel - Ερωτήσεις / Απαντήσεις | 6 | 05-03-14 21:16 |
| [Excel07] Αυτόματη μεταφορά στοιχείων από διαφορετικά φύλλα Excel | ggatzos | Excel - Ερωτήσεις / Απαντήσεις | 0 | 28-06-13 21:07 |
| [Excel07] Άντληση στοιχείων απο φύλλα εργασίας σε συγκεντρωτικό φύλλο | ggatzos | Excel - Ερωτήσεις / Απαντήσεις | 16 | 26-05-13 18:16 |
| [Συναρτήσεις] Αναζήτηση σε πολλα φύλλα | manolis | Excel - Ερωτήσεις / Απαντήσεις | 5 | 09-06-10 17:17 |
Η ώρα είναι 07:19.


Αλλαγή σε γραμμικό τρόπο

