OVH Cloud OVH Cloud

Graphiques traits et formes automatiques

3 réponses
Avatar
J
Bonjour à tous

Je reprends des fichiers pleins de graphiques, faits (par mézigue il y a
longtemps)avec XL2K.

Dans ces graphiques j'avais ajouté des flèches venant de la zone de légende.

Mais parfois j'ai fait ces flèches avec celle qui est dans la barre de dessin,
alors elles se sont auto-appellées "traits", parfois je les ai faites avec une
forme automatique, elles se sont auto-appellées alors "formes automatiques".
Original, hum...

Mais ces 2 objets ne semblent pas vivre la même vie : le "trait" est visible
quand je clique dans le graphique, la format auto, au contraire n'apparaît que
quand je suis hors du graphique..

La zone...

Comment, svp, avec VBA, je peux lister ces objets dans tous les graphiques d'une
feuille, et comment je peux, à la demande, assassiner ceux qui ne me reviennent pas.

Un grand merci pour l'aide.

PS: un gros progrès, le service informatique a bousillé ma connection sur le
vaste monde. Aussi, pardonnez-excuse si j'ai un peu de délai dans le suivi.

Merci t'encore
@+
J@@

3 réponses

Avatar
Daniel
Bonsoir.
Essaie :

Sub test()
Dim Forme As Shape, Rep
For Each Forme In ActiveSheet.Shapes
Var = Forme.Name
On Error Resume Next
Forme.Select
If Err.Number = 0 Then
Rep = MsgBox("Supprimer " & Forme.Name & " ?", vbOKCancel)
If Rep = 1 Then Forme.Delete
Else
Err.Clear
End If
On Error GoTo 0
Next Forme
End Sub

Cordialement.
Daniel
"J@@" a écrit dans le message de news:

Bonjour à tous

Je reprends des fichiers pleins de graphiques, faits (par mézigue il y a
longtemps)avec XL2K.

Dans ces graphiques j'avais ajouté des flèches venant de la zone de
légende.

Mais parfois j'ai fait ces flèches avec celle qui est dans la barre de
dessin, alors elles se sont auto-appellées "traits", parfois je les ai
faites avec une forme automatique, elles se sont auto-appellées alors
"formes automatiques". Original, hum...

Mais ces 2 objets ne semblent pas vivre la même vie : le "trait" est
visible quand je clique dans le graphique, la format auto, au contraire
n'apparaît que quand je suis hors du graphique..

La zone...

Comment, svp, avec VBA, je peux lister ces objets dans tous les graphiques
d'une feuille, et comment je peux, à la demande, assassiner ceux qui ne me
reviennent pas.

Un grand merci pour l'aide.

PS: un gros progrès, le service informatique a bousillé ma connection sur
le vaste monde. Aussi, pardonnez-excuse si j'ai un peu de délai dans le
suivi.

Merci t'encore
@+
J@@





Avatar
J
Bonjour Daniel et merci pour ton aide
Ta proc me propose de virer les graphiques, textboxes etc, dans leur ensemble.

Deux problèmes :
1 Je n'identifie le graphique qu'elle propose de détruire qu'après la
destruction (les graphiques ne sont pas nommés), mais peut-être qu'en ajoutant
un select, je pourrai l'identifier avant de cliquer oui.
2 De plus, ce que je souhaite c'est repérer les objets *ajoutés en plus dans* le
graphique : flèches etc, et la proc ne les voit pas.

Tu vois comment faire ? :-)
Merci pour l'aide
@+
J@@


Daniel wrote:
Bonsoir.
Essaie :

Sub test()
Dim Forme As Shape, Rep
For Each Forme In ActiveSheet.Shapes
Var = Forme.Name
On Error Resume Next
Forme.Select
If Err.Number = 0 Then
Rep = MsgBox("Supprimer " & Forme.Name & " ?", vbOKCancel)
If Rep = 1 Then Forme.Delete
Else
Err.Clear
End If
On Error GoTo 0
Next Forme
End Sub

Cordialement.
Daniel
"J@@"
Je reprends des fichiers pleins de graphiques, faits (par mézigue il y a
longtemps)avec XL2K.

Dans ces graphiques j'avais ajouté des flèches venant de la zone de
légende.

