OVH Cloud OVH Cloud

probleme de macro sur excel 2000

7 réponses
Avatar
sandrine.le-coguic
Ma macro doit activer une graphique poour l'instant rien
de bien complique
mais je n'arrive pas a inserer une zone de texte dans ce
graphique actif
cette zone de texte doit contenir divers commentaires que
l'on doit pouvoir incrementer quand on veut et sans
effacer les commentaires deja existants
merci de votre aide je patoge vraiment!!!!
sandrine

7 réponses

Avatar
FxM
Bonjour Sandrine,

mon enregistreur de macro m'a cafté ce qui suit :

Sub Macro1()
Range("A1:B4").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.Shapes.AddShape(msoShapeRectangle, 45#, 28.5, _
102#, 47.25).Select
Selection.Characters.Text = "Zone de texte 1"
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:).Font
.Name = "Times New Roman"
.FontStyle = "Normal"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveChart.ChartArea.Select
End Sub

@+
FxM


wrote:

Ma macro doit activer une graphique poour l'instant rien
de bien complique
mais je n'arrive pas a inserer une zone de texte dans ce
graphique actif
cette zone de texte doit contenir divers commentaires que
l'on doit pouvoir incrementer quand on veut et sans
effacer les commentaires deja existants
merci de votre aide je patoge vraiment!!!!
sandrine


Avatar
Merci ca marche mais nouveau probleme
j'aurai aime que ma macro insere dans cette zone de texte
une serie de cellule de ma feuille active
2eme question
comment repositionner le cadre legende de mon graphique
qui se met automatiquement au milieu de la partie droite
du graphique
merci de votre aide
sandrine
-----Message d'origine-----
Bonjour Sandrine,

mon enregistreur de macro m'a cafté ce qui suit :

Sub Macro1()
Range("A1:B4").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range
("A1:B4"), _

PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject,
Name:="Feuil1"

With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.Shapes.AddShape(msoShapeRectangle, 45#,
28.5, _

102#, 47.25).Select
Selection.Characters.Text = "Zone de texte 1"
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:).Font
.Name = "Times New Roman"
.FontStyle = "Normal"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveChart.ChartArea.Select
End Sub

@+
FxM


wrote:

Ma macro doit activer une graphique poour l'instant
rien


de bien complique
mais je n'arrive pas a inserer une zone de texte dans
ce


graphique actif
cette zone de texte doit contenir divers commentaires
que


l'on doit pouvoir incrementer quand on veut et sans
effacer les commentaires deja existants
merci de votre aide je patoge vraiment!!!!
sandrine


.




Avatar
FxM
Bonsoir Sandrine,

Autant te dire que j'ai une très nette préférence pour les questions à
peu près complètes dès le début plutôt que pour les questions à tiroir ;o)

j'aurai aimé que ma macro insère dans cette zone de texte
une série de cellule de ma feuille active


Tu pourrais remplacer
Selection.Characters.Text = "Zone de texte 1"
par
texte = range("A1").value & " --- " & range("B2").value
Selection.Characters.Text = texte

Si c'est pour reproduire les valeurs, tu as aussi les tables de données :
Sub Macro3()
ActiveChart.HasDataTable = True
ActiveChart.DataTable.ShowLegendKey = False
End Sub

Mais ne compte pas mettre dans la zone de texte une copie directe des
données originales avec les cellules et tout et tout ;o)


2eme question
comment repositionner le cadre legende de mon graphique
qui se met automatiquement au milieu de la partie droite
du graphique


L'enregistreur de macro est ton ami ;o) Le mien m'a cafté:
Sub Macro2()
ActiveChart.Legend.Select
Selection.Top = 5
End Sub

que tu peux contracter en
Sub Macro2()
ActiveChart.Legend.Top = 5
End Sub

S'il y a des amateurs (amateuses ;o) pour rappeler en quelles unités
Excel travaille, je suis preneur ...

@+
FxM

Avatar
Je n'arrive pas a faire fonctionner ma premiere question
merci pour la reponse de la 2eme ca marche
je vais essayer d'etre un peu plus claire sur l'enonce de
mon probleme :
j'ai une macro .xls a faire (ca tu l'avais compris)
dans une feuille 1 une personne doit rentrer des donnees
et par une macro en faire un graphique sur une nouvelle
feuille
il doit avoir la possibilites de rentre au fur et mesure
divers commentaires donc
j'ai selectionne dans ma feuille 1 une plage de cellule
pour lui permettre de rentre ses commentaires
quand il active la macro ils doivent s'inserer a cote du
graphique
j'espere pouvoir trouver une macro qui me permette de
mettre a jour le cadre commentaire du graphique
mais pour l'instant la macro ne veut pas executer ta
formule!!!!
merci encore de ton aide
sandrine
PS quelles sont tes sources pour trouver des reponses a
mes questions (tu l'auras compris on m'a donne une macro a
faire mais je n'ai JAMAIS fais de visual basic)
-----Message d'origine-----
Bonsoir Sandrine,

Autant te dire que j'ai une très nette préférence pour
les questions à

peu près complètes dès le début plutôt que pour les
questions à tiroir ;o)


