Note: The other languages of the website are Google-translated. Back to English

Πώς να φιλτράρετε τον συγκεντρωτικό πίνακα με βάση μια συγκεκριμένη τιμή κελιού στο Excel;

Κανονικά, φιλτράρουμε δεδομένα σε έναν Συγκεντρωτικό Πίνακα επιλέγοντας στοιχεία στην αναπτυσσόμενη λίστα όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Στην πραγματικότητα, μπορείτε να φιλτράρετε έναν συγκεντρωτικό πίνακα με βάση την τιμή σε ένα συγκεκριμένο κελί. Η μέθοδος VBA σε αυτό το άρθρο θα σας βοηθήσει να λύσετε το πρόβλημα.

Φιλτράρετε τον συγκεντρωτικό πίνακα με βάση μια συγκεκριμένη τιμή κελιού με κωδικό VBA


Φιλτράρετε τον συγκεντρωτικό πίνακα με βάση μια συγκεκριμένη τιμή κελιού με κωδικό VBA

Ο ακόλουθος κώδικας VBA μπορεί να σας βοηθήσει να φιλτράρετε έναν συγκεντρωτικό πίνακα με βάση μια συγκεκριμένη τιμή κελιού στο Excel. Κάντε τα εξής:

1. Εισαγάγετε μια τιμή στην οποία θα φιλτράρετε τον Συγκεντρωτικό Πίνακα βάσει ενός κελιού εκ των προτέρων (εδώ επιλέγω το κελί H6).

2. Ανοίξτε το φύλλο εργασίας περιέχει τον Συγκεντρωτικό Πίνακα που θα φιλτράρετε κατά τιμή κελιού. Στη συνέχεια, κάντε δεξί κλικ στην καρτέλα φύλλων και επιλέξτε Προβολή κώδικα από το μενού περιβάλλοντος. Δείτε το στιγμιότυπο οθόνης:

3. Στο άνοιγμα Microsoft Visual Basic για εφαρμογές παράθυρο, αντιγράψτε κάτω από τον κώδικα VBA στο παράθυρο Code.

Κωδικός VBA: Φίλτρο συγκεντρωτικού πίνακα με βάση την τιμή κελιού

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Notes: Στον κώδικα,

1) "Sheet1Είναι το όνομα του φύλλου εργασίας.
2) "Συγκεντρωτικός πίνακας2Είναι το όνομα του Συγκεντρωτικού Πίνακα.
3) Το πεδίο φιλτραρίσματος στον συγκεντρωτικό πίνακα ονομάζεται "Κατηγορία".
4) Η τιμή που θέλετε να φιλτράρετε τον συγκεντρωτικό πίνακα τοποθετείται στο κελί H6.
Μπορείτε να αλλάξετε τις παραπάνω μεταβλητές τιμές όπως χρειάζεστε.

4. Πάτα το άλλος + Q πλήκτρα για να κλείσετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

Στη συνέχεια, ο Συγκεντρωτικός Πίνακας φιλτράρει με βάση την τιμή στο κελί H6 όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:

Μπορείτε να αλλάξετε την τιμή κελιού σε άλλους όπως χρειάζεστε.

Note: Οι τιμές που πληκτρολογείτε στο κελί H6 πρέπει να ταιριάζουν ακριβώς με τις τιμές στην αναπτυσσόμενη λίστα Κατηγορία του Συγκεντρωτικού Πίνακα.


Σχετικά άρθρα:


Τα καλύτερα εργαλεία παραγωγικότητας του Office

Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%

  • Επαναχρησιμοποίηση: Εισαγάγετε γρήγορα σύνθετοι τύποι, γραφήματα και οτιδήποτε έχετε χρησιμοποιήσει στο παρελθόν. Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές / στήλες... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Υποστηρίζει Office / Excel 2007-2021 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας. Πλήρεις δυνατότητες δωρεάν δοκιμής 30 ημερών. Εγγύηση επιστροφής χρημάτων 60 ημερών.
