VBA problème avec la fonction Cut et Paste

Bonjour,

Je suis novice dans les macros et je suis en train de travailler sur un fichier avec plusieurs macros. Il y en a une qui me pose problème. Il s'agit de créer des graphes pour plusieurs feuilles et pour chaque graphe, je le coupe et colle à l'endroit voulu pour modifier sa position. Le problème est que de temps en temps j'ai un message d'erreur du type "La méthode CUT ou PASTE a échoué". Je ne l'ai pas tout le temps ce message d'erreur !

Voici le code de cette macro:

Sub grapheeuro() ' ' grapheeuro Macro ' Création du graphe en euro Sheets("BD").Select 'On sélectionne la feuille BD Dim DV As String ' On crée la variable DV For J = 2 To 100 ' On parcours une boucle qui sélectionne chaque onglet DV If Range("B" & J).Value <> "" Then DV = Range("B" & J).Value Sheets(DV).Select Cells.Select Cells.EntireColumn.AutoFit 'On spécifie des valeurs de largeur de colonne pour la mise en forme Columns("J:J").Select Selection.ColumnWidth = 2 Columns("K:U").Select Selection.ColumnWidth = 10.78 Range("O1").Select For I = 1 To 600 'On crée une boucle qui parcourt la colonne O. A chaque fois qu'il y a un "1" (ce qui correspond à une DV ou MU), on crée un graphe. If Range("O" & I).Value = "1" Then ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select 'Création d'un graphe avec barres empilées With ActiveChart ' on supprime la première série générée automatiquement par excel Do Until .SeriesCollection.Count = 0 .SeriesCollection(1).Delete Loop End With 'On crée les séries du graphe ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(1).Name = "Mois N" ActiveChart.FullSeriesCollection(1).Values = ActiveSheet.Range("B" & I + 8 & ",B" & I + 9 & ",B" & I + 10 & ",B" & I + 11 & ",B" & I + 18 & ",B" & I + 20) ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(2).Name = "Mois N-1" ActiveChart.FullSeriesCollection(2).Values = ActiveSheet.Range("C" & I + 8 & ",C" & I + 9 & ",C" & I + 10 & ",C" & I + 11 & ",C" & I + 18 & ",C" & I + 20) ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(3).Name = "Année N" ActiveChart.FullSeriesCollection(3).Values = ActiveSheet.Range("D" & I + 8 & ",D" & I + 9 & ",D" & I + 10 & ",D" & I + 11 & ",D" & I + 18 & ",D" & I + 20) ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(4).Name = "Année N-1" ActiveChart.FullSeriesCollection(4).Values = ActiveSheet.Range("E" & I + 8 & ",E" & I + 9 & ",E" & I + 10 & ",E" & I + 11 & ",E" & I + 18 & ",E" & I + 20) ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(5).Name = "Budget" ActiveChart.FullSeriesCollection(5).Values = ActiveSheet.Range("F" & I + 8 & ",F" & I + 9 & ",F" & I + 10 & ",F" & I + 11 & ",F" & I + 18 & ",F" & I + 20) ActiveChart.FullSeriesCollection(1).XValues = ActiveSheet.Range("A10,A11,A12,A13,A20,A22") 'On met les légendes ActiveChart.ChartTitle.Text = "Avancement matériel en montant €" 'On nomme le graphe ActiveChart.ChartStyle = 202 ActiveChart.SetElement (msoElementPrimaryValueAxisShow) 'On montre les axes ActiveChart.SetElement (msoElementChartTitleAboveChart) 'On affiche le titre ActiveChart.SetElement (msoElementDataTableWithLegendKeys) 'On met la table des valeurs avec la légende en-dessous du graphe xx = Right(ActiveChart.Name, Len(ActiveChart.Name) - 7) ' on définit une variable qui qui récupère le nom du graphique ActiveSheet.Shapes(xx).ScaleWidth 1.5, msoFalse, _ msoScaleFromTopLeft ActiveSheet.Shapes(xx).ScaleHeight 1.8, msoFalse, _ msoScaleFromTopLeft ActiveSheet.ChartObjects(xx).Cut 'on sélectionne le graphe 'on le coupe ActiveSheet.Paste Destination:=ActiveSheet.Range("K" & I + 1) 'on le met à l'endroit voulu Else End If Range("O" & I + 1).Select Next I Else End If Sheets("BD").Select Range("B" & J + 1).Select Next J ' End Sub

Quelqu'un a-t-il une solution ? J'ai essayé de vider le presse papier dans la boucle (ajout de Application cut copy mode = False) mais ça ne résout pas le problème...

Rechercher des sujets similaires à "vba probleme fonction cut paste"