
01-03-14, 12:29
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Καλημέρα!
Ο κώδικας αναφέρεται στο πεδίο "'Έτη" δεν υπάρχει στη συλλογή "PivotFields" του συγκεντρωτικού πίνακα και φυσικά προκαλεί σφάλμα (συνήθως το 1004).
Όταν τρέξει για πρώτη φορά ο κώδικας αυτός, η εφαρμογή θα προσθέσει μεταξύ άλλων το πεδίο ομαδοποίησης για τα έτη με το αντίστοιχο όνομα που εξαρτάται από τη γλώσσα της εφαρμογής.
Αν λοιπόν η γλώσσα της εφαρμογής είναι αγγλική, το πεδίο ομαδοποίησης για τα έτη δεν θα ονομαστεί "Έτη" αλλά "Years". Στο συνημμένο παράδειγμα που ακολουθεί έχουν ορισθεί 4 ονόματα σε εύρος φύλλου (όχι βιβλίου): - Το όνομα : DateFrom (Β1 - Ημερομηνία από)
- Το όνομα : DateTo (Β2 - Ημερομηνία από)
- Το όνομα : GroupHeader (πεδίο Hm_Katathesis)
- Το όνομα: IsGrouped (το κελί C1 με το οποίο συνδέεται το κουμπί εναλλαγής ToggleGroupPivot)
Ο κώδικας που χρησιμοποιείται βρίσκεται στη λειτουργική μονάδα κλάσης του φύλου που φιλοξενεί τον συγκεντρωτικό πίνακα και τρέχει με το πάτημα του κουμπιού ToggleGroupPivot είναι ο ακόλουθος: Κώδικας: Option Explicit
Private Sub ToggleGroupPivot_Click()
Dim pf As PivotField
Dim pt As PivotTable
Set pt = Me.PivotTables(1)
Set pf = Me.Range("GroupHeader").Offset(, 1).PivotCell.PivotField
Application.ScreenUpdating = False
If Me.Range("GroupHeader").PivotCell.PivotField.TotalLevels > 1 Then
Me.Range("GroupHeader").Ungroup
End If
If ToggleGroupPivot Then
Me.Range("GroupHeader").Group _
Start:=Me.Range("DateFrom").Value, _
End:=Me.Range("DateTo").Value, _
Periods:=Array(False, False, False, True, True, False, True)
For Each pf In pt.PivotFields
If pf.TotalLevels > 1 Then
pf.PivotItems(1).Visible = False
pf.PivotItems(pf.PivotItems.Count).Visible = False
End If
Next
End If
End Sub
Φιλικά
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 02-03-14 στις 11:45.
|