kte καρτέλα 201905

Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Σχόλια (23)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χρησιμοποιώντας αυτόν τον κωδικό (ενημερώθηκε για τις μεταβλητές μου φυσικά), κατά την αλλαγή του πεδίου, το φίλτρο αλλάζει στιγμιαία στο σωστό και στη συνέχεια διαγράφεται σχεδόν αμέσως. Προσπαθώντας να καταλάβω γιατί το κάνει αυτό (αναρωτιέμαι αν έχει να κάνει με τα ClearAllFilters στο τέλος του δευτερεύοντος;)
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς θα το κάνατε αυτό με ένα φίλτρο αναφοράς που έχει ιεραρχία;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου! Ευχαριστώ για τη μακροεντολή σας.

Προσπαθούσα να το χρησιμοποιήσω για περισσότερους από έναν πίνακες περιστροφής στην ίδια σελίδα, αλλά δεν λειτουργεί. Το έγραψα ως εξής:

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Dim xPTable1 ως Συγκεντρωτικός Πίνακας
Dim xPFile1 ως PivotField
Dim xStr1 ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("D7")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable1 = Φύλλα εργασίας ("BUSCADOR"). Συγκεντρωτικοί Πίνακες ("PV_ETAPA1")
Ορισμός xPFile1 = xPTable1.PivotFields("ETAPA1")
xStr1 = Στόχος.Κείμενο
xPFile1.ClearAllFilters
xPFile1.CurrentPage = xStr1
Application.ScreenUpdating = True

Dim xPTable2 ως Συγκεντρωτικός Πίνακας
Dim xPFile2 ως PivotField
Dim xStr2 ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("G7")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable2 = Φύλλα εργασίας ("BUSCADOR"). Συγκεντρωτικοί Πίνακες ("PV_ETAPA2")
Ορισμός xPFile2 = xPTable2.PivotFields("ETAPA2")
xStr2 = Στόχος.Κείμενο
xPFile2.ClearAllFilters
xPFile2.CurrentPage = xStr2
Application.ScreenUpdating = True

Sub End

Ίσως μπορείτε να με βοηθήσετε!

Ευχαριστώ εκ των προτέρων!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Hi


ευχαριστώ για τη μακροεντολή


Προσπαθώ το ίδιο πράγμα, αλλά δεν μπορώ να το κάνω να λειτουργήσει σε 2 τραπέζια. κοιτάζουν και οι δύο στο ίδιο κελί μόνο 2 διαφορετικούς συγκεντρωτικούς πίνακες


ευχαριστώ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πρέπει να αλλάξετε το όνομα του Συγκεντρωτικού Πίνακα. Κάθε συγκεντρωτικός πίνακας έχει διαφορετικό όνομα. για να το αποκτήσετε, κάντε δεξί κλικ στο pivot και επιλέξτε ρυθμίσεις συγκεντρωτικού πίνακα, το όνομα θα βρίσκεται στην κορυφή
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,

Je ne comprends pas comment ajouter le nom du second TCD dans la macro pour que cela fonctionne sur les deux.
Pourriez-vous m'aider;

Merci
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας για κάποιο λόγο, αυτή η μακροεντολή μετά την είσοδο στη σελίδα του Visual Basic, δεν εμφανίζεται καθόλου. Δεν μπορώ να ενεργοποιήσω/τρέξω αυτήν τη μακροεντολή, έχω ελέγξει όλες τις ρυθμίσεις του κέντρου αξιοπιστίας, αλλά δεν συμβαίνει τίποτα, παρακαλώ βοηθήστε με
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, δεν φαίνεται να μπορώ να το πετύχω αυτό. Το κελί στο οποίο θέλω να αναφερθώ προέρχεται από έναν τύπο - αυτός είναι ο λόγος που το φίλτρο δεν μπορεί να το βρει καθώς κοιτάζει τον τύπο και όχι την τιμή που επιστρέφει ο τύπος; Ευχαριστώ εκ των προτέρωνHeather McDonagh
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Heather, βρήκες λύση; Απλώς έχω το ίδιο πρόβλημα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Κατάφερα να τροποποιήσω/φιλτράρω 3 διαφορετικά pivot που βρίσκονται στην ίδια καρτέλα. Πρόσθεσα επίσης μια σειρά στο σύνολο δεδομένων μου "No Data Found", διαφορετικά άφησε το φίλτρο στο "ALL" που δεν ήθελα. Τα παραπάνω ήταν μια μεγάλη βοήθεια για να μου κερδίσουν τα συγχαρητήρια με τη διοίκηση, γι' αυτό ήθελα να το μοιραστώ. Σημειώστε ότι το (Όλα) είναι διάκριση πεζών-κεφαλαίων με πήρε λίγο για να το καταλάβω.
Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
'δοκιμή
Dim xPTable ως Συγκεντρωτικός Πίνακας
Dim xPFile ως PivotField
Dim xStr ως συμβολοσειρά

