| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλημέρα σε όλους, εύχομαι όλοι μας και οι οικογένειές μας, να είμαστε υγιείς αυτήν την δύσκολη περίοδο. Παίρνω το θάρρος να (ξανα)ζητήσω την βοήθειά σας, καθώς είμαι αρχάριος - πολύ αρχάριος - στην VBA, αλλά μου αρέσει πολύ και θέλω να πειραματίζομαι και να προσπαθώ. Έχω, λοιπόν, ένα φύλλο εργασίας με 24 στήλες και 1132 σειρές με δεδομένα. Φυσικά, για να μπορώ να τα επεξεργαστώ ευκολότερα, θα πρέπει να τα φιλτράρω. Στην αρχή σκέφτηκα τα απλά φίλτρα του Excel, αλλά έπεσα πάνω στον παρακάτω κώδικα στο internet και θέλησα να τον χρησιμοποιήσω. Τον αντέγραψα (με τις απαραίτητες αλλαγές στα φύλλα και τα κελιά), αλλά μου βγάζει μήνυμα λάθους "Run-time error 1004". Προσπάθησα, με τις ελάχιστες γνώσεις μου να καταλάβω που είναι το λάθος, αλλά δεν τα κατάφερα. Γι' αυτό απευθύνομαι σε εσάς, μήπως μπορέσετε να με βοηθήσετε. Ο κώδικας είναι ο εξής: Κώδικας: Sub copy_filtered_data()
Dim count_col, count_row As Integer
Dim orig, output As Worksheet
ThisWorkbook.Sheets("Sheet3").Cells.ClearContents
Worksheets("Sheet1").Activate
Set orig = ThisWorkbook.Sheets("Sheet1")
Set output = ThisWorkbook.Sheets("Sheet3")
count_col = WorksheetFunction.CountA(Range("A7", Range("A7").End(xlToRight)))
count_row = WorksheetFunction.CountA(Range("A7", Range("A7").End(xlDown)))
ActiveSheet.Range("A7").AutoFilter Field:=2, Criterial:=Cells(2, 1).Value
orig.Range(Cells(7, 1).Cells(count_row, count_col)).SpecialCells(xlCellTypeVisible).Copy
output.Cells(1, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Worksheets("Sheet1").ShowAllData
Worksheets("Sheet1").AutoFilterMode = False
Worksheets("Sheet3").Activate
ActiveSheet.Range("A1").Select
End Sub
Ευχαριστώ για τον χρόνο σας και συγγνώμη για το μεγάλο μήνυμα. Ελπίζω στην βοήθειά σας. |
|
#2
| ||||
| ||||
|
Καλημέρα Κώστα, Δοκίμασε τις παρακάτω αλλαγές να δεις αν έχεις τα επιθυμητά αποτελέσματα: Τη γραμμή με τα έντονα γράμματα άλλαξέ την σε: Range("Sheet1!A7").AutoFilter 2, ActiveSheet.Cells(2, 1).Value και στην ακριβώς από κάτω γραμμή αντικατέστησε την κόκκινη τελεία με κόμμα: ... Range(Cells(7, 1).Cells(c ...
__________________ Your Curiosity Will Be The Death Of You! |
|
#3
| |||
| |||
|
Καλημέρα Χρήστο, σ' ευχαριστώ για την απάντησή σου. Δοκίμασα την πρότασή σου και τώρα μου βγάζει μήνυμα λάθους "Run time error 1004. Η μέθοδος AutoFilter της κλάσης Range απέτυχε". Το κακό είναι ότι δεν έχω τις γνώσεις για να καταλάβω τι πρέπει να ψάξω και να διορθώσω. Γι' αυτό φυσικά απευθύνθηκα στην βοήθειά σας. |
|
#4
| ||||
| ||||
|
Είναι εύκολο να ανεβάσεις το αρχείο σου με δοκιμαστικά δεδομένα; Πάντως τρέχοντας τον κώδικά σου με τις αλλαγές που σου ανέφερα τρέχει κανονικά στο δικό μου. Δηλαδή: Κώδικας: Sub copy_filtered_data()
Dim count_col, count_row As Integer
Dim orig, output As Worksheet
ThisWorkbook.Sheets("Sheet3").Cells.ClearContents
Worksheets("Sheet1").Activate
Set orig = ThisWorkbook.Sheets("Sheet1")
Set output = ThisWorkbook.Sheets("Sheet3")
count_col = WorksheetFunction.CountA(Range("A7", Range("A7").End(xlToRight)))
count_row = WorksheetFunction.CountA(Range("A7", Range("A7").End(xlDown)))
Range("Sheet1!A7").AutoFilter 2, ActiveSheet.Cells(2, 1).Value
orig.Range(Cells(7, 1), Cells(count_row, count_col)).SpecialCells(xlCellTypeVisible).Copy
output.Cells(1, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Worksheets("Sheet1").ShowAllData
Worksheets("Sheet1").AutoFilterMode = False
Worksheets("Sheet3").Activate
ActiveSheet.Range("A1").Select
End Sub
__________________ Your Curiosity Will Be The Death Of You! |
|
#5
| |||
| |||
|
Χρήστο, ετοίμασα και ανεβάζω ένα μικρό αρχείο Excel το οποίο έχει την μορφοποίηση του κανονικού αρχείου αλλά μόνο με 5 σειρές δεδομένων. Ελπίζω να σε βοηθήσει. |
|
#6
| |||
| |||
|
Μήπως δεν είναι θέμα του κώδικα, αλλά κάποιας ρύθμισης του ίδιου του Excel;
|
|
#7
| |||
| |||
|
Χρήστο συγγνώμη, ξανανεβάζω το αρχείο γιατί δεν έβαλα το δεύτερο φύλλο, όπως και το κελί Α2 βάση του οποίου θα γίνει το φιλτράρισμα.
|
|
#8
| ||||
| ||||
|
Κώστα, Δοκίμασε το συνημμένο αρχείο να δεις αν σε βολεύει.
__________________ Your Curiosity Will Be The Death Of You! |
|
#9
| |||
| |||
|
Χρήστο, με μια πρώτη δοκιμή φαίνεται να δουλεύει. Θα το δοκιμάσω και στο αρχείο με τα πλήρη στοιχεία και θα επανέλθω. Πάντως σε ευχαριστώ πολύ για τον χρόνο και την προσπάθειά σου. Να είσαι καλά. |
|
#10
| |||
| |||
|
Χρήστο, το δοκίμασα και στο κανονικό αρχείο και δουλεύει σωστά. Μια τελευταία ερώτηση μόνο. Αν θέλω να φιλτράρω τα δεδομένα με βάση μια άλλη στήλη, τι πρέπει να αλλάξω; Ξέρω ότι μάλλον σε κούρασα, αλλά θα με εξυπηρετούσε πολύ στην δουλειά να ετοιμάσω το αρχείο. Ευχαριστώ και πάλι για την βοήθειά σου. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Φιλτράρισμα δεδομένων | caudillo | Excel - Ερωτήσεις / Απαντήσεις | 2 | 06-09-20 15:12 |
| [Γενικά] αποτελεσμα από φιλτραρισμα | ΠΑΝΑΓΙΩΤΟΠΟΥΛΟΣ ΙΩΑΝΝΗΣ | Excel - Ερωτήσεις / Απαντήσεις | 5 | 29-05-19 23:37 |
| [Excel07] φιλτραρισμα και επικολληση | katerina_ | Excel - Ερωτήσεις / Απαντήσεις | 3 | 20-07-16 07:44 |
| [ Υποφόρμες ] Αυτόματο φιλτράρισμα | ΚΩΣΤΑΣ2 | Access - Ερωτήσεις / Απαντήσεις | 7 | 22-04-12 10:32 |
| [ Ερωτήματα ] Φιλτράρισμα Ερωτήματος | Free_Ghost | Access - Ερωτήσεις / Απαντήσεις | 10 | 28-10-10 12:27 |
Η ώρα είναι 04:36.


Υβριδικός τρόπος

