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 :

MAJ de TCD par VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Novembre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 50
    Par défaut MAJ de TCD par VBA
    Bonjour à tous,

    Je souhaite mettre à jour un TCD à l'aide d'une macro. J'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Feuil10.PivotTables("Tableau croisé dynamique46").PivotFields("Invoice/RR FY").ClearAllFilters
        Feuil10.PivotTables("Tableau croisé dynamique46").PivotFields("Invoice/RR FY").CurrentPage = Feuil22.Range("G12").Value
        Feuil10.PivotTables("Tableau croisé dynamique46").PivotFields("Invoice/RR Month").ClearAllFilters
        Feuil10.PivotTables("Tableau croisé dynamique46").PivotFields("Invoice/RR Month").CurrentPage = Feuil22.Range("G14").Value
    Dans la Feuil22, je dispose de deux informations : L'année en G12 et le mois en G14.

    Je filtre ainsi dans le TCD la période que je souhaite pour obtenir un montant en Euro.

    Le hic est qu'en l'absence de données sur la période que je souhaite, cela ne marche pas (et pour cause la période n'est pas affichée dans le filtre du TCD) et qu'Excel me retourne le code erreur 1004.

    Mon besoin dans ce cas-là est simplement de savoir que le montant est égal à zéro.

    Merci par avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'utilise la méthode pas orthodoxe par défaut pour ce type de cas : gestionnaire d'erreur

    voici un exemple que tu pourrais adapter

    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
     
     
    [....]
     
    On Error GoTo handler    ' si le code plante sur la ligne ci-après, c'est forcément que la date saisie dans l'invite n'existe pas dans le TCD, je détourne donc la macro vers un message d'erreur
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Jours").PivotItems(Datte).Visible = True
    On Error GoTo 0          ' la ligne à problème étant passé, je supprime la gestion spécifique d'erreur, placée précédemment
     
     
    [...]
    handler:
     
    MsgBox ("Vous avez saisi une date qui n'est pas présente dans le TCD.")
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Filtrer un TCD par VBA
    Par Narez dans le forum Excel
    Réponses: 8
    Dernier message: 02/12/2013, 09h27
  2. Organisation des colonnes d'un TCD par VBA
    Par pilou2000 dans le forum Excel
    Réponses: 1
    Dernier message: 16/07/2012, 14h32
  3. [XL-2007] MAJ multi-TCD via VBA
    Par deuboli dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2011, 07h44
  4. Manipulation TCD par VBA
    Par stan057 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2010, 14h23
  5. Faire une MAJ de recordsetclone par VBA.
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 03/02/2006, 17h42

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