j'aurai aimé que ma macro insère dans cette zone de
texte


une série de cellule de ma feuille active


Tu pourrais remplacer
Selection.Characters.Text = "Zone de texte 1"
par
texte = range("A1").value & " --- " & range("B2").value
Selection.Characters.Text = texte

Si c'est pour reproduire les valeurs, tu as aussi les
tables de données :

Sub Macro3()
ActiveChart.HasDataTable = True
ActiveChart.DataTable.ShowLegendKey = False
End Sub

Mais ne compte pas mettre dans la zone de texte une copie
directe des

données originales avec les cellules et tout et tout ;o)


2eme question
comment repositionner le cadre legende de mon graphique
qui se met automatiquement au milieu de la partie
droite


du graphique


L'enregistreur de macro est ton ami ;o) Le mien m'a cafté:
Sub Macro2()
ActiveChart.Legend.Select
Selection.Top = 5
End Sub

que tu peux contracter en
Sub Macro2()
ActiveChart.Legend.Top = 5
End Sub

S'il y a des amateurs (amateuses ;o) pour rappeler en
quelles unités

Excel travaille, je suis preneur ...

@+
FxM

.




Avatar
Michel Gaboly
Bonjour,

Voici une réponse datant d'hier après-midi, qui apparem-
ment n'est jamais arrivée sur le serveur ;-((

Bonsoir,

En ce qui concerne une zone de texte, elle ne peut pas contenir
de cellule ; une zone de texte est destinée uniquement à affi-
cher du texte, qui se superpose à des cellules ou un graphique.

Le seul intérêt d'une zone de texte est de ne pas avoir les
contraintes de taille, position ou longueur du texte qui s'imposent
aux cellules.

La seule possibilité est de combiner le contenu de plusieurs cellules
avec l'opérateur de concaténation ("&") et/ou des sauts de lignes.
Dans tous les cas, le texte sera figé et ne se mettra pas à jour lors-
que le contenu des cellules sera modifié, sauf en gérant l événement
Change de la feuille pour reconstituer le bon texte quand la valeur
de l'une de ces cellules est modifiée.

Quant à la légende, ul suffit de rajouter cette ligne au code :

ActiveChart.Legend.Position = xlBottom

en utilisant l'ine des 5 valeurs possibles pour la position de la
légende (xlBottom, xlTop, xlLeft, xlRight, xlCorner)




Merci ca marche mais nouveau probleme
j'aurai aime que ma macro insere dans cette zone de texte
une serie de cellule de ma feuille active
2eme question
comment repositionner le cadre legende de mon graphique
qui se met automatiquement au milieu de la partie droite
du graphique
merci de votre aide
sandrine
-----Message d'origine-----
Bonjour Sandrine,

mon enregistreur de macro m'a cafté ce qui suit :

Sub Macro1()
Range("A1:B4").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range
("A1:B4"), _

PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject,
Name:="Feuil1"

With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.Shapes.AddShape(msoShapeRectangle, 45#,
28.5, _

102#, 47.25).Select
Selection.Characters.Text = "Zone de texte 1"
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:).Font
.Name = "Times New Roman"
.FontStyle = "Normal"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveChart.ChartArea.Select
End Sub

@+
FxM


wrote:

Ma macro doit activer une graphique poour l'instant
rien


de bien complique
mais je n'arrive pas a inserer une zone de texte dans
ce


graphique actif
cette zone de texte doit contenir divers commentaires
que


l'on doit pouvoir incrementer quand on veut et sans
effacer les commentaires deja existants
merci de votre aide je patoge vraiment!!!!
sandrine


.





Je n'arrive pas a faire fonctionner ma premiere question
merci pour la reponse de la 2eme ca marche
je vais essayer d'etre un peu plus claire sur l'enonce de
mon probleme :
j'ai une macro .xls a faire (ca tu l'avais compris)
dans une feuille 1 une personne doit rentrer des donnees
et par une macro en faire un graphique sur une nouvelle
feuille
il doit avoir la possibilites de rentre au fur et mesure
divers commentaires donc
j'ai selectionne dans ma feuille 1 une plage de cellule
pour lui permettre de rentre ses commentaires
quand il active la macro ils doivent s'inserer a cote du
graphique
j'espere pouvoir trouver une macro qui me permette de
mettre a jour le cadre commentaire du graphique
mais pour l'instant la macro ne veut pas executer ta
formule!!!!
merci encore de ton aide
sandrine
PS quelles sont tes sources pour trouver des reponses a
mes questions (tu l'auras compris on m'a donne une macro a
faire mais je n'ai JAMAIS fais de visual basic)
-----Message d'origine-----
Bonsoir Sandrine,

Autant te dire que j'ai une très nette préférence pour
les questions à

peu près complètes dès le début plutôt que pour les
questions à tiroir ;o)


j'aurai aimé que ma macro insère dans cette zone de
texte


une série de cellule de ma feuille active


Tu pourrais remplacer
Selection.Characters.Text = "Zone de texte 1"
par
texte = range("A1").value & " --- " & range("B2").value
Selection.Characters.Text = texte

