Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Historisation de données

3 réponses
Avatar
Abso
Bonjour =E0 tous.
voil=E0 mon probl=E8me que je cherche =E0 solutionner.

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

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

Comment faire pour qu'=E0 chaque fois que je r=E9actualise mon tableau
crois=E9 dynamique initial, je charge dans mon second onglet une ligne
qui va remplir mon tableau historique.

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

Merci par avance pour votre aide qui me serait tr=E8s utile.

Bien cordialement.

Abso.

3 réponses

Avatar
michdenis
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" a écrit dans le message de news:

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.
Avatar
michdenis
J'ai omis de déclarer ces variables

Dim X as Workbook , i as integer


"michdenis" a écrit dans le message de news:
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" a écrit dans le message de news:

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.
Avatar
Abso
On 13 août, 15:28, "michdenis" wrote:
J'ai omis de déclarer ces variables

Dim X as Workbook , i as integer

"michdenis" a écrit dans le message de news:
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" a écrit dans le message de news:

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.