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/5901-orizontio-filtro.html)

jim1978 27-05-21 17:20

Οριζοντιο ΦΙΛΤΡΟ
 
1 Συνημμένο(α)
Καλησπέρα σας.
Πάρα πολύ όμορφη η δουλειά που κάνετε σε αυτόν τον ιστότοπο.
Θα ήθελα παρακαλώ πολύ την βοήθεια σας σε κάτι που με δυσκολεύει αρκετές μέρες.
Σε ένα φύλλο εργασίας "ΕΠΙΣΥΝΑΨΗ "έχω κάποιες στήλες,αρκετές, όπου εκεί στήν γραμμή 6 ,
με εφαρμογή κάποιου τύπου παίρνω αποτελέσματα της μορφής 1 @ 0(1 για true και 0 για false).
Μέχρι εδώ όλα ΟΚ.
Μετά την εφαρμογή των τύπων στήν γραμμή 6 θέλω να ταξινομήσω τις στήλες ως εξής.
Όλες με 1 να έρθουν αριστερά και αυτές με 0 να ακολουθήσουν ούτως ώστε και να διαγράφονται εντελώς.
Οι τελικές δηλαδή στήλες που θα παραμείνουν στο φύλλο να είναι αυτές με τιμη 1 στην γραμμή 6.
Ελπίζω να είμαι αναλυτικός και να σας έδωσα να καταλάβετε το ζητούμενο.
Τώρα δεν ξέρω αν το θέμα αυτό πρέπει να απαντηθεί με κώδικα(θα το ήθελα μιας και με καταγραφή macro που έχω ξεκινήσει να κάνω προσπαθώ λίγο σιγά σιγά να καταλαβαίνω) αλλά αυτό το αφήνω σε εσάς ως πιο ειδικούς.
Σας ευχαριστώ.

ChrisGT7 27-05-21 20:45

Καλησπέρα Δημήτρη,

Δοκίμασε τον παρακάτω κώδικα:
Κώδικας:

Option Explicit

Sub DIAGRAFH()
    Dim I    As Long
    Dim Fclm As Long: Fclm = Selection.Columns(1).Column
    Dim Lclm As Long: Lclm = Selection.Columns(Selection.Columns.Count).Column
   
    Application.ScreenUpdating = False
    For I = Lclm To Fclm Step -1
        If Cells(6, I).Value = 0 And Cells(6, I).Value <> "" Then _
            Columns(I).EntireColumn.Delete
    Next
    Application.ScreenUpdating = True
End Sub

Ο παραπάνω κώδικας κάνει το εξής:
Αφού μαρκάρεις ένα συνεχόμενο εύρος/περιοχή (π.χ. τη γραμμή 1 ή όλη την περιοχή που σε ενδιαφέρει), ελέγχει απ' όλες τις στήλες της επιλεγμένης περιοχής το κελί της γραμμής 6. Αν η τιμή του είναι 0, τότε διαγράφει ολόκληρη τη στήλη.

jim1978 27-05-21 21:03

1 Συνημμένο(α)
Θα με συγχωρήσεις κ.ΧΡΗΣΤΟ δική μου παράλειψης.
Στο φύλλο τα δεδομένα προς φιλτράρισμα της γραμμής 6 ξεκινούν απο την στήλη CC και κάθε φορά το πλάτος αλλάζει.
Σε αυτό λοιπόν το αλλαγμένο πλάτος κάθε φορά πρέπει να γίνετε η εφαρμογή του κώδικα που μόλις ανεβάσατε.
Δείτε λίγο και το σφάλμα που μου δίνει.
Σας ευχαριστώ πολύ.

ChrisGT7 27-05-21 21:09

Είσαι αρκετά γρήγορος! :)

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

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

jim1978 27-05-21 21:18

Πραγματικά ΚΑΤΑΠΛΗΚΤΙΚΟ.
Σάς ΕΥΧΑΡΙΣΤΩ τα μέγιστα κ ΧΡΗΣΤΟ.
Νά είστε καλά.


Η ώρα είναι 04:20.

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


Search Engine Optimization by vBSEO 3.3.2