Historisation de données

Le
Abso
Bonjour à tous.
voilà mon problème que je cherche à solutionner.

J'ai créer dans un classeur Excel un tableau croisé dynamique qui me
renvoie à chaque que je l'actualise un tableau tou simple avec deux
colonnes.
La première contient le nom d'un service, et la seconde le nombre de
personnes présentent.
Jusque là tout va bien.
Mon tableau est de la forme :
Service NbPersonne
Service1 15
Service2 25
Service3 2
.

Maintenant je souhaiterais sauvegarder dans un autre classeur de mon
fichier, à chaque fois que je réactualise mon tableau ces mêmes
données pour avoir l'historique des données.
Je souhaite avoir le tableau d'historisation suivant :
Date Service1 Service2 Service3 .
01/07/2008 10 20 2
01/08/2008 15 25 2
.

Comment faire pour qu'à chaque fois que je réactualise mon tableau
croisé dynamique initial, je charge dans mon second onglet une ligne
qui va remplir mon tableau historique.

N.B : J'ai remarqué aussi que lorsque il n'y a pas de valeur dans un
service mon tableau croisé dynamique ne me renvoie pas la ligne du
service.

Merci par avance pour votre aide qui me serait très utile.

Bien cordialement.

Abso.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #16538481
Dans ta feuille de destination, tu introduis ta ligne d'en-tête

Date Service1 Service2 Service3 ....


En dans le module feuille de ton classeur où tu actualise ton TDC,
tu copies ceci :

'--------------------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim CheminFichierDestination As String
Dim NomDuFichier As String

'à adapter
CheminFichierDestination = "c:exceltoday"
Nomfichier = "Denis1.xls"

Application.ScreenUpdating = False
If Target.Name = "Denis" Then
Set x = Workbooks.Open(CheminFichierDestination & Nomfichier)
With x.Worksheets("Feuil1")
ligne = .Range("A65536").End(xlUp)(2).Row
.Range("A" & ligne) = Date
'Tu indiques la plage où sont inscrits le
'nombre de personnes par service 'à adapter
Me.Range("D11:D14").Copy
'copie vers la feuille de destination
.Range("b" & ligne).PasteSpecial xlPasteValues, , , True
Application.CutCopyMode = False
End With
x.Close True
End If

End Sub
'--------------------------------------------

End Sub




"Abso"
Bonjour à tous.
voilà mon problème que je cherche à solutionner.

J'ai créer dans un classeur Excel un tableau croisé dynamique qui me
renvoie à chaque que je l'actualise un tableau tou simple avec deux
colonnes.
La première contient le nom d'un service, et la seconde le nombre de
personnes présentent.
Jusque là tout va bien.
Mon tableau est de la forme :
Service NbPersonne
Service1 15
Service2 25
Service3 2
... ....

Maintenant je souhaiterais sauvegarder dans un autre classeur de mon
fichier, à chaque fois que je réactualise mon tableau ces mêmes
données pour avoir l'historique des données.
Je souhaite avoir le tableau d'historisation suivant :
Date Service1 Service2 Service3 ....
01/07/2008 10 20 2 ...
01/08/2008 15 25 2 ...
... ... ... ....

Comment faire pour qu'à chaque fois que je réactualise mon tableau
croisé dynamique initial, je charge dans mon second onglet une ligne
qui va remplir mon tableau historique.

N.B : J'ai remarqué aussi que lorsque il n'y a pas de valeur dans un
service mon tableau croisé dynamique ne me renvoie pas la ligne du
service.

Merci par avance pour votre aide qui me serait très utile.

Bien cordialement.

Abso.
michdenis
Le #16538471
J'ai omis de déclarer ces variables

Dim X as Workbook , i as integer


"michdenis" e6xgmfU$
Dans ta feuille de destination, tu introduis ta ligne d'en-tête

Date Service1 Service2 Service3 ....


En dans le module feuille de ton classeur où tu actualise ton TDC,
tu copies ceci :

'--------------------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim CheminFichierDestination As String
Dim NomDuFichier As String

'à adapter
CheminFichierDestination = "c:exceltoday"
Nomfichier = "Denis1.xls"