Mais parfois j'ai fait ces flèches avec celle qui est dans la barre de
dessin, alors elles se sont auto-appellées "traits", parfois je les ai
faites avec une forme automatique, elles se sont auto-appellées alors
"formes automatiques". Original, hum...

Mais ces 2 objets ne semblent pas vivre la même vie : le "trait" est
visible quand je clique dans le graphique, la format auto, au contraire
n'apparaît que quand je suis hors du graphique..

La zone...

Comment, svp, avec VBA, je peux lister ces objets dans tous les graphiques
d'une feuille, et comment je peux, à la demande, assassiner ceux qui ne me
reviennent pas.




Avatar
Daniel
Bonjour.
J'ai éliminé les graphiques de la sélection.
Curieusement, bien que le trait soit sélectionné, le fait d'afficher une
msgbox fait que la sélection n'est pas visible. Pour contourner le pb, j'ai
coloré en rouge les éléments sélectionnés en rétablissant la couleur
d'origine si pas de suppression. Bien entendu, il faut choisir une couleur
qui n'est pas utilisée pour tes graphiques :

Sub test()
Dim Forme As Shape, Rep, ch As ChartObject
Dim ResCouleur As Integer
Range("A1").Select
For Each Forme In ActiveSheet.Shapes
If Forme.Type <> msoChart Then
On Error Resume Next
Forme.Select
If Err.Number = 0 Then
ResCouleur = Selection.ShapeRange.Line.ForeColor.SchemeColor
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Rep = MsgBox("Supprimer " & Forme.Name & " ?", vbOKCancel)
If Rep = 1 Then
Forme.Delete
Else
Selection.ShapeRange.Line.ForeColor.SchemeColor = ResCouleur
End If
Else
Err.Clear
End If
On Error GoTo 0
End If
Next Forme
For Each ch In ActiveSheet.ChartObjects
For Each Forme In ch.Chart.Shapes
Forme.Select
Var = Forme.Name
ResCouleur = Forme.Line.ForeColor.SchemeColor
Forme.Line.ForeColor.SchemeColor = 10
Rep = MsgBox("Supprimer " & Forme.Name & " ?", vbOKCancel)
If Rep = 1 Then
Forme.Delete
Else
Forme.Line.ForeColor.SchemeColor = ResCouleur
End If
Next Forme
Next ch
End Sub

Daniel
"J@@" a écrit dans le message de news:
%
Bonjour Daniel et merci pour ton aide
Ta proc me propose de virer les graphiques, textboxes etc, dans leur
ensemble.

Deux problèmes :
1 Je n'identifie le graphique qu'elle propose de détruire qu'après la
destruction (les graphiques ne sont pas nommés), mais peut-être qu'en
ajoutant un select, je pourrai l'identifier avant de cliquer oui.
2 De plus, ce que je souhaite c'est repérer les objets *ajoutés en plus
dans* le graphique : flèches etc, et la proc ne les voit pas.

Tu vois comment faire ? :-)
Merci pour l'aide
@+
J@@


Daniel wrote:
Bonsoir.
Essaie :

Sub test()
Dim Forme As Shape, Rep
For Each Forme In ActiveSheet.Shapes
Var = Forme.Name
On Error Resume Next
Forme.Select
If Err.Number = 0 Then
Rep = MsgBox("Supprimer " & Forme.Name & " ?", vbOKCancel)
If Rep = 1 Then Forme.Delete
Else
Err.Clear
End If
On Error GoTo 0
Next Forme
End Sub

Cordialement.
Daniel
"J@@"
Je reprends des fichiers pleins de graphiques, faits (par mézigue il y a
longtemps)avec XL2K.

Dans ces graphiques j'avais ajouté des flèches venant de la zone de
légende.

Mais parfois j'ai fait ces flèches avec celle qui est dans la barre de
dessin, alors elles se sont auto-appellées "traits", parfois je les ai
faites avec une forme automatique, elles se sont auto-appellées alors
"formes automatiques". Original, hum...

Mais ces 2 objets ne semblent pas vivre la même vie : le "trait" est
visible quand je clique dans le graphique, la format auto, au contraire
n'apparaît que quand je suis hors du graphique..

La zone...

Comment, svp, avec VBA, je peux lister ces objets dans tous les
graphiques d'une feuille, et comment je peux, à la demande, assassiner
ceux qui ne me reviennent pas.