Comment insérer une valeur de variable dans la formule getpivotdata à l'aide de la macro Excel VBA


user9119687

J'ai donc appris que les tableaux croisés dynamiques sont délicats, tout comme la syntaxe des variables de chaîne, tout comme l'utilisation de citations dans VBA. J'essaye (et j'échoue) d'utiliser les trois!

J'essaie de collecter un élément de données à partir d'un tableau croisé dynamique très grand / complexe pour un grand nombre de numéros de travail. Je souhaite sélectionner un numéro de poste dans A1 et mettre à jour automatiquement la formule du tableau croisé dynamique avec le numéro de poste sélectionné pour renvoyer un résultat numérique.

J'ai actuellement deux problèmes: 1) la syntaxe pour obtenir le numéro de travail entre guillemets pour la formule 'getpivotdata' ne fonctionne pas et 2) il supprime les zéros dans le numéro de travail lorsqu'il exécute le code.

Mon code est répertorié ci-dessous, lorsque je l'exécute, j'espère voir cette formule se remplir en A2:

=GETPIVOTDATA("Part Number",' Parts Status '!$A$8,"CHAR_FIELD3","11-008","MATERIAL STATUS MASTER","Avail")

mais obtenez plutôt:

=GETPIVOTDATA("Part Number",' Parts Status '!$A$8,"CHAR_FIELD3",11-8,"MATERIAL STATUS MASTER","Avail")

Mon code est ici

Sub Macro1()

Dim jobnumber As String

jobnumber = Worksheets("Macros test").Cells(1, "A").Value

Sheets("Macros test").Select
    Range("A2").Select
    ActiveCell.FormulaR1C1 = _
        "=GETPIVOTDATA(""Part Number"",' Parts Status '!R8C1,""CHAR_FIELD3""," & jobnumber & ",""MATERIAL STATUS MASTER"",""Avail"")"
braX

Si vous avez besoin des citations, remplacez-les par ceci:

"=GETPIVOTDATA(""Part Number"",' Parts Status '!R8C1,""CHAR_FIELD3"",""" & jobnumber & """,""MATERIAL STATUS MASTER"",""Avail"")"

En outre, vous pouvez ajouter une msgbox temporaire après avoir défini le numéro de travail pour vous assurer que c'est ce que vous pensez:

MsgBox(jobnumber)

Articles connexes