Application.ScreenUpdating = False
If Target.Name = "Denis" Then
Set x = Workbooks.Open(CheminFichierDestination & Nomfichier)
With x.Worksheets("Feuil1")
ligne = .Range("A65536").End(xlUp)(2).Row
.Range("A" & ligne) = Date
'Tu indiques la plage où sont inscrits le
'nombre de personnes par service 'à adapter
Me.Range("D11:D14").Copy
'copie vers la feuille de destination
.Range("b" & ligne).PasteSpecial xlPasteValues, , , True
Application.CutCopyMode = False
End With
x.Close True
End If

End Sub
'--------------------------------------------

End Sub




"Abso"
Bonjour à tous.
voilà mon problème que je cherche à solutionner.

J'ai créer dans un classeur Excel un tableau croisé dynamique qui me
renvoie à chaque que je l'actualise un tableau tou simple avec deux
colonnes.
La première contient le nom d'un service, et la seconde le nombre de
personnes présentent.
Jusque là tout va bien.
Mon tableau est de la forme :
Service NbPersonne
Service1 15
Service2 25
Service3 2
... ....

Maintenant je souhaiterais sauvegarder dans un autre classeur de mon
fichier, à chaque fois que je réactualise mon tableau ces mêmes
données pour avoir l'historique des données.
Je souhaite avoir le tableau d'historisation suivant :
Date Service1 Service2 Service3 ....
01/07/2008 10 20 2 ...
01/08/2008 15 25 2 ...
... ... ... ....

Comment faire pour qu'à chaque fois que je réactualise mon tableau
croisé dynamique initial, je charge dans mon second onglet une ligne
qui va remplir mon tableau historique.

N.B : J'ai remarqué aussi que lorsque il n'y a pas de valeur dans un
service mon tableau croisé dynamique ne me renvoie pas la ligne du
service.

Merci par avance pour votre aide qui me serait très utile.

Bien cordialement.

Abso.
Abso
Le #16538941
On 13 août, 15:28, "michdenis"
J'ai omis de déclarer ces variables

Dim X as Workbook , i as integer

"michdenis" e6xgmfU$
Dans ta feuille de destination, tu introduis ta ligne d'en-tête

Date    Service1    Service2     Service3 ....

En dans le module feuille de ton classeur où tu actualise ton TDC,
tu copies ceci :

'--------------------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim CheminFichierDestination As String
Dim NomDuFichier As String

'à adapter
CheminFichierDestination = "c:exceltoday"
Nomfichier = "Denis1.xls"

Application.ScreenUpdating = False
    If Target.Name = "Denis" Then
        Set x = Workbooks.Open(CheminFichierDestination & Nomfi chier)
        With x.Worksheets("Feuil1")
            ligne = .Range("A65536").End(xlUp)(2).Row
            .Range("A" & ligne) = Date
            'Tu indiques la plage où sont inscrits le
            'nombre de personnes par service 'à adapter
            Me.Range("D11:D14").Copy
            'copie vers la feuille de destination
            .Range("b" & ligne).PasteSpecial xlPasteValues, , , True
            Application.CutCopyMode = False
        End With
        x.Close True
    End If

End Sub
'--------------------------------------------

End Sub

"Abso"
Bonjour à tous.
voilà mon problème que je cherche à solutionner.

J'ai créer dans un classeur Excel un tableau croisé dynamique qui me
renvoie à chaque que je l'actualise un tableau tou simple avec deux
colonnes.
La première contient le nom d'un service, et la seconde le nombre de
personnes présentent.
Jusque là tout va bien.
Mon tableau est de la forme :
Service NbPersonne
Service1 15
Service2 25
Service3 2
... ....

Maintenant je souhaiterais sauvegarder dans un autre classeur de mon
fichier, à chaque fois que je réactualise mon tableau ces mêmes
données pour avoir l'historique des données.
Je souhaite avoir le tableau d'historisation suivant :
Date Service1 Service2 Service3 ....
01/07/2008 10 20 2 ...
01/08/2008 15 25 2 ...
... ... ... ....

Comment faire pour qu'à chaque fois que je réactualise mon tableau
croisé dynamique initial, je charge dans mon second onglet une ligne
qui va remplir mon tableau historique.

N.B : J'ai remarqué aussi que lorsque il n'y a pas de valeur dans un
service mon tableau croisé dynamique ne me renvoie pas la ligne du
service.

Merci par avance pour votre aide qui me serait très utile.

Bien cordialement.

Abso.



Merci bcp Michel pour ton aide.
Je testerais dès demain matin ton code et te tiendrais au courant.
Bien cordialement.

Abso.
Publicité
Poster une réponse
Anonyme