Dim x2PTable ως Συγκεντρωτικός Πίνακας
Dim x2PFile ως PivotField
Dim x2Str As String

Dim x3PTable ως Συγκεντρωτικός Πίνακας
Dim x3PFile ως PivotField
Dim x3Str As String

On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("a2:e2")) δεν είναι τίποτα, τότε βγείτε από το Sub

Application.ScreenUpdating = False

'tbl-1
Ορισμός xPTable = Φύλλα εργασίας ("Γραφικό").PivotTables("Συγκεντρωτικός Πίνακας1")
Ορισμός xPFile = xPTable.PivotFields("Τμήμα MR - Τμήμα")
xStr = Στόχος.Κείμενο
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Αν xPFile.CurrentPage = "(Όλα)" Τότε xPFile.CurrentPage = "Δεν βρέθηκαν δεδομένα"

'tbl-2
Ορισμός x2PTable = Φύλλα εργασίας ("Γραφικά"). Συγκεντρωτικοί Πίνακες ("Συγκεντρωτικός Πίνακας2")
Ορισμός x2PFile = x2PTable.PivotFields("Τμήμα MR - Τμήμα")
x2Str = Στόχος.Κείμενο
x2PFile.ClearAllFilters
x2PFile.CurrentPage = x2Str
Αν x2PFile.CurrentPage = "(Όλα)" Τότε x2PFile.CurrentPage = "Δεν βρέθηκαν δεδομένα"

'tbl-3
Ορισμός x3PTable = Φύλλα εργασίας ("Γραφικά"). Συγκεντρωτικοί Πίνακες ("Συγκεντρωτικός Πίνακας3")
Ορισμός x3PFile = x3PTable.PivotFields("Τμήμα MR - Τμήμα")
x3Str = Στόχος.Κείμενο
x3PFile.ClearAllFilters
x3PFile.CurrentPage = x3Str
Αν x3PFile.CurrentPage = "(Όλα)" Τότε x3PFile.CurrentPage = "Δεν βρέθηκαν δεδομένα"

Application.ScreenUpdating = True

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Είναι δυνατό αυτό με τα φύλλα Google; Αν ναι, πώς;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Τα Φύλλα Google δεν απαιτούν κανένα συγκεντρωτικό πίνακα. μπορείτε να εκτελέσετε απευθείας μέσω της Λειτουργίας φίλτρου
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Θα ήθελα να χρησιμοποιήσω πολλαπλό κώδικα αλλαγής φύλλου εργασίας στο ίδιο φύλλο εργασίας. Πώς να το κάνω αυτό? Ο κωδικός μου είναι ο παρακάτω:
Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
«Φίλτρο συγκεντρωτικού πίνακα με βάση την τιμή του κελιού
Dim xPTable ως Συγκεντρωτικός Πίνακας
Dim xPFile ως PivotField
Dim xStr ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("D20:D21")) δεν είναι τίποτα, τότε βγείτε από το δευτερεύον
Application.ScreenUpdating = False
Ορισμός xPTable = Φύλλα εργασίας ("Φύλλο1").PivotTables("Συγκεντρωτικός Πίνακας2")
Ορισμός xPFile = xPTable.PivotFields("Ορισμός")
xStr = Στόχος.Κείμενο
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True
Sub End

