Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] αυτόματη συμπλήρωση και διαμόρφωση κελιού

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 24-09-18, 12:12
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή

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

Δεν μπορεί να έχεις εικόνα του 2018, υπολογίζοντας νέα προϊόντα (του '18)
ότι τα είχες και το 2017...
Ακόμα, πρέπει να ληφθεί υπ' όψιν και πιθανή αυξομείωση της τιμής ενός προϊόντος,
με βάση κάποιες ημερομηνίες...

Εξηγούμαι...

Έστω Item1 το 2017 με 100 πωλήσεις και τιμή 10 = αποδίδει 1000, Ok?
Αν τον Φεβρουάριο του 2018, η τιμή αυξηθεί σε 12 και έχουμε ίδιες πωλήσεις
τι θα πείς... ότι αφού έχει τώρα 1200, πήγε καλύτερα από πέρσυ;

Νομίζω λοιπόν, ότι πρώτα πρέπει να δεις την σύγκριση στα τεμάχια,
να λάβεις υπ' όψιν σου το επισυναπτόμενο που έχω ανεβάσει και πιο παλιά (2015) στο forum
που είναι μια ΒΔ, για προϊόντα που αλλάζουν τιμές
και μετά (στο τέλος) να μπεί μια παράμετρος που να λέει
2017 = 5000 με 10 items
2018 = 7000 με 12 items
2018 = 6000 με τα 10 ίδια items του 2017 (και με ίδια τιμή)
2018 = 1000 με τα νέα items
2018 = 200 (η διαφορά προς τα επάνω) με την αύξηση σε μερικά items
και πάει λέγοντας...

Σε γενικές γραμμές, αν θέλεις 100% αποτέλεσμα, δεν είναι απλό το ζήτημά σου...
Σπύρο καλημέρα,
Θέλω να χρησιμοποιήσω την εντολή που έχεις φτιάξει στο συγκεκριμένο excel
(δείξε / κρύψε ποσοστά) , σε ένα άλλο αρχείο excel.
Είναι εύκολη μια βοήθεια;
Προσπάθησα αλλά μάταια!!!

Ευχαριστώ πολύ
Απάντηση με παράθεση
  #2  
Παλιά 24-09-18, 13:02
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Έστω σε κάποιο φύλλο, θέλουμε να ανοιγουν και να κλείνουν ορισμένες στήλες.
Παράδειγμα, (*βλέπε εικόνα 1), οι στήλες e,g,i...ή όποιες άλλες.

Αν πάμε με τον κέρσορα, στο επάνω μέρος μιας στήλης και στην διαχωριστική γραμμή,
(με την διπλανή της), ο κέρσορας γίνεται «σταυρός» και
αν κάνουμε κλικ, τότε (*βλέπε εικόνα 2) εμφανίζεται το πλάτος της στήλης.

Σημειώνουμε το πλάτος (πχ 20,00) και όχι τα pixels...

Βάζουμε ένα κουμπί (πχ διάφανο Rectangle *βλέπε εικόνα 3) γράφουμε τι θα κάνει και
το συνδέουμε με μια εντολή.

Η Εντολή τώρα, στο κλικ του σχήματος:
Κώδικας:
Sub Rectangle1_Click()
    If Sheet1.Columns("e:e").ColumnWidth = 20# And _
       Sheet1.Columns("g:g").ColumnWidth = 20# And _
       Sheet1.Columns("i:i").ColumnWidth = 20# Then
        Sheet1.Columns("e:e").ColumnWidth = 0#
        Sheet1.Columns("g:g").ColumnWidth = 0#
        Sheet1.Columns("i:i").ColumnWidth = 0#
    Else
        Sheet1.Columns("e:e").ColumnWidth = 20#
        Sheet1.Columns("g:g").ColumnWidth = 20#
        Sheet1.Columns("i:i").ColumnWidth = 20#
    End If
End Sub
Αν στο φύλλο Sheet1 (κωδικό όνομα), η στήλη e, έχει πλάτος =Χ (20 επί του προκειμένου)
και ταυτόχρονα
στο φύλλο Sheet1 (κωδικό όνομα), η στήλη g, έχει πλάτος =Χ
και ταυτόχρονα
στο φύλλο Sheet1 (κωδικό όνομα), η στήλη i, έχει πλάτος =Χ ... τότε
να γίνει μηδέν.
Αλλιώς
να είναι (το πλάτος όλων των στηλών) =Χ

Καλό είναι, οι στήλες να έχουν το ίδιο πλάτος.

Παρατηρήσεις:

Υπάρχει και καλύτερη μέθοδος όμως....με πιο βελτιωμένο κώδικα,
γιατί μπορεί να έχουμε πολλές στήλες που θέλουμε να ανοιγοκλείνουν.

Στο βιβλίο που ανέβασα τότε, οι στήλες ήταν μόνο τρείς και
δεν ήταν και σκοπός να δείξω αυτό, αλλά τους τύπους ενημέρωσης τιμών...


Γράψε μου το φύλλο (κωδικό όνομα) και ποιές στήλες θέλεις να κλείνεις-ανοίγεις
να στο στείλω το απόγευμα...
Συνημένες Εικόνες
Τύπος Αρχείου: jpg Screenshot_1.jpg (51,5 KB, 5 εμφανίσεις)
Τύπος Αρχείου: jpg Screenshot_2.jpg (15,2 KB, 10 εμφανίσεις)
Τύπος Αρχείου: jpg Screenshot_3.jpg (13,8 KB, 8 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 24-09-18, 14:01
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή

Σπύρο καλησπέρα,

Το φύλλο θα λέγεται monthly price και οι στήλες που θα "ανοιγοκλείνουν" θα είναι:
e,g,h,j,k,m,n,p,q,s,t,v,w,y

Εφόσον υπάρχει και κάποιος βελτιωμένος κώδικας για απόκρυψη/επανεμφάνιση
πολλαπλών στηλών αδημονώ να τον δω στην πράξη (μόνο αν κάτι τέτοιο είναι
εφικτό από την πλευρά σου)

Ευχαριστώ θερμά,
Απάντηση με παράθεση
  #4  
Παλιά 24-09-18, 17:31
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλησπέρα
Στο βιβλίο, υπάρχει μια ρουτίνα, που μας επιτρέπει να εμφανίσουμε και
με το ίδιο κουμπί (toggle), να κρύψουμε κάποιες στήλες της επιλογής μας.

Ο κώδικας, δεν χρειάζεται καμία τροποποίηση ως προς την δομή του,
όπου κι αν τον χρησιμοποιήσουμε, αρκεί να βάλουμε μόνο,
το κωδικό όνομα του δικού μας φύλλου, στην θέση του Sheet1.
(*βλέπε εικόνα)

Optional:
Αν κάποιος θέλει, μπορεί να το μετατρέψει σε ActiveSheet...

Επιτρέπονται δεδομένα μετά την Υ στήλη
(στο παράδειγμα μας η τελευταία που εμπλέκουμε) ή
και πριν από την Ε (στο παράδειγμα μας η πρώτη που εμπλέκουμε)
Οι τίτλοι και τα δεδομένα, μπορούν να είναι σε οποιαδήποτε γραμμή.

Πως λειτουργεί:
Πάμε στο σημείο
Κώδικας:
        Select Case i
        Case 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25
και βάζουμε, τους αριθμούς στηλών που εμείς θέλουμε να ανοιγοκλείνουν...
με κόμμα ανάμεσα και αυτό είναι όλο...

Βρίσκει αυτόματα, την τελευταία χρησιμοποιούμενη στήλη του φύλλου
και κάνει την εμφάνιση-απόκρυψη, ανάλογα με την επιλογή μας.

Μπορούσαμε να χρησιμοποιήσουμε και άλλες μεθόδους
για την τελευταία στήλη, όπως:
Κώδικας:
lColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ή
Κώδικας:
lColumn = ws.UsedRange.Columns.Count
κλπ
αλλά η Cells.Find(.... θεωρώ ότι είναι η πιο αξιόπιστη απ' όλες και δεν χρειάζεται
ο χρήστης, να προσέξει τίποτα απολύτως, στο που θα βάλει τίτλους, σε ποιά γραμμή κλπ...

Παρατήρηση:
Θα μπορούσε κανείς να πεί, ότι ίσως είναι πλεονασμός να έχουμε
τις γραμμές κώδικα, που ασχολούνται με την τελευταία στήλη,
να τις παραλείψουμε και να πάμε να βάλουμε «καρφωτά» έναν αριθμό εδώ:
Κώδικας:
For i = 1 To 30
με όποιο κίνδυνο μπορεί να έχουμε, από το ξεχνάει ο χρήστης κάθε φορά,
εκτός του να προσθέτει άλλες στήλες στην επιλογή του,
να το αλλάζει και αυτό αν βάζει κι άλλα δεδομένα δεξιότερα...
*να έχει καρφωτά ως τελευταίο το 30 και να θέλει να ανοιγοκλείνει και η 45 στήλη
Συνημένες Εικόνες
Τύπος Αρχείου: jpg Screenshot_1.jpg (21,3 KB, 6 εμφανίσεις)
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Shift Columns Width.xlsm (28,0 KB, 7 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 24-09-18, 18:54
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή

Σπύρο καλησπέρα,

Ευχαριστώ και πάλι για την άμεση λύση και πρόταση.
Είσαι άψογος πάντα!!!

Καλή συνέχεια
Απάντηση με παράθεση
  #6  
Παλιά 24-09-18, 19:51
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή

Σπύρο και πάλι τα φώτα σου!!!

Έκανα αντιγραφή της καρτέλας στο ίδιο αρχείο, και δεν δουλεύει.
Βλέπω ότι ενώ άλλαξα την ονομασία της καρτέλας, κάτι δεν πάει καλά.
Σου επισυνάπτω το δείγμα.
Σίγουρα κάτι δεν "εκτελώ σωστά"

Ευχαριστώ
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Shift Columns Width.xlsm (31,2 KB, 5 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 24-09-18, 19:57
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Και μια άλλη πρόταση.

Εφόσον μας ενδιαφέρει μόνο η απόκρυψη και η εμφάνιση συγκεκριμένων στηλών σε ένα φύλλο, δε χρειάζεται να ασχοληθούμε με τη θέση των δεδομένων στο φύλλο.

Ο παρακάτω κώδικας κάνει ακριβώς αυτό:

Κώδικας:
Public Sub HideUnHideCols()
    Dim rng As Range
    
    Set rng = Range("e:e,g:h,j:k,m:n,p:q,s:t,v:w,y:y")
    rng.EntireColumn.Hidden = Not rng.EntireColumn.Hidden
    
End Sub
Αντώνη, δες και το συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm HideUnHideCols.xlsm (21,7 KB, 15 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 24-09-18, 19:59
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Γράφω...
«Ο κώδικας, δεν χρειάζεται καμία τροποποίηση ως προς την δομή του,
όπου κι αν τον χρησιμοποιήσουμε, αρκεί να βάλουμε μόνο,
το κωδικό όνομα του δικού μας φύλλου, στην θέση του Sheet1.
(*βλέπε εικόνα)

Optional:
Αν κάποιος θέλει, μπορεί να το μετατρέψει σε ActiveSheet...»

Άρα ή βάζεις το κωδικό όνομα του νέου φύλλου (Sheet2)
ή επειδή βλέπω ότι πας να βάλεις φύλλα με μήνες, θα το κάνεις ActiveSheet
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Αυτόματη συμπλήρωση κελιού Παναγιώτης Χρ Excel - Ερωτήσεις / Απαντήσεις 0 25-03-16 13:38
[Excel07] Συμπλήρωση κελιού με τιμή σε συγκεκριμένο κελί βάσει ημερομηνίας stam75 Excel - Ερωτήσεις / Απαντήσεις 13 08-10-15 16:32
[ Φόρμες ] αυτόματη συμπλήρωση eparast Access - Ερωτήσεις / Απαντήσεις 0 03-04-14 23:19
Αυτόματη συμπλήρωση τιμής nafnaki Access - Ερωτήσεις / Απαντήσεις 7 13-02-13 12:45
[Excel07] Αυτόματη Συμπλήρωση ΑΦΜ ippotis Excel - Ερωτήσεις / Απαντήσεις 2 10-02-11 20:14


Η ώρα είναι 13:10.