VBA Excel - tableau croisé dynamique Filtre Erreur d'Exécution '1004' PivotItems
J'ai le code suivant, qui ouvre un fichier excel, sélectionne la feuille et exécute une macro - j'ai ensuite réussi à faire enlever le filtre de Date, mais j'ai de la difficulté à obtenir pour filtre à "01/07/2013"
Sub Data()
Dim oExcel As Excel.Application
Dim oWB As Workbook
Dim oSheets As Sheets
Dim oPi As PivotItem
Set oExcel = New Excel.Application
oExcel.Workbooks.Open ("\\A79APBRSFACTD\MDSS\FactivityServer\FactShar\OEE_Daily2.xls")
oExcel.Visible = True
Set oExcel = Excel.Application
Set oWB = oExcel.Workbooks("OEE_Daily2.xls")
oWB.Sheets("OEE Pivot Daily").Select
oExcel.Run ("Update_OEE_Daily")
oWB.Sheets("OEE Pivot Daily").Range("B3").Select
With oWB.Sheets("OEE Pivot Daily").PivotTables("PivotTable2").PivotFields("Date")
.ClearAllFilters
.PivotItems("01/07/2013").Visible = True
End With
Set oExcel = Nothing
Set oWB = Nothing
End Sub
Je reçois le message d'erreur suivant Run-time error '1004': Unable to get the PivotItems property of the PivotField class
La date "01/07/2013"
est disponible dans la source de données du tableau croisé dynamique, et je suis en mesure de sélectionner manuellement, mais pas automatiquement.
Ça, c'est incompréhensible pour moi, comme j'ai seulement besoin d'elle pour afficher la date.
OriginalL'auteur Conquistador | 2013-07-04
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en essayant de montrer seulement 01/07/2013, puis une fois que vous avez effacé le filtre, vous devez cacher tout sauf 01/07/2013, essayez donc ceci:
Assurez-vous de supprimer les zéros.
Si vous marchez par le biais de votre code, et de regarder des bpr.valeur, vous verrez que c'est "1/7/2013" au lieu de "01/07/2013". Au moins, il était pour moi.
Excel est un cauchemar quand il s'agit de régionale de dates, donc si vous NOUS utilisez mm/jj/aaaa, cela devrait fonctionner. Si vous utilisez jj/mm/aaaa, vous aurez besoin de vérifier oPi.valeur contre un Américain en format date. Fâcheusement.
Édité 23/07/2013:
Nouveau code de la recherche les données avant d'appliquer le filtre et beaucoup de re-mise en forme pour obtenir autour de l'Américain format de date d'émission:
J'ai marché à travers le code avec une montre, et ont constaté que les oPi.Valeur renvoie comme "4/26/2013" (la première date dans la liste) - donc je vais avoir besoin pour s'assurer que les dates sont en m/d/aaaa avant de commencer la boucle
Vous pouvez ajouter une recherche sur la Date de la colonne à trouver la date spécifiée et si la recherche donne des résultats positifs, c'est alors seulement que vous essayez de filtrer le tableau croisé dynamique. Laissez-moi savoir si vous voulez faire la recherche avant d'appliquer le filtre sur la page.
Oui je pense avoir la recherche pourrait être utile, de sorte qu'il peut manipuler les dates manquantes. Pensez-vous que cela va cesser de l'erreur de réglage de la visibilité?
OriginalL'auteur dendarii