OVH Cloud OVH Cloud

[VBA] recuperer l'equation d'une droite de regression dans une cellule

2 réponses
Avatar
twinley
Bonjour à tous,

J'ai une équation de droite de régression dans un graphique.
Les coef a et b sont différent de la méthode ci dessous :

sélection de D1:E1 et entrer la formule =DROITEREG(Y;X) et valider par
Ctrl+Majuscule+Entrée
Y : plage des Y
X : plage des X

Il faut dire que mes plages sont dynamiques et sont des noms définis. Cette
méthode par la fonction semble avoir ces limites dans ce cas...
Donc je dois attraper la formule dans le graphique et la copier dans une
cellule.
Avec l'enregistreur de macro j'ai :

ActiveSheet.ChartObjects("Graphique 1m").Activate
ActiveChart.SeriesCollection(4).Trendlines(1).DataLabel.Select
ActiveWindow.Visible = False
Windows("flux.xls").Activate
Range("F3").Select
ActiveSheet.Paste

Je bute sur le paste de la dernière ligne. XL refuse. J'ai essayé le paste
ordinaire, le spécial en unicode et en texte. Toujours pareil.
Je n'arrive pas à coller le contenu du buffer dans une cellule F3 du
sheets("Graph1"). J'ai mis les chemins complets mais l'erreur 1004 est là.
"La méthode paste de la classe Worksheet à échoué" alors que c'est issu de
l'enregistreur.
Cette manip marche à la main mais pas en macro.

Merci pour votre aide
-- à+twinley

2 réponses

Avatar
Nicolas B.
Salut twinley,

L'enregistreur de macros n'a pas récupéré toutes tes manoeuvres : la
copie du texte du Label n'est pas enregistrée (il est seulement
sélectionné). Excel arrive donc au Paste avec un presse-papiers vide, et
ça plante.

Récupère le texte du label sans utiliser de Copy/Paste :
Valeur = ActiveSheet.ChartObjects("Graphique 1m").Chart _
.SeriesCollection(4).Trendlines(1).DataLabel.Text


A+
Nicolas B.


twinley wrote:
Bonjour à tous,

J'ai une équation de droite de régression dans un graphique.
Les coef a et b sont différent de la méthode ci dessous :

sélection de D1:E1 et entrer la formule =DROITEREG(Y;X) et valider par
Ctrl+Majuscule+Entrée
Y : plage des Y
X : plage des X

Il faut dire que mes plages sont dynamiques et sont des noms définis. Cette
méthode par la fonction semble avoir ces limites dans ce cas...
Donc je dois attraper la formule dans le graphique et la copier dans une
cellule.
Avec l'enregistreur de macro j'ai :

ActiveSheet.ChartObjects("Graphique 1m").Activate
ActiveChart.SeriesCollection(4).Trendlines(1).DataLabel.Select
ActiveWindow.Visible = False
Windows("flux.xls").Activate
Range("F3").Select
ActiveSheet.Paste

Je bute sur le paste de la dernière ligne. XL refuse. J'ai essayé le paste
ordinaire, le spécial en unicode et en texte. Toujours pareil.
Je n'arrive pas à coller le contenu du buffer dans une cellule F3 du
sheets("Graph1"). J'ai mis les chemins complets mais l'erreur 1004 est là.
"La méthode paste de la classe Worksheet à échoué" alors que c'est issu de
l'enregistreur.
Cette manip marche à la main mais pas en macro.

Merci pour votre aide
-- à+twinley




Avatar
twinley
Merci beaucoup Nicolas.
J'avais remarqué, mais comme cela marchait à la main en mode capture, j'ai
pas imaginé que ce n'était pas dans le buffer.
Tu me sauves la vie...
--
à+twinley
"Nicolas B." a écrit dans le message
de news:
Salut twinley,

L'enregistreur de macros n'a pas récupéré toutes tes manoeuvres : la
copie du texte du Label n'est pas enregistrée (il est seulement
sélectionné). Excel arrive donc au Paste avec un presse-papiers vide, et
ça plante.

Récupère le texte du label sans utiliser de Copy/Paste :
Valeur = ActiveSheet.ChartObjects("Graphique 1m").Chart _
.SeriesCollection(4).Trendlines(1).DataLabel.Text


A+
Nicolas B.


twinley wrote:
Bonjour à tous,

J'ai une équation de droite de régression dans un graphique.
Les coef a et b sont différent de la méthode ci dessous :

sélection de D1:E1 et entrer la formule =DROITEREG(Y;X) et valider par
Ctrl+Majuscule+Entrée
Y : plage des Y
X : plage des X

Il faut dire que mes plages sont dynamiques et sont des noms définis.
Cette


méthode par la fonction semble avoir ces limites dans ce cas...
Donc je dois attraper la formule dans le graphique et la copier dans une
cellule.
Avec l'enregistreur de macro j'ai :

ActiveSheet.ChartObjects("Graphique 1m").Activate
ActiveChart.SeriesCollection(4).Trendlines(1).DataLabel.Select
ActiveWindow.Visible = False
Windows("flux.xls").Activate
Range("F3").Select
ActiveSheet.Paste

Je bute sur le paste de la dernière ligne. XL refuse. J'ai essayé le
paste


ordinaire, le spécial en unicode et en texte. Toujours pareil.
Je n'arrive pas à coller le contenu du buffer dans une cellule F3 du
sheets("Graph1"). J'ai mis les chemins complets mais l'erreur 1004 est
là.


"La méthode paste de la classe Worksheet à échoué" alors que c'est issu
de


l'enregistreur.
Cette manip marche à la main mais pas en macro.

Merci pour votre aide
-- à+twinley