Ιδιωτικό δευτερεύον φύλλο εργασίας_Change2 (Στόχος ByVal ως εύρος)
«Φίλτρο συγκεντρωτικού πίνακα με βάση την τιμή 2 του κελιού
Dim xPTable ως Συγκεντρωτικός Πίνακας
Dim xPFile ως PivotField
Dim xStr ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("H20:H21")) δεν είναι τίποτα, τότε βγείτε από το δευτερεύον
Application.ScreenUpdating = False
Ορισμός xPTable = Φύλλα εργασίας ("Φύλλο1").PivotTables("Συγκεντρωτικός Πίνακας2")
Ορισμός xPFile = xPTable.PivotFields("Προσφορά")
xStr = Στόχος.Κείμενο
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Olá, gostaria de saber se quisesse filtrar mais de uma categoria como poderia ser;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Τι γίνεται αν θέλω να συνδέσω το κελί επιλογής σε μια διαφορετική καρτέλα; Αυτός είναι ο κωδικός μου μέχρι στιγμής
Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
Dim xPTable1 ως Συγκεντρωτικός Πίνακας
Dim xPFile1 ως PivotField
Dim xStr1 ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("B1")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable1 = Φύλλα εργασίας ("SM_SKU PIVOTS"). Συγκεντρωτικοί Πίνακες ("Συγκεντρωτικός Πίνακας1")
Ορισμός xPFile1 = xPTable1.PivotFields("Γεωγραφία")
xStr1 = Στόχος.Κείμενο
xPFile1.ClearAllFilters
xPFile1.CurrentPage = xStr1
Application.ScreenUpdating = True

Dim xPTable2 ως Συγκεντρωτικός Πίνακας
Dim xPFile2 ως PivotField
Dim xStr2 ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("B1")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable2 = Φύλλα εργασίας ("SM_SKU PIVOTS"). Συγκεντρωτικοί Πίνακες ("Συγκεντρωτικός Πίνακας4")
Ορισμός xPFile2 = xPTable2.PivotFields("Γεωγραφία")
xStr2 = Στόχος.Κείμενο
xPFile2.ClearAllFilters
xPFile2.CurrentPage = xStr2
Application.ScreenUpdating = True

Dim xPTable3 ως Συγκεντρωτικός Πίνακας
Dim xPFile3 ως PivotField
Dim xStr3 ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("B1")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable3 = Φύλλα εργασίας ("SM_SKU PIVOTS"). Συγκεντρωτικοί Πίνακες ("Συγκεντρωτικός Πίνακας8")
Ορισμός xPFile3 = xPTable3.PivotFields("Γεωγραφία")
xStr3 = Στόχος.Κείμενο
xPFile3.ClearAllFilters
xPFile3.CurrentPage = xStr3
Application.ScreenUpdating = True

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας!

Είμαι νέος με το VBA και θα ήθελα να έχω έναν κωδικό για να επιλέξω ένα συγκεντρωτικό φίλτρο με βάση μια περιοχή κελιών.
Πώς μπορώ να αλλάξω το "CurrentPage" σε τιμή εύρους;
Ευχαριστώ!!
-------------------------------------------------- -----------------------------------------
Sub PrintTour()

ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Bereich 1].[Τουρ].[Τουρ ]"). _
ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Bereich 1].[Tour].[Tour]"). _
CurrentPage = "[Bereich 1].[Tour lt. Anlieferungstag].&[4001-01]"
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Σας ευχαριστώ πολύ για αυτόν τον κωδικό! Το έβγαλα να λειτουργεί μετά την προσαρμογή ώστε να πληροί τα πεδία μου, αλλά μετά τη μορφοποίηση κάποιων αλλαγών στο φύλλο μου τώρα δεν λειτουργεί! Το μετέφερα από το A1 στο B1, άλλαξα κάποια μορφοποίηση κελιών για να το κάνω να ξεχωρίζει, κλπ. Τίποτα πολύ τρελό, αλλά τώρα δεν ενημερώνεται όταν αλλάζω κείμενο στο B1. Έχει κανείς καμιά ιδέα;

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
'δοκιμή
Dim xPTable ως Συγκεντρωτικός Πίνακας
Dim xPFile ως PivotField
Dim xStr ως συμβολοσειρά

Dim x2PTable ως Συγκεντρωτικός Πίνακας
Dim x2PFile ως PivotField
Dim x2Str As String

Dim x3PTable ως Συγκεντρωτικός Πίνακας
Dim x3PFile ως PivotField
Dim x3Str As String

On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("b1")) δεν είναι τίποτα, τότε βγείτε από το Sub

Application.ScreenUpdating = False

'tbl-1
Ορισμός xPTable = Φύλλα εργασίας ("Αναφορά γραμμής").PivotTables("Συγκεντρωτικός Πίνακας7")
Ορισμός xPFile = xPTable.PivotFields("Πηγή Utopia")
xStr = Στόχος.Κείμενο
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr

