
23-10-17, 12:56
|
| Όνομα: Βασίλης Έκδοση λογισμικού Office: Ms-Office 2013 Γλώσσα λογισμικού Office: Ελληνική | | Εγγραφή: 09-09-2017
Μηνύματα: 12
| |
Παράθεση:
Αρχική Δημοσίευση από kapetang Καλημέρα
Βασίλη, δοκίμασε τον παρακάτω κώδικα. Κώδικας: 'ΕΔΩ ΚΑΝΟΥΜΕ ΑΝΑΖΗΤΗΣΗ ΣΕ ΧΡΟΝΙΚΟ ΔΙΑΣΤΗΜΑ ΠΟΥ ΕΧΟΥΜΕ ΟΡΙΣΕΙ
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. | Γιώργο σε ευχαριστώ πάρα πολύ για την βοήθεια που μου παρείχες. Συμφωνώ με τα όσα λες, αλλά πιο συγκεκριμένα για τα εργαλεία προσπάθησα να προσθέσω κάτι φίλτρα για άμεση αναζήτηση αλλά δεν με βοήθησαν να κάνω αυτό που είχα κατά νου. Ο κώδικας που μου έστειλες όμως με βοήθησε να κάνω αυτό που ήθελα. Σε ευχαριστώ και πάλι. |