Autoincrémentation du nom de mon graphique lors de l'execution d'une macro
guivrator
Messages postés11Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention17 avril 2009
-
2 juin 2008 à 15:47
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 2013
-
2 juin 2008 à 16:50
Bonjour
voici mon problème :
J'ai une macro qui copie un graphique et le colle dans une autre fenêtre lorsqu'elle est exécuté. Le problème c'est que je veux créer une deuxième macro qui permet d'effacer le graphique lors de l'execution de celle-ci, mais le nom de mon graphique s'incrémente à chaque utilisation de la macro copiegraphique, et la macro d'effacage ne trouve donc plus le graphique a effacer ...
Comment contourner cette autoincrémentation pour que le graphique collé est toujours le même nom?
mon code actuel pour la copie
Sub copiegraphique()
Sheets("graphiques supplémentaires").Select
If Range("B1") <> "" Then
ActiveSheet.ChartObjects("Graphique R_bar").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Sheets("analyse de capabilité").Select
Range("B57").Select
ActiveSheet.Paste
End If
End Sub
et pour l'effacage
ActiveSheet.ChartObjects("Graphique 26").Activate <<<< le problème se situe ici
ActiveChart.ChartArea.Select
Windows("Fichier capabilité modifié.xls").SmallScroll Down:=-12
ActiveWindow.Visible = False
Selection.Delete
A voir également:
Autoincrémentation du nom de mon graphique lors de l'execution d'une macro
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 2 juin 2008 à 16:50
Salut,
' la ligne suivante est a placer en haut du module
Dim GraphName As String, MySheetName As String
Sub copiegraphique()
MySheetName = "analyse de capabilité"
Sheets("graphiques supplémentaires").Select
If Range("B1") <> "" Then
ActiveSheet.ChartObjects("Graphique R_bar").Copy
Sheets(MySheetName).Select
Range("B57").Select
ActiveSheet.Paste
GraphName = Replace(lcase(ActiveChart.Name), lcase(MySheetName) & " ", "")
End If
End Sub
et pour l'effacage
ActiveSheet.ChartObjects(GraphName).Delete
comme tu peux le remarquer j'ai simplifié le code mais une chose
importante est qu'il ne faut pas le simplifier plus c'est a dire qu'il
faut conserver :