Si c'est pour reproduire les valeurs, tu as aussi les
tables de données :

Sub Macro3()
ActiveChart.HasDataTable = True
ActiveChart.DataTable.ShowLegendKey = False
End Sub

Mais ne compte pas mettre dans la zone de texte une copie
directe des

données originales avec les cellules et tout et tout ;o)


2eme question
comment repositionner le cadre legende de mon graphique
qui se met automatiquement au milieu de la partie
droite


du graphique


L'enregistreur de macro est ton ami ;o) Le mien m'a cafté:
Sub Macro2()
ActiveChart.Legend.Select
Selection.Top = 5
End Sub

que tu peux contracter en
Sub Macro2()
ActiveChart.Legend.Top = 5
End Sub

S'il y a des amateurs (amateuses ;o) pour rappeler en
quelles unités

Excel travaille, je suis preneur ...

@+
FxM

.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
FxM
Bonsoir Sandrine,

Ne crois pas que l'on ait le code inné. Si l'expérience finit par
donner quelques pistes priviliégiées et des voies plus rapides,
beaucoup utilisent l'enregistreur de macro pour avoir une base. Son
inconvénient majeur est de devoir épurer le code car il y a beaucoup
de lignes qui ne servent à rien.

Pour l'enregistreur de macro : outils | macro | nouvelle macro. Fais
ce que tu veux puis stoppe l'enregistrement. Pour le résultat, outils
| macro | visual basic editor ou Alt-F11. Dans le cadre en haut à
gauche, tu vois les projets (fichiers) ainsi que les feuilles contenues.
Double-clic gauche sur la feuille où tu as tes données et donc où tu
veux mettre le graphique.
Dans le grand cadre vide à droite, copie le code.

Tu peux (un minimum) configurer les cadres que tu souhaites voir. Un
qui est important est "variables locales". Pour afficher un cadre,
c'est le menu 'affichage'. Si tu fais executer ta macro en pas à pas
(par pression sur F8), tu peux voir évoluer le contenu des variables.
Pour continuer jusqu'au bout une macro lancée en pas à pas, presse F5.
Et il y a une instruction qui stoppe la macro et attend, c'est ...
stop ;o)

Pour créer le graphique :
sub cree()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4"),_
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
'la ligne précédente indique de placer le graphe sur une autre feuille
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With

'pour ajouter une zone de texte (=rectangle)
ActiveChart.Shapes.AddShape(msoShapeRectangle, 45#, 28.5, _
102#, 47.25).Select

'pour remplir le rectangle avec ce que l'on veut
ActiveChart.Shapes("Rectangle 1").DrawingObject.Text = "hello"
End Sub

Voilà, voila

@+
FxM
Avatar
FxM
Re-bonsoir,

En autre source d'infos, tu as google http://www.google.fr et plus
particluièrement google_groups qui contient les archives de forum
http://www.google.fr/advanced_group_search?num0&hl=fr&lr=&ie=UTF-8&oe=UTF-8&scoring=d

En guise de groupe, entre *fr.excel pour avoir les archives de ce
groupe. Un ou plusieurs mots-clé et zou ;o))

On ne compte plus les sites ... Une recherche multi-site :
http://www.excelabo.net/moteurs/exceliens.php

@+
FxM



FxM a écrit:

Bonsoir Sandrine,

Ne crois pas que l'on ait le code inné. Si l'expérience finit par donner
quelques pistes priviliégiées et des voies plus rapides, beaucoup
utilisent l'enregistreur de macro pour avoir une base. Son inconvénient
majeur est de devoir épurer le code car il y a beaucoup de lignes qui ne
servent à rien.

Pour l'enregistreur de macro : outils | macro | nouvelle macro. Fais ce
que tu veux puis stoppe l'enregistrement. Pour le résultat, outils |
macro | visual basic editor ou Alt-F11. Dans le cadre en haut à gauche,
tu vois les projets (fichiers) ainsi que les feuilles contenues.
Double-clic gauche sur la feuille où tu as tes données et donc où tu
veux mettre le graphique.
Dans le grand cadre vide à droite, copie le code.

Tu peux (un minimum) configurer les cadres que tu souhaites voir. Un qui
est important est "variables locales". Pour afficher un cadre, c'est le
menu 'affichage'. Si tu fais executer ta macro en pas à pas (par
pression sur F8), tu peux voir évoluer le contenu des variables. Pour
continuer jusqu'au bout une macro lancée en pas à pas, presse F5. Et il
y a une instruction qui stoppe la macro et attend, c'est ... stop ;o)

Pour créer le graphique :
sub cree()
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4"),_
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
'la ligne précédente indique de placer le graphe sur une autre feuille
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With

'pour ajouter une zone de texte (=rectangle)
ActiveChart.Shapes.AddShape(msoShapeRectangle, 45#, 28.5, _
102#, 47.25).Select

'pour remplir le rectangle avec ce que l'on veut
ActiveChart.Shapes("Rectangle 1").DrawingObject.Text = "hello"
End Sub

Voilà, voila

@+
FxM