Probleme de shapes avec 2007

Le
Alain
Bonjour à tous,

Sous excel 2003 j'ai construit un code permettant d'analyser des
informations chiffrées en positionnant en regard de chaque information
une shape (un rectangle en l'occurence) de longueur proportionnelle à
la valeur analysée

Autrement dit mon code permettait d'arriver à une représentation de
graphique en barre directement sur la feuille, sans passer par une
fonction graphique

Ce procédé est extremement pratique, rapide, et peu gourmand en
mémoire, par ailleurs le temps de réalisation restait très
raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
shapes)

Passage sous 2007 : le même code que celui employé sous 2003 se
déroule TRES LENTEMENT et pratiquement s'arrete au bout d'une
cinquantaine de shapes.

Si quelqu'un a une idée ! il aura ma reconnaissance
éternelle !

Alain Rousseau
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #21292231
Bonjour.
1. Poste ton code.
2. As-tu pensé à la mise en forme conditionnelle type barres de données
?
Daniel

Bonjour à tous,

Sous excel 2003 j'ai construit un code permettant d'analyser des
informations chiffrées en positionnant en regard de chaque information
une shape (un rectangle en l'occurence) de longueur proportionnelle à
la valeur analysée

Autrement dit mon code permettait d'arriver à une représentation de
graphique en barre directement sur la feuille, sans passer par une
fonction graphique

Ce procédé est extremement pratique, rapide, et peu gourmand en
mémoire, par ailleurs le temps de réalisation restait très
raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
shapes)

Passage sous 2007 : le même code que celui employé sous 2003 se
déroule TRES LENTEMENT et pratiquement s'arrete au bout d'une
cinquantaine de shapes.

Si quelqu'un a une idée ! ..................il aura ma reconnaissance
éternelle !

Alain Rousseau


Alain
Le #21292591
On 1 mar, 11:04, Daniel.C
Bonjour.
1. Poste ton code.
2. As-tu pens la mise en forme conditionnelle type barres de donn es
?
Daniel



> Bonjour tous,

> Sous excel 2003 j'ai construit un code permettant  d'analyser des
> informations chiffr es en positionnant en regard de chaque information
> une shape (un rectangle en l'occurence) de longueur  proportionnelle
> la valeur analys e

> Autrement dit mon code permettait d'arriver une repr sentation de
> graphique en barre directement sur la feuille, sans passer par une
> fonction graphique

> Ce proc d est extremement pratique, rapide, et peu gourmand en
> m moire, par ailleurs le temps de r alisation restait tr s
> raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
> shapes)

> Passage sous 2007 : le m me code que celui employ sous 2003 se
> d roule TRES LENTEMENT et pratiquement s'arrete au bout d'une
> cinquantaine de shapes.

> Si quelqu'un a une id e ! ..................il aura ma reconnaissance
> ternelle !

> Alain Rousseau- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Merci Daniel de ton aide

Je ne vois pas bien ce que tu veux dire par mise en forme
conditionnelle ?

En ce qui concerne le code il faut d'abord que je te donne quelques
tuyaux sur l'objectif :
Le calcul concerne l'analyse des types de logements d'un ensemble de
150 groupes de logements pour chaque groupe il peut y avoir 9 types de
logements différents repéres dans une table

La routine de dessin est appelée dans le cadre de deux boucles
imbriquées
Une boucle sur le groupe
et pour chaque groupe une boucle sur les 9 valeurs de la table:

For Each groupe In Laliste.Cells ' Boucle sur les items
laligne = groupe.Row
lahauteur = groupe.Height
lapositionv = groupe.Rows.Top

nb_analyses = groupe.Offset(0, decalage_total_stat)
position_H = debut_graph.Columns.Left
lalargeur = 0
For i = 1 To h_table ' La table designe les differents types
position_H = position_H + lalargeur
lacouleur = lacouleur_tranche(i)
lavaleur = groupe.Offset(0, decalage_reports(i))
If nb_analyses = 0 Then
lalargeur = 0
Else
lalargeur = ((lalargeur_maxi / nb_analyses) * lavaleur)
End If
lenom_graph = "zozo"
Call graph_latable(position_H, lapositionv, lalargeur,
lahauteur, lacouleur, lenom_graph)
ledernier = ledernier + 1
DoEvents
Next i
Next groupe
'____________________________________

