IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Changer paramètre de champs dans TCD


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable de production
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Points : 124
    Points
    124
    Par défaut Changer paramètre de champs dans TCD
    hello,
    je dois modifier un caractère de champs dans un tableau croisé que je "reçois" de SAP: passer de "somme" à "nombre".
    j'ai donc enregistré ma macro en direct qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Excel.Sheets("Table Condi Follow-Up").Select
        Range("A4").Select
        With ActiveSheet.PivotTables("PivotTable1").PivotFields( _
            "Sum of Quantité d'opération")
            .Caption = "Nombre"
            .Function = xlCount
        End With
    mais cela ne foncionne pas quand je lance la macro
    j'ai donc fait des recherches sur ce merveilleux outil "Developpez.com"
    et j'ai trouvé ceci qui ressemble beaucoup à l'enregistrement auto!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Table Condi Follow-Up").PivotTables("PivotTable1").PivotFields("Sum of Quantité d'opération").Function = xlCount
    mais résultat identique: message d'erreur "impossible de lire la propriété PivotFields de la classe PivotTable"
    avez-vous une idée de ce que je fait faux?
    merci d'avance de votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Salut,


    tu devrais tester successivement les différentes parties de l'instruction
    et voir laquelle plante!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    debug.print Sheets("Table Condi Follow-Up").Name
     
    debug.print Sheets("Table Condi Follow-Up").PivotTables.count 
     
    debug.print  Sheets("Table Condi Follow-Up").PivotTables("PivotTable1").PivotFields.count
     
    debug.prin Sheets("Table Condi Follow-Up").PivotTables("PivotTable1").PivotFields("Sum of Quantité d'opération").Name
    Cordialement,

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable de production
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Points : 124
    Points
    124
    Par défaut
    merci de ta prompte réactivité
    les trois premières instructions passent, puis bug sur la dernière avec le même mesage => donc problème sur "Sum of Quantité d'opération", mais ce que je ne comprends pas c'est le nom trouvé lors de l'affectation lors de la création en auto de ma macro, de plus dans ma table source l'entête de la colonne est bien "Quantité d'opération"
    si j'enlève "sum of" cela passe dans le debug, mais pas dans ma macro!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    ok,
    et si tu remplaces le nom du champ par un index numérique, ça donne quoi?

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Sheets("Table Condi Follow-Up").PivotTables("PivotTable1").PivotFields(0).Name
    Attention, je ne sais pas si le premier élément de la collection PivotFields a pour index 0 ou 1!
    Si c'est 1 ça va planter!

    Cordialement,

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable de production
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Points : 124
    Points
    124
    Par défaut
    c'est incroyable, dans le debug je mais l'indice correspondant, la réponce est bien "Quantité d'opération", mais si je mets le même indice dans ma macro cela bug

  6. #6
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Oui, j'ai le même problème.
    Essaie de supprimer le champ et de le recréer
    Cordialement,

  7. #7
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Bonjour,

    effectivement, la propriété Function ne se manipule pas aussi facilement!
    Après pas mal de recherche dans les forums, je te propose d'essayer le code suivant.
    2 remarques:
    1- il faut absolument régler Orientation=xlDataField avant de modifier la propriété Function
    2- en fait, un nouveau champ est crée, il faut masquer l'ancien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub testForum()
        ' variables
        Dim sh As Worksheet
        Dim pt As PivotTable
        Dim pf As PivotField
     
        ' init
        Set sh = Sheets("Table Condi Follow-Up")
        Set pt = sh.PivotTables("PivotTable1")
        Set pf = pt.PivotFields("Sum of Quantité d'opération")
        ' changer la fonction
        With pf
            .Orientation = xlDataField ' il faut fixer l'orientation
            .Function = xlCount
        End With
        ' résultat: un nouveau champ a été ajouté
        ' pf référence le nouveau champ
        ' il faut retrouver l'ancien et le masquer
        Set pf = pt.PivotFields("Sum of Quantité d'opération")
        pf.Orientation = xlHidden
    End Sub
    Cordialement,

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/03/2015, 22h24
  2. Changer la position d'un champs, dans une BDD
    Par godjojo dans le forum Débuter
    Réponses: 3
    Dernier message: 01/10/2008, 07h49
  3. Choisir un champ dans une requête selon un paramètre extérieur
    Par dut-dut dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/02/2008, 13h37
  4. Changer un paramètre de fonction dans une boucle
    Par DeezerD dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 24/01/2008, 14h23
  5. Réponses: 3
    Dernier message: 03/07/2006, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo