ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Γενικά] Φίλτρο με TRUE,FALSE

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

Κλειστό Θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 27-09-12, 12:32
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-09-2012
Μηνύματα: 18
Προεπιλογή

Λυπαμαι κυριε Θαναση αλλα δεν καταφερα κατι.
Δεν ξερω τι ειναι αυτο που κανω λαθος.
Χωρις να ενοχλω η λυση με κωδικα μου φανηκε πιο ευκολη.
Εαν θελετε προσπαθηστε να κανετε κατι εκει .
Φιλικα και με Εκτιμηση Γρηγορης.
  #12  
Παλιά 27-09-12, 13:32
Όνομα: Θανάσης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2012
Μηνύματα: 238
Προεπιλογή

Καλημέρα σε όλους
Κοίτα το συνημμένο και πες μας
Θανάσης
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Φιλτρο με TRUE ,FALSE.xls (41,0 KB, 21 εμφανίσεις)
  #13  
Παλιά 27-09-12, 14:00
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα!

Για όσους ενδιαφερθούν:

Αφού χρησιμοποιούμε βιβλίο εργασίας με μορφή *xlsm θα ήταν πιο πρακτικό τα δεδομένα να βρίσκονται σε λίστα.

Αυτό σε συνδυασμό με το InputBox της Excel (όχι της VBA) μπορεί να προσφέρει στον απλό χρήστη
τη δυνατότητα να διευρύνει τα δεδομένα του όσο θέλει και να τοποθετήσει τα αποτελέσματα όπου θελήσει (στο ίδιο ή σε άλλο φύλλο), χωρίς περιορισμούς.

Επισυνάπτω σχετικό παράδειγμα.

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm TRUEFALSE.xlsm (28,4 KB, 20 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
  #14  
Παλιά 27-09-12, 15:23
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-09-2012
Μηνύματα: 18
Προεπιλογή

Καταπληκτικη δουλεια Κυριε Θαναση(ThanosP) ειστε αλλωστε τοσοι πολλοι που μπερδευετε κανεις.
Σε αυτο λοιπον που ανεβασατε 2 πραγματα και ειμαστε ετοιμοι.
1.Οταν τελειωσει με το φιλτρο και βαλει ολα τα true αριστερα τα fulse να τα διαγραφει εντελως.
2.να μην εχω περιορισμο στον κωδικα που να αφορα τον αριθμο των στηλων που εχω τα δεδομενα μου.να εχω δυνατοτητα να βαλω οσες στηλες θελω.
Αυτα φιλοι μου και το τελειωσαμε.
  #15  
Παλιά 27-09-12, 15:55
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Αγαπητέ Γρηγόρη,

αν διαβάσεις προσεκτικά το προηγούμενο** μήνυμα μου θα δεις ότι περιγράφεται ακριβώς αυτό που ζητάς.

Παράθεση:
Επεξεργασία**

Αν θέλεις απλά να αφαιρείς τις στήλες που περιέχουν 'FALSE' τότε πιστεύω ότι το παράδειγμα που επισυνάπτω θα σε βοηθήσει.
Τάσος

ΥΓ.
Θανάση,
Dim a(100), x, k, m, r, z, i As Integer

σημαίνει:

Dim a(100) As Variant, x As Variant, k As Variant, m As Variant, r As Variant, z As Variant, i As Integer
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm RemoveFALSE.xlsm (23,0 KB, 9 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 27-09-12 στις 17:09.
  #16  
Παλιά 27-09-12, 17:12
Όνομα: Θανάσης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2012
Μηνύματα: 238
Προεπιλογή

Καλησπέρα
"Dim a(100), x, k, m, r, z, i As Integer", οι τιμές που θα πάρουν οι μεταβλητές θα είναι ακέραιοι αριθμοί δεν είναι απαραίτητο να ορίζεται η κάθε μια ξεχωριστά, για τον Τάσο.
Γρηγόρη, πρέπει να είναι εντάξει !!
Θανάσης
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Φιλτρο με TRUE ,FALSE (2).xls (51,5 KB, 11 εμφανίσεις)
  #17  
Παλιά 27-09-12, 18:06
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-09-2012
Μηνύματα: 18
Προεπιλογή

t(i, r) = Cells(m, a(i))
Εδω μου χτηπησε run-time error 9 subscipt out of range οταν επιχειρησα να βαλω 650 στηλες με δεδομενα απο ενα αλλο φυλλο.
υπαρχει καποιος περιορισμος που πρεπει να εχω υποψην?
ΕΥΧΑΡΙΣΤΩ.
  #18  
Παλιά 27-09-12, 19:08
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Αγαπητέ Θανάση,
1) Οι μεταβλητές στη στη VBA και στη VB6 θεωρούνται Variant αν δεν ακολουθεί το διευκρινιστικό As μετά από την κάθε μια χωριστά.

Η εικόνα από τον VBE στο αρχείο σου δείχνει καθαρά τον τύπο των μεταβλητών που δηλώνεις:

Φίλτρο με TRUE,FALSE-vars.png

Εδώ υπάρχει και σχετικό άρθρο: Declaring Variables

2) Δεν υπάρχει λόγος το Range του φύλλου που είναι από μόνο του πίνακας (Array) να το ξαναπερνάς σε Array.