ci dessous la routine de construction d'une shape du programme
Sub graph_latable(position_H, lapositionv, lalargeur, lahauteur,
lacouleur, lenom_graph)

ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select
Selection.Interior.ColorIndex = lacouleur
Selection.Name = lenom_graph

lecompteur = lecompteur + 1
End Sub
Encore merci



Alain
Daniel.C
Le #21292761
Pas facile de reproduire. Est-ce que tu peux poser ton classeur (juste
ce qui est utile et en effaçant les données confidentielles sur
www.cijoint.fr. Le fichier ne doit pas dépasser 8 Mo. Zippe le fichier,
au besoin.
Daniel

On 1 mar, 11:04, Daniel.C
Bonjour.
1. Poste ton code.
2. As-tu pens la mise en forme conditionnelle type barres de donn es
?
Daniel



Bonjour tous,



Sous excel 2003 j'ai construit un code permettant  d'analyser des
informations chiffr es en positionnant en regard de chaque information
une shape (un rectangle en l'occurence) de longueur  proportionnelle
la valeur analys e



Autrement dit mon code permettait d'arriver une repr sentation de
graphique en barre directement sur la feuille, sans passer par une
fonction graphique



Ce proc d est extremement pratique, rapide, et peu gourmand en
m moire, par ailleurs le temps de r alisation restait tr s
raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
shapes)



Passage sous 2007 : le m me code que celui employ sous 2003 se
d roule TRES LENTEMENT et pratiquement s'arrete au bout d'une
cinquantaine de shapes.



Si quelqu'un a une id e ! ..................il aura ma reconnaissance
ternelle !



Alain Rousseau- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -



Merci Daniel de ton aide

Je ne vois pas bien ce que tu veux dire par mise en forme
conditionnelle ?

En ce qui concerne le code il faut d'abord que je te donne quelques
tuyaux sur l'objectif :
Le calcul concerne l'analyse des types de logements d'un ensemble de
150 groupes de logements pour chaque groupe il peut y avoir 9 types de
logements différents repéres dans une table

La routine de dessin est appelée dans le cadre de deux boucles
imbriquées
Une boucle sur le groupe
et pour chaque groupe une boucle sur les 9 valeurs de la table:

For Each groupe In Laliste.Cells ' Boucle sur les items
laligne = groupe.Row
lahauteur = groupe.Height
lapositionv = groupe.Rows.Top

nb_analyses = groupe.Offset(0, decalage_total_stat)
position_H = debut_graph.Columns.Left
lalargeur = 0
For i = 1 To h_table ' La table designe les differents types
position_H = position_H + lalargeur
lacouleur = lacouleur_tranche(i)
lavaleur = groupe.Offset(0, decalage_reports(i))
If nb_analyses = 0 Then
lalargeur = 0
Else
lalargeur = ((lalargeur_maxi / nb_analyses) * lavaleur)
End If
lenom_graph = "zozo"
Call graph_latable(position_H, lapositionv, lalargeur,
lahauteur, lacouleur, lenom_graph)
ledernier = ledernier + 1
DoEvents
Next i
Next groupe
'____________________________________

ci dessous la routine de construction d'une shape du programme
Sub graph_latable(position_H, lapositionv, lalargeur, lahauteur,
lacouleur, lenom_graph)

ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select
Selection.Interior.ColorIndex = lacouleur
Selection.Name = lenom_graph

lecompteur = lecompteur + 1
End Sub
Encore merci



Alain


Daniel.C
Le #21292991
> Je ne vois pas bien ce que tu veux dire par mise en forme
conditionnelle ?



Regarde un exemple ici :
http://cjoint.com/?dboEpO4ReH
Daniel
Alain
Le #21293291
Ok j'ai déposé (pas sans mal!) un fichier test qui reprend le code

http://www.cijoint.fr/cjlink.php?file=cj201003/cijOilrZEM.zip

Merci
Alain


On 1 mar, 13:07, Daniel.C
Pas facile de reproduire. Est-ce que tu peux poser ton classeur (juste
ce qui est utile et en effa ant les donn es confidentielles surwww.cijoin t.fr. Le fichier ne doit pas d passer 8 Mo. Zippe le fichier,
au besoin.
Daniel



> On 1 mar, 11:04, Daniel.C >> Bonjour.
>> 1. Poste ton code.
>> 2. As-tu pens la mise en forme conditionnelle type barres de donn es
>> ?
>> Daniel

>>> Bonjour tous,

>>> Sous excel 2003 j'ai construit un code permettant d'analyser des
>>> informations chiffr es en positionnant en regard de chaque informatio n
>>> une shape (un rectangle en l'occurence) de longueur proportionnelle
>>> la valeur analys e

>>> Autrement dit mon code permettait d'arriver une repr sentation de
>>> graphique en barre directement sur la feuille, sans passer par une
>>> fonction graphique

>>> Ce proc d est extremement pratique, rapide, et peu gourmand en
>>> m moire, par ailleurs le temps de r alisation restait tr s
>>> raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
>>> shapes)

>>> Passage sous 2007 : le m me code que celui employ sous 2003 se
>>> d roule TRES LENTEMENT et pratiquement s'arrete au bout d'une
>>> cinquantaine de shapes.

>>> Si quelqu'un a une id e ! ..................il aura ma reconnaissance
>>> ternelle !

>>> Alain Rousseau- Masquer le texte des messages pr c dents -

>> - Afficher le texte des messages pr c dents -

> Merci Daniel de ton aide

> Je ne vois pas bien ce que tu veux dire par mise en forme
> conditionnelle ?

> En ce qui concerne le code il faut d'abord que je te donne quelques
> tuyaux sur l'objectif :
> Le calcul concerne l'analyse des types de logements d'un ensemble de
> 150 groupes de logements pour chaque groupe il peut y avoir 9 types de
> logements diff rents rep res dans une table

> La  routine de dessin est appel e dans le cadre de deux boucles
> imbriqu es
> Une boucle sur le groupe
> et pour chaque groupe une boucle sur les 9 valeurs de la table:

>      For Each groupe In Laliste.Cells ' Boucle sur les items
>     laligne = groupe.Row
>     lahauteur = groupe.Height
>     lapositionv = groupe.Rows.Top

>     nb_analyses = groupe.Offset(0, decalage_total_stat)
>     position_H = debut_graph.Columns.Left
>     lalargeur = 0
>     For i = 1 To h_table  ' La table designe les differents typ es
>         position_H = position_H + lalargeur
>         lacouleur = lacouleur_tranche(i)
>         lavaleur = groupe.Offset(0, decalage_reports(i))
>         If nb_analyses = 0 Then
>             lalargeur = 0
>         Else
>             lalargeur = ((lalargeur_maxi / nb_analyses) * lavaleur)
>         End If
>             lenom_graph = "zozo"
>         Call graph_latable(position_H, lapositionv, lalargeur,
> lahauteur, lacouleur, lenom_graph)
>         ledernier = ledernier + 1
>         DoEvents
>     Next i
> Next groupe
> '____________________________________

> ci dessous la routine de construction d'une shape du programme
> Sub graph_latable(position_H, lapositionv, lalargeur, lahauteur,
> lacouleur, lenom_graph)

>     ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalarge ur,
> lahauteur).Select
>     Selection.Interior.ColorIndex = lacouleur
>     Selection.Name = lenom_graph

>     lecompteur = lecompteur + 1
> End Sub
> Encore merci

> Alain- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Daniel.C
Le #21293781
Regarde le fichier :
http://cjoint.com/?dbqpM4ty3h
J'ai optimisé le code. La macro s'exécute en 5 sec contre 12 sec avec
XL2003 dans son ancienne version. Reste que, à code inchangé, XL2003
est nettement plus performant.
Daniel

Ok j'ai déposé (pas sans mal!) un fichier test qui reprend le code

http://www.cijoint.fr/cjlink.php?file=cj201003/cijOilrZEM.zip

Merci
Alain


On 1 mar, 13:07, Daniel.C
Pas facile de reproduire. Est-ce que tu peux poser ton classeur (juste
ce qui est utile et en effa ant les donn es confidentielles
surwww.cijoint.fr. Le fichier ne doit pas d passer 8 Mo. Zippe le fichier,
au besoin. Daniel



On 1 mar, 11:04, Daniel.C
Bonjour.
1. Poste ton code.
2. As-tu pens la mise en forme conditionnelle type barres de donn es
?
Daniel





Bonjour tous,







Sous excel 2003 j'ai construit un code permettant d'analyser des
informations chiffr es en positionnant en regard de chaque information
une shape (un rectangle en l'occurence) de longueur proportionnelle
la valeur analys e







Autrement dit mon code permettait d'arriver une repr sentation de
graphique en barre directement sur la feuille, sans passer par une
fonction graphique







Ce proc d est extremement pratique, rapide, et peu gourmand en
m moire, par ailleurs le temps de r alisation restait tr s
raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
shapes)







Passage sous 2007 : le m me code que celui employ sous 2003 se
d roule TRES LENTEMENT et pratiquement s'arrete au bout d'une
cinquantaine de shapes.







Si quelqu'un a une id e ! ..................il aura ma reconnaissance
ternelle !







Alain Rousseau- Masquer le texte des messages pr c dents -


- Afficher le texte des messages pr c dents -


Merci Daniel de ton aide



Je ne vois pas bien ce que tu veux dire par mise en forme
conditionnelle ?



En ce qui concerne le code il faut d'abord que je te donne quelques
tuyaux sur l'objectif :
Le calcul concerne l'analyse des types de logements d'un ensemble de
150 groupes de logements pour chaque groupe il peut y avoir 9 types de
logements diff rents rep res dans une table
La  routine de dessin est appel e dans le cadre de deux boucles
imbriqu es
Une boucle sur le groupe
et pour chaque groupe une boucle sur les 9 valeurs de la table:
     For Each groupe In Laliste.Cells ' Boucle sur les items
    laligne = groupe.Row
    lahauteur = groupe.Height
    lapositionv = groupe.Rows.Top



    nb_analyses = groupe.Offset(0, decalage_total_stat)
    position_H = debut_graph.Columns.Left
    lalargeur = 0
    For i = 1 To h_table  ' La table designe les differents types
        position_H = position_H + lalargeur
        lacouleur = lacouleur_tranche(i)
        lavaleur = groupe.Offset(0, decalage_reports(i))
        If nb_analyses = 0 Then
            lalargeur = 0
        Else
            lalargeur = ((lalargeur_maxi / nb_analyses) * lavaleur)
        End If
            lenom_graph = "zozo"
        Call graph_latable(position_H, lapositionv, lalargeur,
lahauteur, lacouleur, lenom_graph)
        ledernier = ledernier + 1
        DoEvents
    Next i
Next groupe
'____________________________________
ci dessous la routine de construction d'une shape du programme
Sub graph_latable(position_H, lapositionv, lalargeur, lahauteur,
lacouleur, lenom_graph)



    ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select
    Selection.Interior.ColorIndex = lacouleur
    Selection.Name = lenom_graph



    lecompteur = lecompteur + 1
End Sub
Encore merci



Alain- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Alain
Le #21294011
On 1 mar, 15:18, Daniel.C
Regarde le fichier :http://cjoint.com/?dbqpM4ty3h
J'ai optimis� le code. La macro s'ex�cute en 5 sec contre 12 sec avec
XL2003 dans son ancienne version. Reste que, � code inchangï¿ ½, XL2003
est nettement plus performant.
Daniel



> Ok j'ai d�pos� (pas sans mal!)  un fichier test qui r eprend le code

>http://www.cijoint.fr/cjlink.php?file=cj201003/cijOilrZEM.zip

> Merci
> Alain

> On 1 mar, 13:07, Daniel.C >> Pas facile de reproduire. Est-ce que tu peux poser ton classeur (juste
>> ce qui est utile et en effa ant les donn es confidentielles
>> surwww.cijoint.fr. Le fichier ne doit pas d passer 8 Mo. Zippe le fich ier,
>> au besoin. Daniel

>>> On 1 mar, 11:04, Daniel.C >>>> Bonjour.
>>>> 1. Poste ton code.
>>>> 2. As-tu pens la mise en forme conditionnelle type barres de donn es
>>>> ?
>>>> Daniel

>>>>> Bonjour tous,

>>>>> Sous excel 2003 j'ai construit un code permettant d'analyser des
>>>>> informations chiffr es en positionnant en regard de chaque informat ion
>>>>> une shape (un rectangle en l'occurence) de longueur proportionnelle
>>>>> la valeur analys e

>>>>> Autrement dit mon code permettait d'arriver une repr sentation de
>>>>> graphique en barre directement sur la feuille, sans passer par une
>>>>> fonction graphique

>>>>> Ce proc d est extremement pratique, rapide, et peu gourmand en
>>>>> m moire, par ailleurs le temps de r alisation restait tr s
>>>>> raisonnable, (exemple de l'ordre de 10 secondes pour plus de 1000
>>>>> shapes)

>>>>> Passage sous 2007 : le m me code que celui employ sous 2003 se
>>>>> d roule TRES LENTEMENT et pratiquement s'arrete au bout d'une
>>>>> cinquantaine de shapes.

>>>>> Si quelqu'un a une id e ! ..................il aura ma reconnaissan ce
>>>>> ternelle !

>>>>> Alain Rousseau- Masquer le texte des messages pr c dents -
>>>> - Afficher le texte des messages pr c dents -
>>> Merci Daniel de ton aide

>>> Je ne vois pas bien ce que tu veux dire par mise en forme
>>> conditionnelle ?

>>> En ce qui concerne le code il faut d'abord que je te donne quelques
>>> tuyaux sur l'objectif :
>>> Le calcul concerne l'analyse des types de logements d'un ensemble de
>>> 150 groupes de logements pour chaque groupe il peut y avoir 9 types d e
>>> logements diff rents rep res dans une table
>>> La �routine de dessin est appel e dans le cadre de deux boucl es
>>> imbriqu es
>>> Une boucle sur le groupe
>>> et pour chaque groupe une boucle sur les 9 valeurs de la table:
>>> � � �For Each groupe In Laliste.Cells ' Boucl e sur les items
>>> � � laligne = groupe.Row
>>> � � lahauteur = groupe.Height
>>> � � lapositionv = groupe.Rows.Top

>>> � � nb_analyses = groupe.Offset(0, decalage_total_s tat)
>>> � � position_H = debut_graph.Columns.Left
>>> � � lalargeur = 0
>>> � � For i = 1 To h_table �' La table design e les differents types
>>> � � � � position_H = position_H + l alargeur
>>> � � � � lacouleur = lacouleur_tranc he(i)
>>> � � � � lavaleur = groupe.Offset(0, decalage_reports(i))
>>> � � � � If nb_analyses = 0 Then
>>> � � � � � � lalargeur = 0
>>> � � � � Else
>>> � � � � � � lalargeur = ((lalargeur_maxi / nb_analyses) * lavaleur)
>>> � � � � End If
>>> � � � � � � lenom_gra ph = "zozo"
>>> � � � � Call graph_latable(position_H , lapositionv, lalargeur,
>>> lahauteur, lacouleur, lenom_graph)
>>> � � � � ledernier = ledernier + 1
>>> � � � � DoEvents
>>> � � Next i
>>> Next groupe
>>> '____________________________________
>>> ci dessous la routine de construction d'une shape du programme
>>> Sub graph_latable(position_H, lapositionv, lalargeur, lahauteur,
>>> lacouleur, lenom_graph)

>>> � � ActiveSheet.Shapes.AddShape(1, position_H, laposi tionv, lalargeur,
>>> lahauteur).Select
>>> � � Selection.Interior.ColorIndex = lacouleur
>>> � � Selection.Name = lenom_graph

>>> � � lecompteur = lecompteur + 1
>>> End Sub
>>> Encore merci

>>> Alain- Masquer le texte des messages pr�c�dents -

>> - Afficher le texte des messages pr�c�dents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Daniel

je viens juste de faire l'essai, je n'ai pas encore tout
compris ..........mais c'est magique!!

Encore merci

Alain
Daniel.C
Le #21294171
> je viens juste de faire l'essai, je n'ai pas encore tout
compris ..........mais c'est magique!!



J'ai élliminé ce qui ralentit l'exécution :
- le rafraichissement de l'écran
- le recalcul automatique
- les "select" :
Ajout de :

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

en début de macro

repositionnement en fin de macro :
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

Dans la macro "graph_latable"
j'ai mis :

Set sh = ActiveSheet.Shapes.AddShape(1, position_H, lapositionv,
lalargeur, lahauteur)

au lieu de :

ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select

sh.DrawingObject.Interior.ColorIndex = lacouleur

au lieu de :

Selection.Interior.ColorIndex = lacouleur

sh.Name = lenom_graph

au lieu de :

Selection.Name = lenom_graph

Daniel
Alain
Le #21297571
On 1 mar, 16:28, Daniel.C
> je viens juste de faire l'essai, je n'ai pas encore tout
> compris ..........mais c'est magique!!

J'ai llimin ce qui ralentit l'ex cution :
- le rafraichissement de l' cran
- le recalcul automatique
- les "select" :
Ajout de :

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

en d but de macro

repositionnement en fin de macro :
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

Dans la macro "graph_latable"
j'ai mis :

Set sh = ActiveSheet.Shapes.AddShape(1, position_H, lapositionv,
lalargeur, lahauteur)

au lieu de :

ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select

sh.DrawingObject.Interior.ColorIndex = lacouleur

au lieu de :

Selection.Interior.ColorIndex = lacouleur

sh.Name = lenom_graph

au lieu de :

Selection.Name = lenom_graph

Daniel



Vraiement bien !
reste un seul pb très piegeux :
Autant dans xl2003 il n'ya pas de pb pour que la shape s'inscrive
exactement dans la hauteur de la ligne, autant dans 2007 ce n'est pas
le cas, l'on s'en rend compte en regardant le bout de la liste, les
dessin ne cadrent plus

je m'en sors en reduisant la hauteur du rectangele par rapport à la
hauteur de la ligne, et en centrant celui ci sur la ligne
par exemple
lahauteur=groupe.height-10
laposition=groupe.rows.top+5

C'est bizarre, et c'est pas celà qui me fera changer d'avis sur
2007 ............grgrgrgrgr!!!

Un grand merci pour ton aide

Alain
Daniel.C
Le #21298251
Bonjour.
D'autant plus bizarre que je ne constate pas cette anomalie sur mon
ordi. Voici le classeur après exécution de la macro :
http://cjoint.com/?dckHbXTYAL
Daniel

On 1 mar, 16:28, Daniel.C
je viens juste de faire l'essai, je n'ai pas encore tout
compris ..........mais c'est magique!!



J'ai llimin ce qui ralentit l'ex cution :
- le rafraichissement de l' cran
- le recalcul automatique
- les "select" :
Ajout de :

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

en d but de macro

repositionnement en fin de macro :
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

Dans la macro "graph_latable"
j'ai mis :

Set sh = ActiveSheet.Shapes.AddShape(1, position_H, lapositionv,
lalargeur, lahauteur)

au lieu de :

ActiveSheet.Shapes.AddShape(1, position_H, lapositionv, lalargeur,
lahauteur).Select

sh.DrawingObject.Interior.ColorIndex = lacouleur

au lieu de :

Selection.Interior.ColorIndex = lacouleur

sh.Name = lenom_graph

au lieu de :

Selection.Name = lenom_graph

Daniel



Vraiement bien !
reste un seul pb très piegeux :
Autant dans xl2003 il n'ya pas de pb pour que la shape s'inscrive
exactement dans la hauteur de la ligne, autant dans 2007 ce n'est pas
le cas, l'on s'en rend compte en regardant le bout de la liste, les
dessin ne cadrent plus

je m'en sors en reduisant la hauteur du rectangele par rapport à la
hauteur de la ligne, et en centrant celui ci sur la ligne
par exemple
lahauteur=groupe.height-10
laposition=groupe.rows.top+5

C'est bizarre, et c'est pas celà qui me fera changer d'avis sur
2007 ............grgrgrgrgr!!!

Un grand merci pour ton aide

Alain


Publicité
Poster une réponse
Anonyme