Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 23-10-17, 12:19
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Βασίλη, δοκίμασε τον παρακάτω κώδικα.

Κώδικας:
'ΕΔΩ ΚΑΝΟΥΜΕ ΑΝΑΖΗΤΗΣΗ ΣΕ ΧΡΟΝΙΚΟ ΔΙΑΣΤΗΜΑ  ΠΟΥ ΕΧΟΥΜΕ ΟΡΙΣΕΙ
    Dim Apo As Date, Eos As Date
    Dim finalrow As Integer
    Dim i As Integer

    If Not IsDate(Cells(1, 8)) Then    'ημερομηνία έναρξης
        MsgBox "Δεν έχετε επιλέξει ημερομηνία." & vbCrLf & "Επιλέξτε την και δοκιμάστε πάλι.", vbExclamation
        Cells(1, 8).Select
        Exit Sub
    End If

    If Not IsDate(Cells(1, 9)) Then    'ημερομηνία λήξης
        MsgBox "Δεν έχετε επιλέξει ημερομηνία." & vbCrLf & "Επιλέξτε την και δοκιμάστε πάλι.", vbExclamation
        Cells(1, 9).Select
        Exit Sub
    End If
    Apo = Cells(1, 8).Value
    Eos = Cells(1, 9).Value


    Range("I7:N1048576").ClearContents

    finalrow = Range("C1048576").End(xlUp).Row

    For i = 2 To finalrow
        If Cells(i, 3) >= Apo And Cells(i, 3) <= Eos Then
            Range(Cells(i, 1), Cells(i, 6)).Copy
            Range("I1048576").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
        End If
    Next i
    Application.CutCopyMode = False
Στον κώδικα προσπάθησα να «πειράξω» το δικό σου όσο το δυνατόν λιγότερο.

Κάποιες απόψεις:

1) Όταν είναι γνωστή η ημερομηνία είναι επίσης γνωστά ο μήνας και η μέρα (μπορεί να προκύψουν από τύπους, κλπ) συνεπώς η επιλογή τους είναι και περιττή και μπορεί να οδηγήσει και σε σφάλματα ( η ημερομηνία να είναι Δευτέρα και να επιλεγεί Κυριακή).

2) Η χρήση κώδικα για να πετύχουμε κάτι που γίνεται εύκολα με τα εργαλεία του Excel, δεν είναι σωστή τακτική.

Εφαρμόζοντας το φίλτρο που φαίνεται στη συνημμένη εικόνα πετυχαίνουμε αυτό που θέλεις, χωρίς κώδικα, UserForm και ειδικά Controls.
Συνημμένα Thumbnails
Αναζήτηση δεδομένων ανάμεσα σε δύο ημερομηνίες-autofilter.png