Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Εκτύπωση] Επιλογή στηλών πίνακα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3951-epilogi-stilon-pinaka.html)

mdragon 07-12-15 13:04

Επιλογή στηλών πίνακα
 
Καλημέρα σε όλους.
Θα ήθελα να ρωτήσω το εξής:
έχω έναν πίνακα και κάθε φορά για την εκτύπωσή μου θα πρέπει να αποκρύπτω κάποιες
στήλες (ποτέ οι ίδιες).
Υπάρχει τρόπος πριν την εκτύπωση να επιλέγω ποιες στήλες θα γίνουν απόκρυψη???



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

kapetang 07-12-15 19:43

1 Συνημμένο(α)
Καλησπέρα

Μάρω, δες μια πρόταση στο συνημμένο.

Φιλικά/Γιώργος

mdragon 08-12-15 09:42

Γιώργο καλημέρα,
σε ευχαριστώ για την απάντηση σου.
θα το επεξεργαστώ και αν χρειαστεί θα επανέλθω.




Φιλικά,
Μάρω

kapetang 08-12-15 10:19

Μάρω, Καλημέρα

Καλύτερα να χρησιμοποιήσεις τον παρακάτω κώδικα:

Κώδικας:

Private Sub cmdHideCols_Click()
    Dim rngCol As Range, c As Range, rngHide As Range

    'Ορίζεται η περιοχή με τα ονόματα των στηλών
    Set rngCol = Range("tblColumns")
    Application.ScreenUpdating = False
    'εμφάνιση όλων των στηλών του πίνακα
    Range("tblData").EntireColumn.Hidden = False

    For Each c In rngCol
        If c.Offset(, 1) Then
            Set rngHide = Range("tblData[" & c & "]")
            rngHide.EntireColumn.Hidden = True
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Στον κώδικα πρόσθεσα και την εντολή Application.ScreenUpdating, ώστε η απόκρυψη/εμφάνιση των στηλών να γίνεται ταχύτερα και ομαλότερα.

mdragon 09-12-15 09:33

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



Φιλικά,
Μάρω

Spirosgr 09-12-15 12:26

1 Συνημμένο(α)
Καλημέρα
Θα έλεγα, να χρησιμοποιήσεις κάτι τέτοιο...
Κώδικας:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim c As Range, H_rng As Range, T_rng As Range
    Set H_rng = Range("Table1[#Headers]")
    Set T_rng = Range("Table1[#Totals]")
    If Not Intersect(Target, H_rng) Is Nothing Then
        Target.EntireColumn.Hidden = True
    ElseIf Not Intersect(Target, T_rng) Is Nothing Then
        Columns.Hidden = False
    Else
        Exit Sub
    End If
    Cancel = True
End Sub

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

Διπλό κλικ σε κεφαλίδα = κρύβει την συγκεκριμένη στήλη.
Διπλό κλικ σε total οπουδήποτε = εμφανίζει όλες.

Η εμφάνιση επηρεάζει όλο το φύλλο, οπότε (αν θες)
το τροποποιείς μόνο για το συγκεκριμένο list object
Σημείωση:
Όπου Table1 το όνομα του πίνακα...

mdragon 09-12-15 12:55

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



ΦΙλικά,
Μάρω

Spirosgr 09-12-15 12:58

Μάρω δεν κατάλαβες....
με ένα μόνο διπλό κλικ στην γραμμή συνόλου εμφανίζονται όλες...

mdragon 09-12-15 13:52

Δεν ξέρω γιατί, αλλά δεν μου δουλεύει όταν έχω άλλα αρχεία excel ανοιχτά.
Δυστυχώς όμως θα πρέπει κάποιες φορές να δουλεύω ταυτόχρονα.
Να σου πω όμως την αλήθεια μου, μου αρέσει με μία ματιά να βλέπω ποιες στήλες έχω με απόκρυψη και όχι να ψάχνω να βρω ποια λείπει. Είναι 28 βλέπεις......



Φιλικά,
Μάρω

kapetang 09-12-15 14:09

1 Συνημμένο(α)
Καλησπέρα

Μάρω, στο συνημμένο έβαλα το κουμπί και τα πλαίσια επιλογής στο Sheet2.

Ο πίνακας υπέθεσα ότι βρίσκεται στο φύλλο Sheet1.

Αν το φύλλο που περιέχει τον πίνακα έχει άλλο όνομα, θα πρέπει να αλλάξει η γραμμή κώδικα: Set ws = Worksheets("Sheet1").

Φιλικά/Γιώργος

Spirosgr 09-12-15 14:15

Εντάξει Μάρω, κατάλαβα...
Εμένα πάντως, δεν μου δημιουργεί προβλήματα, με όσα άλλα ανοιχτά ...
Αν αύριο, προσθέσεις 4 νέες στήλες, στον πίνακά σου, θα καταλάβεις την διαφορά ...

mdragon 09-12-15 15:22

Σας ευχαριστώ και τους δύο :handshake:



Φιλικά,
Μάρω


Η ώρα είναι 11:09.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2