'tbl-2
Ορισμός x2PTable = Φύλλα εργασίας ("Αναφορά γραμμής").PivotTables("Συγκεντρωτικός Πίνακας2")
Ορισμός x2PFile = x2PTable.PivotFields("Πηγή Utopia")
x2Str = Στόχος.Κείμενο
x2PFile.ClearAllFilters
x2PFile.CurrentPage = x2Str

'tbl-3
Ορισμός x3PTable = Φύλλα εργασίας ("Αναφορά γραμμής").PivotTables("Συγκεντρωτικός Πίνακας3")
Ορισμός x3PFile = x3PTable.PivotFields("Πηγή Utopia")
x3Str = Στόχος.Κείμενο
x3PFile.ClearAllFilters
x3PFile.CurrentPage = x3Str

Application.ScreenUpdating = True

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Λανς,
Δοκίμασα τον κωδικό σου και δουλεύει μια χαρά στην περίπτωσή μου. Η αλλαγή της μορφής κελιού δεν επηρεάζει τη λειτουργία του κώδικα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς λειτουργεί με το Power Pivot, όταν χρησιμοποιείτε πολλούς πίνακες; Έγραψα μακροεντολή αλλάζοντας την τιμή στο φίλτρο. Πραγματοποιήθηκαν μερικές αλλαγές για να λειτουργήσει ο παραπάνω κώδικας. Αλλά βγάζει σφάλμα τύπου ασυμφωνίας. Ανεξάρτητα από το τι κάνω.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια DK,
Η μέθοδος δεν λειτουργεί για το Power Pivot. Συγγνώμη για την ταλαιπωρία.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,
Ευχαριστώ πολύ για αυτές τις εξηγήσεις.

J'aimerai utiliser un filtre (1 cellule) en F4 par exemple qui filtrerait deux TCD qui sont sur la même feuille.

Cela fonctionne très bien avec un TCD mais dès que j'essaye de combinationr le second, ça ne marche pas.
Θα μπορούσατε να με βοηθήσετε ?

Merci beaucoup
Αμβρόσιος
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,

Merci beaucoup pour cette explication qui marche parfaitement.
En revanche, j'aimerais pouvoir utiliser ce code pour pouvoir filtrer deux tableaux croisés dynamiques en même temps qui sont sur la même feuille. La seule petite diférence entre les deux, c'est qu'ils n'utilisent pas les mêmes πηγές. En revanche, le filtre sur lequel se base ces TDC est le même.

Pourriez-vous m'aider à faire évoluer ce code afin que cela fonctionne ?

Voici le code utilisé quand il marche avec un TCD :

Προσωπικό φύλλο εργασίας Sub_change (ByVal Target As Range)
«Ενημέρωση από Extendoffice 20180702
Dim xPTable ως Συγκεντρωτικός Πίνακας
Dim xPFile ως PivotField
Dim xStr ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Εάν το Intersect(Target, Range("G4")) δεν είναι τίποτα, τότε βγείτε από το Sub
Application.ScreenUpdating = False
Ορισμός xPTable = Φύλλα εργασίας ("Cadrage"). PivotTables ("Tableau croisé dynamique7")
Ορισμός xPFile = xPTable.PivotFields("N°PROJET")
xStr = Στόχος.Κείμενο
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True
Sub End

Merci beaucoup
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Ambroise,

Λυπούμαστε, είναι δύσκολο να τροποποιήσετε αυτόν τον κωδικό για να καλύψετε τις ανάγκες σας. Εάν θέλετε να φιλτράρετε πολλούς συγκεντρωτικούς πίνακες με ένα μόνο φίλτρο, οι μέθοδοι σε αυτό το άρθρο παρακάτω μπορεί να σας κάνουν τη χάρη:
Πώς να συνδέσετε έναν μεμονωμένο αναλυτή σε πολλούς συγκεντρωτικούς πίνακες στο Excel;
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Αφήστε τα σχόλιά σας
Δημοσίευση ως επισκέπτης
×
Αξιολογήστε αυτήν την ανάρτηση:
0   Χαρακτήρες
Προτεινόμενες τοποθεσίες

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL