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 :

Compilé des tableaux en un seul


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Compilé des tableaux en un seul
    Bonsoir à tous,

    Je souhaiterais, à l'aide d'une macro, compiler sur une feuille plusieurs tableaux identiques (même nb de colonne et nb de lignes variables) présents sur plusieurs feuilles du même classeur. Le tableau de compilation ayant les mêmes colonnes.

    Par ailleurs, dans cette feuille de compilation je souhaiterais trier les lignes par date (1ère colonne de mes tableaux).

    Cependant, étant donné mon niveau en VBA, je ne sais comment faire et comment débuter !?

    Auriez-vous des idées??

    Merci par avance et excellente soirée!

    André17

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    voici une idée de comment tu pourrait opérer

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Compil()
    Dim sh As Variant
    Dim shComp As Worksheet
    Dim shName As Variant
    Dim R As Integer
    Dim PVT As PivotTable
     
    'on définit les nom des feuilles contenant les tableaux a compiler
    shName = Array("sh1", "sh2", "sh3")
     
    ' on ajoute une feuille pour la compilation
    Set shComp = Worksheets.Add
     
    'on les copie dans la feuille de compilation
    'on admet ici, qu'ils débutent tous en cellule "A1" et qu'ils possedent chacun dix colonnes
     
    'on copie d'abord les en-têtes
    Sheets("sh1").Range("A1:J1").Copy shComp.Range("A1")
    For Each sh In shName
        R = Sheets(sh).Range("A1").CurrentRegion.Rows.Count - 1
        Sheets(sh).Range("A2:J" & R).Copy
        shComp.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
    Next sh
     
    'on crée une table pivot!
        Set PVT = ActiveWorkbook.PivotCaches.Create(xlDatabase, shComp.Name & "!" & Range("A1").CurrentRegion.Address). _
                        CreatePivotTable(shComp.Name & "!R1C12", "PivotTableCompil")
        PVT.PivotFields("DT").Orientation = xlRowField
        PVT.PivotFields("DT").Position = 1
        PVT.AddDataField PVT.PivotFields("A"), "Sum of A", xlSum
        PVT.AddDataField PVT.PivotFields("B"), "Sum of B", xlSum
        PVT.AddDataField PVT.PivotFields("C"), "Sum of C", xlSum
        PVT.AddDataField PVT.PivotFields("D"), "Sum of D", xlSum
        '...
        PVT.PivotFields("DT").AutoSort xlAscending, "DT"
    End Sub
    Alleï Bonjour chez vous!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour Mayekeul et merci infiniment pour ton retour.

    J'ai simplement une erreur 1004 au moment de la compilation sur la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(sh).Range("A2:J" & R).Copy
    As-tu une idée ?

    André17

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    oui, que vaux R a ce moment là?

    je suppose qu'il est égal à zéro

    et que donc la feuille ne contient pas de tableau commençant en A1...
    Alleï Bonjour chez vous!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ok parfait ça c'est réglé!

    Et maintenant j'ai la même erreur sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PVT.PivotFields("DT").Orientation = xlRowField
    Est-ce la même erreur?

    Merci encore

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    ben presque,

    je suppose que tu n'as pas de champs "DT" dans ta table pivot!
    et donc les noms de champs venant de la première feuille... ce champs ne doit pas y figurer non plus
    Alleï Bonjour chez vous!

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Il me met "impossible de lire la propriété PivotFields de la classe PivotTable"

  8. #8
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    voir ma précédente réponse
    Alleï Bonjour chez vous!

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Mai à quoi correspond le champ "DT" ?

  10. #10
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    dans mon exemple, c'est le nom de champs de la colonne des dates dans les différents tableaux
    Alleï Bonjour chez vous!

Discussions similaires

  1. [XL-2007] impression des tableaux sur une seule page par macro
    Par free_dom dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/06/2011, 11h21
  2. Réponses: 0
    Dernier message: 11/11/2010, 08h30
  3. [XL-2003] Compilation des données de plusieurs feuilles en une seule?
    Par USnico dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/11/2009, 18h08
  4. [XL-2007] Créer une boucle pour copie des tableaux de plusieurs feuilles sur une seule
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/09/2009, 17h12
  5. probleme de compilation des tableaux sous vista
    Par cesari dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 27/04/2008, 19h37

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