Ο κώδικας είναι γρηγορότερος και ευανάγνωστος όταν χρησιμοποιείς κατευθείαν το Range Object.

Έδωσα ήδη 2 παραδείγματα που ελπίζω ότι θα ωφελήσουν κάποιους που έχουν βέβαια κάποιες γνώσεις VBA και Excel.


Θα προσπαθήσω να απλοποιήσω τη διαδικασία παραθέτοντας τον παρακάτω κώδικα που βασίζεται στο ζητούμενο του θέματος (έτσι όπως εξελίχθηκε):

Κώδικας:
Sub DeletAllFalseColumns()
    Dim i As Integer, rng As Range
    Set rng = Range(Cells(4, 3), Cells(4, Columns.Count).End(xlToLeft))
    For i = rng.Count To 1 Step -1
        If Cells(4, i) <> True Then Cells(4, i).EntireColumn.Delete
    Next
End Sub
Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 27-09-12 στις 20:54.
  #19  
Παλιά 27-09-12, 19:16
Όνομα: Θανάσης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2012
Μηνύματα: 238
Προεπιλογή

Γεια
στον κώδικα που σπάει αλλαξε τις 1ες γραμμές πχ
Dim a(100), x, k, m, r, z, i As Integer
Dim t(100, 10000), kol1 As String
θανασης
  #20  
Παλιά 27-09-12, 20:11
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 823
Προεπιλογή

Έτσι που εξελίχθηκε το θέμα όπως είπε και ο Τάσος,
θα έλεγα γιατί δεν χρησιμοποιούμε απλά οριζόντια ταξινόμηση με κλειδί την γραμμή 4 για τον διαχωρισμό των True False
Κώδικας:
Option Explicit

Sub sort_true_false()

Dim i As Integer
Dim r As Integer
Dim S As Range

' "r" is the row number of line with false or true
r = 4
' "S" is the cell where your table starts
Set S = ActiveWorkbook.Worksheets("Sheet1").Range("C3")

'Delete Sort keys if they exist and redefine them.
 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(r & ":" & r), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
 
 'Sort horizontaly
 With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange S.CurrentRegion
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlLeftToRight
    .SortMethod = xlPinYin
    .Apply
 End With

'Delete columns with False on second row of MyData
For i = Start.Column To S.CurrentRegion.Columns.Count
    If Cells(r, i) = False Then
        Range(Cells(S.Row, i).Address & ":" & _
        Cells(S.Row + S.CurrentRegion.Rows.Count, _
        S.Column + S.CurrentRegion.Columns.Count - 1).Address).Clear
        Exit For
    End If
Next i
End Sub
ΥΓ. Γρηγόρη δεν ξέρω τι λάθος έκανες και το Cut/Paste που σου πρότεινα δεν σου δούλεψε.
Δουλεύει χωρίς βέβαια να είναι ένα κουμπάκι που το κάνει αυτόματα.
Το ξέρω ότι οι αυτοματισμοί απαιτούν λιγότερη προσπάθεια από την πλευρά του χρήστη και πολλοί τους προτιμούν.
Κλειστό Θέμα

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

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] true να γινετε πράσινο το κελί και false κοκκινο πως? tolis_montana Excel - Ερωτήσεις / Απαντήσεις 2 01-09-16 23:21
Ενημέρωση πεδίου true/false dimitrisp Access - Ερωτήσεις / Απαντήσεις 4 05-05-15 12:49
βοήθεια με ερώτημα με πολλά checkBoxes = True γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 6 09-09-14 23:17
Συνάρτηση =NumToWords(NumberField, 0, False) ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 4 29-12-12 14:58
[Συναρτήσεις] true, false DimitrisK Excel - Ερωτήσεις / Απαντήσεις 2 07-01-10 06:52


Η ώρα είναι 07:37.