Suppression d'un graphique sans en connaître le nom Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
d
denis123
Jeune membre
Jeune membre
Messages : 16
Appréciation reçue : 1
Inscrit le : 20 avril 2018
Version d'Excel : 2013

Message par denis123 » 15 mai 2018, 14:53

bonjour, j'ai une petite question.

Voilà j'ai ici plusieurs tableau. J'aimerai pouvoir supprimer les premières lignes de 2 à 8, le tout en VBA.
Capture.PNG
Le problème étant que si je supprime les lignes le graphique ne par pas et se supperpose avec l'autre. Donc j'essaie de supprimer séparrement le graphique des lignes.
Mais c'est là où je coince, vu que le graphique est fabriqué par une macro le nom change entre chaque nouveau graphique.
Et que si je veux supprimer ce graphique il me faut son nom.

exemple :
Sub BWAA()

    ActiveSheet.ChartObjects("Graphique 2").Activate
    ActiveChart.Parent.Delete
    Rows("2:8").Select
    Range("A8").Activate
    Selection.Delete Shift:=xlUp
End Sub
Donc j'aimerai savoir comment supprimer un graphique sans un connaître son nom.
Ou sinon comment supprimer toute une ligne avec les objets si trouvant (comme un copier collé qui copie toute la zone avec le graphique)

Merci, :lol:
Avatar du membre
78chris
Passionné d'Excel
Passionné d'Excel
Messages : 5'610
Appréciations reçues : 421
Inscrit le : 9 juillet 2017
Version d'Excel : 2010 à 2019 + 365

Message par 78chris » 15 mai 2018, 16:57

Bonjour

C'est la macro qui fabrique le graphique qu'il faut changer afin de nommer ton graphique et donc être capable de le retrouver...
Chris
Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
Confucius
d
denis123
Jeune membre
Jeune membre
Messages : 16
Appréciation reçue : 1
Inscrit le : 20 avril 2018
Version d'Excel : 2013

Message par denis123 » 16 mai 2018, 08:00

Le problème est que la macro créé un tableau à chaque lancement de celle-ci.
Si je met un nom les tableaux auront le mêmes et ils se supprimeront tous.

Mais si je fait une boucle qui s'incrémente à chaque fois et que je fasse en sorte d'avoir une variable de côté, tous se remettera à zéro à chaque fois qu'on fermera Excel.

Actuellement je suis sur la piste de sauvegarder une variable sous chaque graphique ce qui permettra d'incrémenter suivant le graphique précédent.

Mais si vous avez d'autre idées n'hésitez pas.
d
denis123
Jeune membre
Jeune membre
Messages : 16
Appréciation reçue : 1
Inscrit le : 20 avril 2018
Version d'Excel : 2013

Message par denis123 » 16 mai 2018, 08:44

Finalement j'ai trouvé une réponse à ma question :lole:
La nuit porte bonheur.

Bref voici mon code :
Sub BWAA()
    Dim Image As Shape
    For Each Image In ActiveSheet.Shapes
        If Image.Type = msoPicture Then
        Image.Select
        End If
    Next
    Selection.Delete

    Rows("4:10").Select
    Range("A10").Activate
    Selection.Delete Shift:=xlUp
End Sub
J'ai donc transformé le graphique en Image (ce qui me sera utile dans la suite de la macro). Et donc je parcours tous les shapes (images dans mon cas). Et à la fin il s'arrête à la première que je supprime ensuite.

Je remercie les gros contributeurs de ce post 78chris et denis123.

Merci, :D
Avatar du membre
78chris
Passionné d'Excel
Passionné d'Excel
Messages : 5'610
Appréciations reçues : 421
Inscrit le : 9 juillet 2017
Version d'Excel : 2010 à 2019 + 365

Message par 78chris » 16 mai 2018, 09:06

Bonjour

Il faut trouver une logique comme nommer un tableau ou un graphique d'après sa position : nom feuille et cellule angle par exemple... à adapter selon le contexte.

En aucun cas on ne doit garder les noms automatiquement proposés par Excel : Classeur1, Feuil1, Tableau1, Tableau croisé ...

Si nécessaire on peut utiliser une feuille masquée pour un compteur qui subsistera à la fermeture...
Chris
Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
Confucius
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message