Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Απόκρυψη κενών κελιών (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2404-apokrypsi-kenon-kelion.html)

manolis 10-03-13 11:00

Απόκρυψη κενών κελιών
 
1 Συνημμένο(α)
Καλημέρα σε όλη την παρέα

Εχω ενα φύλλο excel το οποίο στις επάνω και τις κάτω γραμμες εχει κείμενο.

Στις ενδιάμεσες γραμμες υπάρχει ενας πίνακας στον οποίο εισάγω δεδομένα.

Αυτό που προσπαθώ να κάνω είναι να κάνω απόκρυψη στις κενές γραμμές του πίνακα.

Βρήκα ενα κώδικα σε παλιότερο αρχείο αλλα δεν μπορώ :wall: να τον προσαρμόσω στο δικό μου και σε αυτό ζητάω την βοηθεια σας .


Σας ευχαριστώ εκ των προτέρων

Spirosgr 10-03-13 12:07

Καλησπέρα
Μανώλη η πιο απλή περίπτωση είναι να βάλεις αυτά τα μικρά κωδικάκια
σε 2 κουμπιά και με την επιλογή να κρύβεις ή να εμφανίζεις ότι θέλεις από σειρές κενές ή μη κενές
Κώδικας:

Sub HideRows()
    Selection.EntireRow.Hidden = True
End Sub

Κώδικας:

Sub ShowRows()
    Selection.EntireRow.Hidden = False
End Sub

Από 'κει και πέρα αν θέλεις κάτι καλύτερο πες μου αν ο πίνακας είναι πραγματικός πίνακας ή περιοχή και αν έχει σταθερό ύψος γραμμών ή μεταβάλλεται

manolis 10-03-13 12:35

1 Συνημμένο(α)
Σπύρο σε ευχαριστώ για την άμεση απάντηση. :thumbup1:

Αυτό που προσπαθώ να φτιάξω δεν θα το δουλευω εγω αλλα ενας συνάδελφος και προσπαθω να το κάνω οσο πιο αυτοματοποιημένο μπορώ για να τον διευκολύνω.

Ο πίνακας έχει 14 στηλες και 20 γραμμές , τον εχω ονομάσει sepe και το υψος των γραμμων ειναι σταθερό. Οι γραμμές που συμπληρώνονται καθημερινά μπορεί να είναι απο 1 εως 20.

Ανέβασα το πραγματικό αρχείο

Φιλικα

Spirosgr 10-03-13 15:33

1 Συνημμένο(α)
Καλησπέρα και πάλι
Λοιπόν βάλε τον κώδικα
Κώδικας:

Sub HideBlankRows()
    Dim cell As Range
    Application.ScreenUpdating = False
    For Each cell In Range("rngSelect")
        If cell = "" Then
            cell.EntireRow.Hidden = True
        End If
    Next
End Sub

όταν θα τρέξει θα κρυφτούν οι κενές σειρές
Ονομάσαμε την περιοχή Α6:Α25 rngSelect
Και Απαραίτητα καταργήθηκε η συγχώνευση στην στήλη * ΕΓΚΡΙΣΗ Α.Σ.Ε.
Ο τύπος που έβαλα για να εμφανίζεται το ΔΕΝ ΕΧΕΙ ΕΚΔΟΘΕΙ ΕΓΚΡΙΣΗ
μάλλον σου κάνει αλλά αν όχι άλλαξε το με κάτι παρόμοιο
Η εντολή έχει συνδεθεί με την φωτογραφία στο Α5
Καλή συνέχεια!

manolis 10-03-13 16:03

Σπύρο σε ευχαριστώ πολύ.:worthy::worthy:

Επειδή παρακoλουθούν την παρέα μας συνάδελφοι μου απο άλλες υπηρεσίες πιστεύω οτι θα βοηθήσει και αυτούς :icon_hihi:

Κάτι μάθαμε και σήμερα.

Με εκτίμηση

Μανώλης

Tasos 10-03-13 16:43

Καλησπέρα!
Εναλλακτικά μπορούμε να χρησιμοποιήσουμε:

Κώδικας:

Sub HideRows()
    On Error Resume Next
    Range("A6:A25").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Καλή συνέχεια!

Τάσος

manolis 10-03-13 16:54

Ενα ερώτημα πολλές λύσεις. Αυτό ειναι το excel

Tάσο σε ευχαριστώ πολύ και για την δική σου λύση :thumbup:

Και για την ιστορία.
Και στις δύο λύσεις όταν αλλαζω το True σε False τις εμφανίζει ξανα

:respect:
Μανώλης

Spirosgr 10-03-13 21:40

Καλησπέρα
Πολύ σωστά επεσήμανε ο Τάσος την χρήση SpecialCells στον κώδικα
Αυτό όμως μπορεί να το χρησιμοποιήσουμε αν και εφ' όσον τα κελιά της Α6:Α25 περιοχής είναι πραγματικά κενά (εδώ στο συγκεκριμένο παράδειγμα ισχύει)
Σε άλλες περιπτώσεις όμως
Αν για κάποιο λόγο στο κελί Α11 υπήρχε ο τύπος πχ =IF(Q11="";"";1)
τότε ναι μεν το Α11 θα φαινόταν κενό αλλά στην ουσία δεν θα ήταν οπότε και ο κώδικας με την χρήση SpecialCells δεν θα έκρυβε την σειρά 11


Η ώρα είναι 02:53.

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


Search Engine Optimization by vBSEO 3.3.2