Changer le Tableau croisé dynamique filtre à l'aide de VBA
J'ai un tableau croisé dynamique qui contient les "CoB champ" Date comme indiqué.
Je suis en train de créer une macro qui modifie automatiquement la date de la saisie de l'utilisateur.
J'ai écrit le code de macro suivant. Mais il montre l'erreur:
Impossible d'obtenir PivotFields propriété du tableau croisé dynamique de la classe
Quelqu'un peut-il m'aider?
Remarque: Supposons que le Format de Date n'est pas un problème
Code:
Sub My_macro()
Dim num as String
num = InputBox(Prompt:="Date", Title:="ENTER DATE")
Sheets("Sheet1").PivotTables("PivotTable1") _
.PivotFields("CoB Date").CurrentPage = num
End Sub
Peut-être que vous pourriez partager le code que vous avez et nous dire quelles erreurs et où ils se produisent...
Ouais, j'ai ajouté le code vba ainsi
Pour obtenir ce que vous voulez, 1er vous devez vous assurer que l'utilisateur a entré le bon format de date. Une fois que vous résoudre ce problème, vous pouvez simplement utiliser le Tableau croisé dynamique des Objets CurrentPage méthode pour mettre à jour la date sélectionnée. Btw, nous parlons normal pivots ici à droite? de ne pas Pouvoir Pivots? Votre code ne fonctionne pas parce que vous tentez d'accéder à une Gamme qui fait partie du Pivot.
Ouais, normal pivots. Je vais essayer de penser à la façon dont vous l'avez mentionné. Merci
Cool. Si jamais vous êtes bloqué dans le processus de mise à jour de votre question.
Ouais, j'ai ajouté le code vba ainsi
Pour obtenir ce que vous voulez, 1er vous devez vous assurer que l'utilisateur a entré le bon format de date. Une fois que vous résoudre ce problème, vous pouvez simplement utiliser le Tableau croisé dynamique des Objets CurrentPage méthode pour mettre à jour la date sélectionnée. Btw, nous parlons normal pivots ici à droite? de ne pas Pouvoir Pivots? Votre code ne fonctionne pas parce que vous tentez d'accéder à une Gamme qui fait partie du Pivot.
Ouais, normal pivots. Je vais essayer de penser à la façon dont vous l'avez mentionné. Merci
Cool. Si jamais vous êtes bloqué dans le processus de mise à jour de votre question.
OriginalL'auteur pikachuchameleon | 2014-06-16
Vous devez vous connecter pour publier un commentaire.
Comme indiqué exactement le même code fonctionne sur ma fin.
Supposons que vous avez des données comme ceci:
Lorsque vous exécutez la macro, il vous demandera un jour:
Et puis après avoir appuyé sur ok, le résultat serait:
Prendre note que nous avons supposé que la saisie de date n'est pas un problème.
Nous avons donc utilisé les données simples qui permettra d'éliminer et de sorte que votre code fonctionne.
La probable problème auquel vous êtes confronté à est si les dates ont horodatage.
Et en fonction de votre capture d'écran, c'est le cas.
OriginalL'auteur L42
J'ai eu le même problème avec "Impossible d'obtenir des PivotFields propriété du tableau croisé dynamique de la classe".
J'ai compris que si mon tableau croisé dynamique a été le seul sur cette feuille (ou dans le classeur que ce soit), il n'était pas "PivotTable1". Il a été "PivotTable4", probablement parce que j'avais créé et supprimé les 3 autres à l'avance.
À trouver le nom de votre tableau croisé dynamique, et de la modifier si vous le souhaitez, cliquez-droit n'importe où dans votre tableau croisé dynamique, puis sélectionnez "Options du Tableau croisé dynamique". Vous verrez la Dynamique "Nom" à droite en haut et pouvez le renommer à partir de là.
En outre, j'ai eu des problèmes avec ce même message d'erreur lorsque vous tentez de modifier un des filtres. Quand j'ai référencé le champ à l'aide d':
il lancerait la même erreur que ci-dessus. Il s'est avéré que j'avais 3 espaces à la fin de mon nom de champ. J'ai trouvé ce mai était à boucle à travers tous mes champs de filtrage de l'affichage d'un MsgBox pour chaque jusqu'à ce que je l'ai trouvé. Le code suivant est la façon dont je l'ai fait et espérons-le, peut aider quelqu'un avec un problème similaire:
Espère que cela aide quelqu'un!
OriginalL'auteur Brian H