Comment extraire des données d'un TCD

Belsebou

XLDnaute Nouveau
Bonjour a vous,
Voici mon problème:
j'ai un TCD qui me donne par "exploitation" le nombre d'intervention réalisées
je souhaite récupérer ces données pour connaitre le solde des interventions par exploitation (=crédit d'intervention-intervention réalisées) et remettre à jour un tableau listant l'ensemble de mes exploitations (avec les crédits, les réalisées et le solde)
avez-vous une solution à me proposer?
d'avance merci
 

Épaf

XLDnaute Occasionnel
Re : Comment extraire des données d'un TCD

Bonjour Belsebou,
Tu veux faire ça par macro ou par formule ?
Par macro, je te conseille l'aide en ligne à "PivotFields, collection d'objets"
Par formule, bhbh t'en dira plus que moi ;)
Bonne journée
 

Belsebou

XLDnaute Nouveau
Re : Comment extraire des données d'un TCD

merci pour votre réponse rapide
j'ai supprimer quelques onglets afin d'obtenir un fichier à la bonne taille pour les pièces jointes...
12 onglets de janvier à décembre dans lesquels j'enregistre mes maintenances sur sites.
1 onglet "tableau de bord détail" composé de 12 TCD reprenant les infos de chacun des 12 onglets mensuels.
1 onglet "tableau de bord annuel" composé de 1 TCD qui va chercher dans les 12 TCD de l'onglet précédent.
et pour finir 1 onglet "périmètres clients" qui me sert de base pour remplir certains champs des tableau mensuels.
mon problème:
appeler sur un onglet mensuel, une exploitation et connaitre le solde d'intervention.
depuis ce matin j'ai l'impression d'avoir avancé pas forcément par la méthode la plus rapide, mais j'ai fait avec mes connaissances.
j'ai tenté une approche avec la formule rechercheV qui semble fonctionner.
mon souci maintenant est de ne pas mettre à jour le solde des interventions dans les onglets des mois passés!
merci de vous pencher sur le problème...
 

Pièces jointes

  • Copie X de Suivi déplacements et maintenance CGF 2007.zip
    43.4 KB · Affichages: 63

Épaf

XLDnaute Occasionnel
Re : Comment extraire des données d'un TCD

Bonjour Balsebou,
mon souci maintenant est de ne pas mettre à jour le solde des interventions dans les onglets des mois passés!
Je n'ai pas la solution Excel, par contre, en VBA, à l'ouverture du classeur, tu peux demander ou interdire une mise à jour feuille par feuille avec EnableCalculation
L'aide en ligne à dit:
Cette propriété a la valeur True si Microsoft Excel recalcule automatiquement la feuille de calcul quand cela est nécessaire. Elle a la valeur False si Excel ne recalcule pas la feuille. Type de données Boolean en lecture-écriture.

Note
Quand la valeur de cette propriété est False, vous ne pouvez pas demander un recalcul. Quand vous changez la valeur de cette propriété, de False en True, Microsoft Excel recalcule la feuille de calcul.

Exemple
Cet exemple montre comment définir Microsoft Excel pour qu'il ne recalcule pas la feuille 1 automatiquement.

Worksheets(1).EnableCalculation = False
Autres exemples d'application :

Si tu veux qu'aucune des feuilles ouvertes ne soit calculée à l'ouverture du fichier
Code:
Private Sub Workbook_Open()
Application.EnableEvents = True
Dim LaFeuille as Worksheet
    For Each LaFeuille In ThisWorkbook.Worksheets
        LaFeuille.EnableCalculation = False
    Next
End Sub

Si tu veux que la dernière feuille ou une feuille précise puisse être calculée
Code:
Private Sub Workbook_Open()
Application.EnableEvents = True
Dim LaFeuille as Worksheet, nbFeuilles as byte
Dim i as byte
    NbFeuilles = ThisWorkbook.Worksheets.Count
    For i = 1 To NbFeuilles
        if not Sheets(i).name = "Feuil2" then _
            Sheets(i).EnableCalculation = False
    Next
    'ou pour autoriser le re-calcul de la dernière feuille
    Sheets(nbFeuilles).EnableCalculation = True
End Sub
Il est également possible qu'Application.EnableEvents suffise à désactiver la mise à jour (à tester) dans chacun des événements d'ouverture ou de fermeture du classeur. Auquel cas, toutes les feuilles seront concernées.
Code:
Private Sub Workbook_Open()
Application.EnableEvents = False
End sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
End Sub
Comme je l'ai dit, cela reste à tester.
Bonne journée
 

Dan

XLDnaute Barbatruc
Re : Comment extraire des données d'un TCD

Bonjour,

Suis ce lien et télécharge le fichier qui te donnera mes explications pour ce que tu veux faire

https://www.excel-downloads.com/res...ees-tabcroisdynamique-getpivotdata-v1-02.100/

A te lire

Dan

Edition : Epaf, Il faut absolument remettre cette option à TRUE en fermant le fichier sans quoi tes macros événementielles ne fonctionneront plus à l'ouverture de n'importe quel fichier.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = [B]TRUE[/B]
End Sub
Et là, à l'ouverture d'un fichier quelconque, la macro événementielle workbook open ne fonctionnera pas, donc pas de remise à TRUE non plus.

Edition 2 : pour la macro Sub actualisationtotale(), remplace la par celle ci-dessous. De cette sorte tous tes TCD seront mis à jour plus rapidement.
Code:
Sub actualisationtotale()
ThisWorkbook.RefreshAll
End Sub
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
124

Statistiques des forums

Discussions
312 237
Messages
2 086 488
Membres
103 233
dernier inscrit
Ange.wil