OVH Cloud OVH Cloud

Redimension de la source du graphique

8 réponses
Avatar
Alain
Bonjour,

Une fonction crée un graphique à ligne brisée (illustrant le prix des
actions) sur chacune des 4 pages d'un document Excel. Les données sont
dans les colonnes A et B.

Une autre fonction crée un graphique à colonnes (illustrant le volume
d'actions échangées, et nommé: grVolume) sur les 4 mêmes pages. Les
données sont dans les colonnes A et C.

Jusqu'ici, tout va bien.

À mesure que des données sont ajoutées, j'utilise une troisièm fonction
qui met à jour la source du premier graphique de chaque page. Encore
parfait.
Ensuite une quatrième fonction met à jour les données du graphique des
volumes de chaque page. MAIS impossible de mettre à jour ce graphique
sur la PREMIÈRE page; la source des données de ce graphique reste
toujours la série des données utilisée lors de la création du graphique.
Aucune erreur dans l'exécution de la fonction. La mise à jour s'effectue
sans problème sur les autres pages.

Pourquoi? Comment corriger cette situation?

Merci.

Alain

Voici la fonction. Le paramètre d'appel est transmis correctement.

Public Function RedefSourceVolume(NomPage As String) As Boolean
' redéfinit (redimensionne) la source de données du graphique volume

Dim gr As ChartObject
Dim MinVolume, MaxVolume As Double
Dim volRange As Range
Dim MySheet As Worksheet
Dim ok As Boolean
Dim Nb, i As Integer
Dim txt As String

On Error GoTo errFonction
ok = True
Set MySheet = Worksheets(NomPage)
MySheet.Activate
MySheet.Range("a1").Activate
'Pour éviter que le graphique reste activé
Nb = Application.WorksheetFunction.CountA(Range("a:a"))
Set gr = MySheet.ChartObjects("grVolume")
'définition des valeurs max et min de l'ordonnée
Set volRange = MySheet.Range("C2:C" & Nb)
MinVolume = Application.WorksheetFunction.Min(volRange)
MaxVolume = Application.WorksheetFunction.Max(volRange)
With gr.Chart.Axes(xlValue)
.MinimumScale = 0.9 * MinVolume
.MaximumScale = 1.1 * MaxVolume
End With 'With .Axes(xlValue)
'redéfinition des données source; Nb a la bonne valeur
'mais ça ne change pas la série du graphique de la page 1
Set volRange = MySheet.Range("A1:A" & Nb, "C1:C" & Nb)
gr.Activate
gr.Chart.ChartArea.Select
gr.Chart.SetSourceData Source:=volRange, PlotBy:=xlColumns
gr.Chart.Refresh

Sortie:
RedefSourceVolume = ok
Exit Function

errFonction:
MsgBox ("Erreur no: " & Err.Number & vbCrLf _
& Err.Description)
ok = False
GoTo Sortie

End Function 'RedefSourceVolume

8 réponses

Avatar
Misange
Bonjour,
Si tu as besoin de mettre tes graphiques à jour à mesure que des données
sont ajoutées, pourquoi ne pas tout simplement définir tes séries de
données avec la fonction décaler ? De cette façon tout se fait
automatiquement, sans avoir à faire appel à une fonction. Tu trouveras
des exemples de cette utilisation de décaler sur la page graphiques
d'excelabo (graphique dynamique)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 01/04/2004 02:43:
Bonjour,

Une fonction crée un graphique à ligne brisée (illustrant le prix des
actions) sur chacune des 4 pages d'un document Excel. Les données sont
dans les colonnes A et B.

Une autre fonction crée un graphique à colonnes (illustrant le volume
d'actions échangées, et nommé: grVolume) sur les 4 mêmes pages. Les
données sont dans les colonnes A et C.

Jusqu'ici, tout va bien.

À mesure que des données sont ajoutées, j'utilise une troisièm fonction
qui met à jour la source du premier graphique de chaque page. Encore
parfait.
Ensuite une quatrième fonction met à jour les données du graphique des
volumes de chaque page. MAIS impossible de mettre à jour ce graphique
sur la PREMIÈRE page; la source des données de ce graphique reste
toujours la série des données utilisée lors de la création du graphique.
Aucune erreur dans l'exécution de la fonction. La mise à jour s'effectue
sans problème sur les autres pages.

Pourquoi? Comment corriger cette situation?

Merci.

Alain

Voici la fonction. Le paramètre d'appel est transmis correctement.

Public Function RedefSourceVolume(NomPage As String) As Boolean
' redéfinit (redimensionne) la source de données du graphique volume

Dim gr As ChartObject
Dim MinVolume, MaxVolume As Double
Dim volRange As Range
Dim MySheet As Worksheet
Dim ok As Boolean
Dim Nb, i As Integer
Dim txt As String

On Error GoTo errFonction
ok = True
Set MySheet = Worksheets(NomPage)
MySheet.Activate
MySheet.Range("a1").Activate
'Pour éviter que le graphique reste activé
Nb = Application.WorksheetFunction.CountA(Range("a:a"))
Set gr = MySheet.ChartObjects("grVolume")
'définition des valeurs max et min de l'ordonnée
Set volRange = MySheet.Range("C2:C" & Nb)
MinVolume = Application.WorksheetFunction.Min(volRange)
MaxVolume = Application.WorksheetFunction.Max(volRange)
With gr.Chart.Axes(xlValue)
.MinimumScale = 0.9 * MinVolume
.MaximumScale = 1.1 * MaxVolume
End With 'With .Axes(xlValue)
'redéfinition des données source; Nb a la bonne valeur
'mais ça ne change pas la série du graphique de la page 1
Set volRange = MySheet.Range("A1:A" & Nb, "C1:C" & Nb)
gr.Activate
gr.Chart.ChartArea.Select
gr.Chart.SetSourceData Source:=volRange, PlotBy:=xlColumns
gr.Chart.Refresh

Sortie:
RedefSourceVolume = ok
Exit Function

errFonction:
MsgBox ("Erreur no: " & Err.Number & vbCrLf _
& Err.Description)
ok = False
GoTo Sortie

End Function 'RedefSourceVolume



Avatar
Alain
Bonjour Misange Migrateuse,

Tu demandes: «pourquoi ne pas tout simplement définir tes séries de
données avec la fonction décaler ?» Pourquoi? Simplement parce que je ne
connaissais pas cette fonctionnalité. Merci de me l'avoir indiquée.

Cela me pose 2 autres questions:
* On vient de me signaler, sur ce forum, que «VBA parle anglais»; quel
est l'équivalent VBA de Décaler? (Offset?)

* la fonction que j'utilise doit mettre le graphique à jour en temps
réel (elle est appelée aux 30 secondes, quand de nouvelles données sont
ajoutées) et non pas seulement à l'ouverture du fichier. Est-ce que la
«Mise à jour automatique de graphique» proposée sur Excelabo permettra
que le graphique se tienne à jour continuellement en temps réel?

Merci de ta suggestion, et des infos d'Excelabo.

Alain

Misange a écrit:
Bonjour,
Si tu as besoin de mettre tes graphiques à jour à mesure que des données
sont ajoutées, pourquoi ne pas tout simplement définir tes séries de
données avec la fonction décaler ? De cette façon tout se fait
automatiquement, sans avoir à faire appel à une fonction. Tu trouveras
des exemples de cette utilisation de décaler sur la page graphiques
d'excelabo (graphique dynamique)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 01/04/2004 02:43:

Bonjour,

Une fonction crée un graphique à ligne brisée (illustrant le prix des
actions) sur chacune des 4 pages d'un document Excel. Les données sont
dans les colonnes A et B.

Une autre fonction crée un graphique à colonnes (illustrant le volume
d'actions échangées, et nommé: grVolume) sur les 4 mêmes pages. Les
données sont dans les colonnes A et C.

Jusqu'ici, tout va bien.

À mesure que des données sont ajoutées, j'utilise une troisièm
fonction qui met à jour la source du premier graphique de chaque page.
Encore parfait.
Ensuite une quatrième fonction met à jour les données du graphique des
volumes de chaque page. MAIS impossible de mettre à jour ce graphique
sur la PREMIÈRE page; la source des données de ce graphique reste
toujours la série des données utilisée lors de la création du
graphique. Aucune erreur dans l'exécution de la fonction. La mise à
jour s'effectue sans problème sur les autres pages.

Pourquoi? Comment corriger cette situation?

Merci.

Alain

Voici la fonction. Le paramètre d'appel est transmis correctement.

Public Function RedefSourceVolume(NomPage As String) As Boolean
' redéfinit (redimensionne) la source de données du graphique volume

Dim gr As ChartObject
Dim MinVolume, MaxVolume As Double
Dim volRange As Range
Dim MySheet As Worksheet
Dim ok As Boolean
Dim Nb, i As Integer
Dim txt As String

On Error GoTo errFonction
ok = True
Set MySheet = Worksheets(NomPage)
MySheet.Activate
MySheet.Range("a1").Activate
'Pour éviter que le graphique reste activé
Nb = Application.WorksheetFunction.CountA(Range("a:a"))
Set gr = MySheet.ChartObjects("grVolume")
'définition des valeurs max et min de l'ordonnée Set
volRange = MySheet.Range("C2:C" & Nb)
MinVolume = Application.WorksheetFunction.Min(volRange)
MaxVolume = Application.WorksheetFunction.Max(volRange)
With gr.Chart.Axes(xlValue)
.MinimumScale = 0.9 * MinVolume
.MaximumScale = 1.1 * MaxVolume
End With 'With .Axes(xlValue)
'redéfinition des données source; Nb a la bonne valeur
'mais ça ne change pas la série du graphique de la page 1
Set volRange = MySheet.Range("A1:A" & Nb, "C1:C" & Nb)
gr.Activate
gr.Chart.ChartArea.Select
gr.Chart.SetSourceData Source:=volRange, PlotBy:=xlColumns
gr.Chart.Refresh

Sortie:
RedefSourceVolume = ok
Exit Function

errFonction:
MsgBox ("Erreur no: " & Err.Number & vbCrLf _
& Err.Description)
ok = False
GoTo Sortie

End Function 'RedefSourceVolume





Avatar
Modeste
Bonsoir,
quelques DoEvents placés à bon escient
pourraient éventuellement etre utilisés.....

@+
-----Message d'origine-----
Bonjour Misange Migrateuse,

Tu demandes: «pourquoi ne pas tout simplement définir
tes séries de

données avec la fonction décaler ?» Pourquoi? Simplement
parce que je ne

connaissais pas cette fonctionnalité. Merci de me
l'avoir indiquée.


Cela me pose 2 autres questions:
* On vient de me signaler, sur ce forum, que «VBA parle
anglais»; quel

est l'équivalent VBA de Décaler? (Offset?)

* la fonction que j'utilise doit mettre le graphique à
jour en temps

réel (elle est appelée aux 30 secondes, quand de
nouvelles données sont

ajoutées) et non pas seulement à l'ouverture du fichier.
Est-ce que la

«Mise à jour automatique de graphique» proposée sur
Excelabo permettra

que le graphique se tienne à jour continuellement en
temps réel?


Merci de ta suggestion, et des infos d'Excelabo.

Alain

Misange a écrit:
Bonjour,
Si tu as besoin de mettre tes graphiques à jour à
mesure que des données


sont ajoutées, pourquoi ne pas tout simplement définir
tes séries de


données avec la fonction décaler ? De cette façon tout
se fait


automatiquement, sans avoir à faire appel à une
fonction. Tu trouveras


des exemples de cette utilisation de décaler sur la
page graphiques


d'excelabo (graphique dynamique)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 01/04/2004 02:43:

Bonjour,

Une fonction crée un graphique à ligne brisée
(illustrant le prix des



actions) sur chacune des 4 pages d'un document Excel.
Les données sont



dans les colonnes A et B.

Une autre fonction crée un graphique à colonnes
(illustrant le volume



d'actions échangées, et nommé: grVolume) sur les 4
mêmes pages. Les



données sont dans les colonnes A et C.

Jusqu'ici, tout va bien.

À mesure que des données sont ajoutées, j'utilise une
troisièm



fonction qui met à jour la source du premier
graphique de chaque page.



Encore parfait.
Ensuite une quatrième fonction met à jour les données
du graphique des



volumes de chaque page. MAIS impossible de mettre à
jour ce graphique



sur la PREMIÈRE page; la source des données de ce
graphique reste



toujours la série des données utilisée lors de la
création du



graphique. Aucune erreur dans l'exécution de la
fonction. La mise à



jour s'effectue sans problème sur les autres pages.

Pourquoi? Comment corriger cette situation?

Merci.

Alain

Voici la fonction. Le paramètre d'appel est transmis
correctement.




Public Function RedefSourceVolume(NomPage As String)
As Boolean



' redéfinit (redimensionne) la source de données du
graphique volume




Dim gr As ChartObject
Dim MinVolume, MaxVolume As Double
Dim volRange As Range
Dim MySheet As Worksheet
Dim ok As Boolean
Dim Nb, i As Integer
Dim txt As String

On Error GoTo errFonction
ok = True
Set MySheet = Worksheets(NomPage)
MySheet.Activate
MySheet.Range("a1").Activate
'Pour éviter que le graphique reste activé
Nb = Application.WorksheetFunction.CountA(Range
("a:a"))



Set gr = MySheet.ChartObjects("grVolume")
'définition des valeurs max et min de
l'ordonnée Set



volRange = MySheet.Range("C2:C" & Nb)
MinVolume = Application.WorksheetFunction.Min
(volRange)



MaxVolume = Application.WorksheetFunction.Max
(volRange)



With gr.Chart.Axes(xlValue)
.MinimumScale = 0.9 * MinVolume
.MaximumScale = 1.1 * MaxVolume
End With 'With .Axes(xlValue)
'redéfinition des données source; Nb a la bonne
valeur



'mais ça ne change pas la série du graphique de
la page 1



Set volRange = MySheet.Range("A1:A" & Nb, "C1:C"
& Nb)



gr.Activate
gr.Chart.ChartArea.Select
gr.Chart.SetSourceData Source:=volRange,
PlotBy:=xlColumns



gr.Chart.Refresh

Sortie:
RedefSourceVolume = ok
Exit Function

errFonction:
MsgBox ("Erreur no: " & Err.Number & vbCrLf _
& Err.Description)
ok = False
GoTo Sortie

End Function 'RedefSourceVolume




.





Avatar
Misange
Bonsoir Alain,
Tu n'as absolument pas besoin de passer par une macro pour utliser
décaler, tout au contraire. Dès que tes données seront updatées (à la
mimine ou avec un programme externe, peu importe, automatiquement ton
graphique se met à jour en continu.
Tu peux choisir de prendre toutes tes données depuis le début (la plage
de référence utlisée pour cosntruire le graphique augmente) ou tu peux
ne représenter que les 10 12 24 ou 400 dernières valeurs si ça t'arrange
(si tu as de nouvelles données toutes les 30 secondes, à la fin de la
journée ça fait un graphique à rallonge !)


Le principe est très simple : tu fais à la main un graphique pour
commencer. Dans ton classeur tu sélectionnes la zone (portion de ligne
ou colonne) contenant par exemple les valeurs des abscisses.
Insertion/nom/définir et là tu nommes ta série "mesabscisses" en collant
tout en bas à la place des références qui sont inscrites la fonction
décaler. Ca va donner un truc du genreÞcaler($A$1;;;nbval($A:$A) si
tes valeurs sont en colonne A. Tu peux tout de suite tester que si tu
rajoutes une valeur en dessous des autres dans cette colonne (pas de
vide !!!) le nom "mesabscisses" inclut tout de suite cette valeur dans
la zone de sélection. Tu fais de même pour tes valeurs de Y et ensuite
tu cliques-droit sur ton graphique, source de données et tu vas
remplacer les ref aux cellules d'origine par le nom de tes zones.
(détails sur excelabo). A partir de là, toute mise à jour sur ta feuille
entraine dans la milliseconde la mise à jour de ton graphique, sans
aucune macro.

Regarde aussi dans le lexique d'excel l'explication de la fonction
décaler et de ses paramètres. (Elle sert à des tas d'autres choses !
comme à faire des listes qui se mettent à jour toutes seules).

Bien plus rapide et stable qu'une macro, transposable sur toutes les
plateformes sans pb.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 01/04/2004 16:54:
Bonjour Misange Migrateuse,

Tu demandes: «pourquoi ne pas tout simplement définir tes séries de
données avec la fonction décaler ?» Pourquoi? Simplement parce que je ne
connaissais pas cette fonctionnalité. Merci de me l'avoir indiquée.

Cela me pose 2 autres questions:
* On vient de me signaler, sur ce forum, que «VBA parle anglais»; quel
est l'équivalent VBA de Décaler? (Offset?)

* la fonction que j'utilise doit mettre le graphique à jour en temps
réel (elle est appelée aux 30 secondes, quand de nouvelles données sont
ajoutées) et non pas seulement à l'ouverture du fichier. Est-ce que la
«Mise à jour automatique de graphique» proposée sur Excelabo permettra
que le graphique se tienne à jour continuellement en temps réel?

Merci de ta suggestion, et des infos d'Excelabo.

Alain

Misange a écrit:

Bonjour,
Si tu as besoin de mettre tes graphiques à jour à mesure que des
données sont ajoutées, pourquoi ne pas tout simplement définir tes
séries de données avec la fonction décaler ? De cette façon tout se
fait automatiquement, sans avoir à faire appel à une fonction. Tu
trouveras des exemples de cette utilisation de décaler sur la page
graphiques d'excelabo (graphique dynamique)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 01/04/2004 02:43:

Bonjour,

Une fonction crée un graphique à ligne brisée (illustrant le prix des
actions) sur chacune des 4 pages d'un document Excel. Les données
sont dans les colonnes A et B.

Une autre fonction crée un graphique à colonnes (illustrant le volume
d'actions échangées, et nommé: grVolume) sur les 4 mêmes pages. Les
données sont dans les colonnes A et C.

Jusqu'ici, tout va bien.

À mesure que des données sont ajoutées, j'utilise une troisièm
fonction qui met à jour la source du premier graphique de chaque
page. Encore parfait.
Ensuite une quatrième fonction met à jour les données du graphique
des volumes de chaque page. MAIS impossible de mettre à jour ce
graphique sur la PREMIÈRE page; la source des données de ce graphique
reste toujours la série des données utilisée lors de la création du
graphique. Aucune erreur dans l'exécution de la fonction. La mise à
jour s'effectue sans problème sur les autres pages.

Pourquoi? Comment corriger cette situation?

Merci.

Alain

Voici la fonction. Le paramètre d'appel est transmis correctement.

Public Function RedefSourceVolume(NomPage As String) As Boolean
' redéfinit (redimensionne) la source de données du graphique volume

Dim gr As ChartObject
Dim MinVolume, MaxVolume As Double
Dim volRange As Range
Dim MySheet As Worksheet
Dim ok As Boolean
Dim Nb, i As Integer
Dim txt As String

On Error GoTo errFonction
ok = True
Set MySheet = Worksheets(NomPage)
MySheet.Activate
MySheet.Range("a1").Activate
'Pour éviter que le graphique reste activé
Nb = Application.WorksheetFunction.CountA(Range("a:a"))
Set gr = MySheet.ChartObjects("grVolume")
'définition des valeurs max et min de l'ordonnée Set
volRange = MySheet.Range("C2:C" & Nb)
MinVolume = Application.WorksheetFunction.Min(volRange)
MaxVolume = Application.WorksheetFunction.Max(volRange)
With gr.Chart.Axes(xlValue)
.MinimumScale = 0.9 * MinVolume
.MaximumScale = 1.1 * MaxVolume
End With 'With .Axes(xlValue)
'redéfinition des données source; Nb a la bonne valeur
'mais ça ne change pas la série du graphique de la page 1
Set volRange = MySheet.Range("A1:A" & Nb, "C1:C" & Nb)
gr.Activate
gr.Chart.ChartArea.Select
gr.Chart.SetSourceData Source:=volRange, PlotBy:=xlColumns
gr.Chart.Refresh

Sortie:
RedefSourceVolume = ok
Exit Function

errFonction:
MsgBox ("Erreur no: " & Err.Number & vbCrLf _
& Err.Description)
ok = False
GoTo Sortie

End Function 'RedefSourceVolume








Avatar
Alain
Bonjour Misange Migrateuse,

Merci de toute cette information détaillée.

Vérification: Declaler devient Offset en VBA? (Je construis les
graphique en VBA par un appel OLE)

Alain


Misange a écrit:
Bonsoir Alain,
Tu n'as absolument pas besoin de passer par une macro pour utliser
décaler, tout au contraire. Dès que tes données seront updatées (à la
mimine ou avec un programme externe, peu importe, automatiquement ton
graphique se met à jour en continu.
Tu peux choisir de prendre toutes tes données depuis le début (la plage
de référence utlisée pour cosntruire le graphique augmente) ou tu peux
ne représenter que les 10 12 24 ou 400 dernières valeurs si ça t'arrange
(si tu as de nouvelles données toutes les 30 secondes, à la fin de la
journée ça fait un graphique à rallonge !)

...






Avatar
Misange
oui oui décaler = offset
Cela dit, pour éviter de tout reconstruire chaque fois, même si
aujourd'hui tu pars d'un classeur complètement vide au départ que tu
construis entièrement par requête OLE regarde si tu peux pas simplifier
le binz :
dans un classeur vide, tu mets des données bidon, tu mets en forme, tu
construis ton graphique, le fait zouli comme tu veux, nomme tes séries.
Ensuite tu effaces les données ayabnt servi à créer ce graphique bidon
(le graphique devient vide). Tu enregistres le tout comme modèle excel.
Avec ta requête, au moment de créer un classeur tu demandes que ce soit
à partir de ce modèle. Tu introduis simplement les données dans les
bonnes colonnes et roule ! Une fois le classeur créé, les requêtes
suivantes n'ont plus du tout besoin de recréer chaque fois les
graphiques, ce qui est facilement très long. Il suffit que les dites
requêtes ajoutent les nouvelles données sous les précédentes, c'est
tout. Mais j'ai surement pas toutes tes données en main.
Si t'es vraiment obligé de crééer à chaque requête (toutes les 30
secondes !) un nouveau classeur avec un nouveau graphique, alors decaler
ou offset ne te sert à rien.



Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 01/04/2004 20:57:
Bonjour Misange Migrateuse,

Merci de toute cette information détaillée.

Vérification: Declaler devient Offset en VBA? (Je construis les
graphique en VBA par un appel OLE)

Alain


Misange a écrit:

Bonsoir Alain,
Tu n'as absolument pas besoin de passer par une macro pour utliser
décaler, tout au contraire. Dès que tes données seront updatées (à la
mimine ou avec un programme externe, peu importe, automatiquement ton
graphique se met à jour en continu.
Tu peux choisir de prendre toutes tes données depuis le début (la
plage de référence utlisée pour cosntruire le graphique augmente) ou
tu peux ne représenter que les 10 12 24 ou 400 dernières valeurs si ça
t'arrange (si tu as de nouvelles données toutes les 30 secondes, à la
fin de la journée ça fait un graphique à rallonge !)

...










Avatar
Alain
Bonjour Misange,

Je ne recrée pas le graphique, je mets à jour les séries de données
...et sur la page 1, impossible: les séries d'UN des graphiques ne se
mettent jamais à jour.

Merci d'offrir le suivi!

Alain

Misange a écrit:
oui oui décaler = offset
Cela dit, pour éviter de tout reconstruire chaque fois, même si
aujourd'hui tu pars d'un classeur complètement vide au départ que tu
construis entièrement par requête OLE regarde si tu peux pas simplifier
le binz :
dans un classeur vide, tu mets des données bidon, tu mets en forme, tu
construis ton graphique, le fait zouli comme tu veux, nomme tes séries.
Ensuite tu effaces les données ayabnt servi à créer ce graphique bidon
(le graphique devient vide). Tu enregistres le tout comme modèle excel.
Avec ta requête, au moment de créer un classeur tu demandes que ce soit
à partir de ce modèle. Tu introduis simplement les données dans les
bonnes colonnes et roule ! Une fois le classeur créé, les requêtes
suivantes n'ont plus du tout besoin de recréer chaque fois les
graphiques, ce qui est facilement très long. Il suffit que les dites
requêtes ajoutent les nouvelles données sous les précédentes, c'est
tout. Mais j'ai surement pas toutes tes données en main.
Si t'es vraiment obligé de crééer à chaque requête (toutes les 30
secondes !) un nouveau classeur avec un nouveau graphique, alors decaler
ou offset ne te sert à rien.



Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 01/04/2004 20:57:

Bonjour Misange Migrateuse,

Merci de toute cette information détaillée.

Vérification: Declaler devient Offset en VBA? (Je construis les
graphique en VBA par un appel OLE)

Alain


Misange a écrit:

Bonsoir Alain,
Tu n'as absolument pas besoin de passer par une macro pour utliser
décaler, tout au contraire. Dès que tes données seront updatées (à la
mimine ou avec un programme externe, peu importe, automatiquement ton
graphique se met à jour en continu.
Tu peux choisir de prendre toutes tes données depuis le début (la
plage de référence utlisée pour cosntruire le graphique augmente) ou
tu peux ne représenter que les 10 12 24 ou 400 dernières valeurs si
ça t'arrange (si tu as de nouvelles données toutes les 30 secondes, à
la fin de la journée ça fait un graphique à rallonge !)

...












Avatar
Misange
envoie moi un petit bout de ton classeur avec un graphe qui se met à
jour et l'autre pas si c'est pas confidentiel, j'essaierai de regarder
ça ce soir

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 02/04/2004 17:02:
Bonjour Misange,

Je ne recrée pas le graphique, je mets à jour les séries de données
...et sur la page 1, impossible: les séries d'UN des graphiques ne se
mettent jamais à jour.

Merci d'offrir le suivi!

Alain

Misange a écrit:

oui oui décaler = offset
Cela dit, pour éviter de tout reconstruire chaque fois, même si
aujourd'hui tu pars d'un classeur complètement vide au départ que tu
construis entièrement par requête OLE regarde si tu peux pas
simplifier le binz :
dans un classeur vide, tu mets des données bidon, tu mets en forme, tu
construis ton graphique, le fait zouli comme tu veux, nomme tes
séries. Ensuite tu effaces les données ayabnt servi à créer ce
graphique bidon (le graphique devient vide). Tu enregistres le tout
comme modèle excel. Avec ta requête, au moment de créer un classeur tu
demandes que ce soit à partir de ce modèle. Tu introduis simplement
les données dans les bonnes colonnes et roule ! Une fois le classeur
créé, les requêtes suivantes n'ont plus du tout besoin de recréer
chaque fois les graphiques, ce qui est facilement très long. Il suffit
que les dites requêtes ajoutent les nouvelles données sous les
précédentes, c'est tout. Mais j'ai surement pas toutes tes données en
main.
Si t'es vraiment obligé de crééer à chaque requête (toutes les 30
secondes !) un nouveau classeur avec un nouveau graphique, alors
decaler ou offset ne te sert à rien.



Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 01/04/2004 20:57:

Bonjour Misange Migrateuse,

Merci de toute cette information détaillée.

Vérification: Declaler devient Offset en VBA? (Je construis les
graphique en VBA par un appel OLE)

Alain


Misange a écrit:

Bonsoir Alain,
Tu n'as absolument pas besoin de passer par une macro pour utliser
décaler, tout au contraire. Dès que tes données seront updatées (à
la mimine ou avec un programme externe, peu importe, automatiquement
ton graphique se met à jour en continu.
Tu peux choisir de prendre toutes tes données depuis le début (la
plage de référence utlisée pour cosntruire le graphique augmente) ou
tu peux ne représenter que les 10 12 24 ou 400 dernières valeurs si
ça t'arrange (si tu as de nouvelles données toutes les 30 secondes,
à la fin de la journée ça fait un graphique à rallonge !)

...