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 :

aide pour tableau croisé dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut aide pour tableau croisé dynamique
    bonjour a tous j'aurais besoin d'un petit coup de pouce
    voila je cherche à créer un tableau croisé dynamique variable
    je m'explique
    j'ai sur une feuille, des donnée que je voudrais rangé dans un tableau mais comme je ne connais pas la taille vu que je peut rentrer plus de données
    j'aimerais avoir une petite macro qui convertit ces donnes en TCD et qui actualise a chaque fois que je rentre de nouvelle donnees

    ensuite j'aimerais récupérer la valeur du total de mon tableau et la mettre sur la ligne du dessous de la fin de mon tableau mais comme la taille du tableau peut changer il faut que la cellule ou va etre placée cette donnée se situe tjs en dessous de la derniere ligne du tableau
    j'espere que quelqu'un pourra m'aider
    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Pour la première partie de ta question, l'enregistreur de macros suffira. Tu le déclenches, tu fais ton TCD puis tu l'arrêtes et tu vas voir ce que ça donne. Voilà, tu as ta macro pour créer un TCD ! Il te suffira juste de mettre la plage de données variable (tu comptes le nombre de lignes remplies sur ta feuille où sont les données).

    Pour la seconde partie, tu repères la case comprenant "Total" ou un truc du genre, tu copies le montant associé et tu le colles au bon endroit. Pour cela, tu lui donnes une place, disons "A3", puis lorsque tu as fait ton tableau, tu le copie-colle en insérant juste avant cette cellule.

    Voilà pour le mode de fonctionnement

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Points : 177
    Points
    177
    Par défaut
    Salut !

    Proposition:
    tu crées ton TCD avec les données que tu as actuellement, tu fais attention au nom que tu lui donnes (voir nom dans options du tableau).
    et par macro tu as pour l'actualisation, en imaginant que tes données sont sur la feuille YYY et ton TCD sur ZZZ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim BasePivot As String
     
    BasePivot = Worksheets("YYY").Cells(1, 1).CurrentRegion.Address
     
    Worksheets("ZZZ").Activate
     
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
        Worksheets("YYY").Range(BasePivot)
    ActiveSheet.PivotCache.Refresh
    Voilà pour l'actualisation. Ca suppose que tu n'as pas de formule de somme à la fin, sinon le CurrentRegion la reprendrait et elle apparaitrait dans le TCD.
    Bon courage

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Effectivement, c'est encore plus simple

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    c'est pas si facile il faut qu'a chaque instant je puisse traiter la somme que j'ai récupérer dansce tableau donc si je dois tout le temps faire des copier coller j'men sortirais pas mais merci kan m

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Euh, j'entendais copier/coller à la fin de la macro, pas à la main

    Récapitulons : tu crées ton tableau à la main, tu fais ta macro le mettant à jour automatiquement. A la fin de cette macro, tu vas chercher le total que tu copies/colles au bon endroit. N'est-ce pas ça ? Tu auras ainsi ta somme à chaque fois que la mise à jour sera effectuée.

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Points : 177
    Points
    177
    Par défaut
    Pourquoi est-ce que tu ne fais pas plutot une somme dans ton tableau avec tes données sur la ligne en dessous de la dernière ligne au lieu d'aller chercher une valeur brute que tu ne pourras pas vérifier?

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Dead78 Le problème est que je débute et que je ne connais pas la programmation des fonctions macro...

  9. #9
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    essaies de créer ton tableau dynamique avec un tableau de données variables
    dans
    insertion
    nom
    définir
    le champ d'en haut : tablo (ou n'importe quoi d'autre)
    le champ d'en bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =decaler(feuil1!$a$1;0;0;nbval($a:$a);nbval($1:$1))
    n'oublie pas les $ (non par avidité, mais autrement la formule se réécrit n'importe comment)
    précision le tableau ci dessus désigné est sur la feuille 1 les entêtes sont sur la ligne 1 et la colonne 1 n'a pas de cellule vide sur la longueur du tableau (deux cases vides au milieu du tableau te sucres deux ligne en fin de tableau ..logique)
    après cele lorsque tu crées ton TCD au lieu de la plage $a$1:$x$n tu rentres = tablo
    dernier chose : pour actualiser les données sous 2000-2003 tu as dans la barre d'outils TCD ceci : ! sous 2007 ce sont deux fleche qui tourne et ça sert à actualiser les données sous 2003 ça marche nickel avec la mise en forme du tableau (sous 2007 c'est moins évident , ou j'ai pas trouvé comment il faut y faire tourner)

  10. #10
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut Exemple Tcd dynamique
    Bonjour,

    Pour ma part la source de la tcd s'appuie sur des tableaus nommes dans l'exemple du fichier il s'appelle 'DATA'

    Pour refleter les modifications de la feuille sources j'utilise l'événément comme ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        ThisWorkbook.Worksheets("TCD").PivotTables("TCDCommande").PivotCache.Refresh
     
    End Sub
    Et un bouton pour inserer une ligne dans la région définie par "DATA"

    Je vous laisse découvrir les fonctionnalites dans le fichier ci-joint pour lesquels j'ai adapté pour ce forum


    bon dévloppement

Discussions similaires

  1. Tableau croisé
    Par faizer dans le forum BIRT
    Réponses: 1
    Dernier message: 30/06/2015, 10h00
  2. Réponses: 2
    Dernier message: 12/01/2009, 11h06
  3. "4xa" pour l'année dans tableau croisé dynamique
    Par froutloops62 dans le forum Access
    Réponses: 7
    Dernier message: 20/12/2006, 00h05
  4. Réponses: 1
    Dernier message: 22/09/2006, 13h05
  5. Aide Tableau croisé dynamique Excel
    Par azerty dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/09/2006, 08h57

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